diff --git a/gm4_apple_trees/beet.yaml b/gm4_apple_trees/beet.yaml index 00477f96c4..56f35512cc 100644 --- a/gm4_apple_trees/beet.yaml +++ b/gm4_apple_trees/beet.yaml @@ -2,6 +2,9 @@ id: gm4_apple_trees name: Apple Trees version: 2.5.X +require: + - bolt + data_pack: load: . diff --git a/gm4_apple_trees/data/gm4_apple_trees/function/sapling/generate_tree.mcfunction b/gm4_apple_trees/data/gm4_apple_trees/function/sapling/generate_tree.mcfunction index c3346e0a19..b72273b1eb 100644 --- a/gm4_apple_trees/data/gm4_apple_trees/function/sapling/generate_tree.mcfunction +++ b/gm4_apple_trees/data/gm4_apple_trees/function/sapling/generate_tree.mcfunction @@ -5,6 +5,7 @@ # place jigsaw gm4_apple_trees:apple_trees gm4_apple_trees:trunk 2 ~ ~1 ~ # jigsaw generation not usable after world-gen due to inherent position-based randomizaton +execute unless predicate gm4_apple_trees:valid_placement run return fail function gm4_apple_trees:sapling/grow/generate_random_tree execute if block ~ ~-1 ~ grass_block run setblock ~ ~-1 ~ dirt execute positioned ~ ~1 ~ as @e[type=armor_stand,tag=gm4_apple_uninitialized,distance=..6] run function gm4_apple_trees:leaf/initialize diff --git a/gm4_apple_trees/data/gm4_apple_trees/predicate/valid_placement.json b/gm4_apple_trees/data/gm4_apple_trees/predicate/valid_placement.json new file mode 100644 index 0000000000..2f9187d009 --- /dev/null +++ b/gm4_apple_trees/data/gm4_apple_trees/predicate/valid_placement.json @@ -0,0 +1,22 @@ +check = [] +for x in range(-4,5): + for y in range(1,8): + for z in range(-4,5): + check.append( + { + "condition": "minecraft:location_check", + "offsetX": x, + "offsetY": y, + "offsetZ": z, + "predicate": { + "block": { + "blocks": "#gm4_apple_trees:tree_placeable" + } + } + } + ) + +{ + "condition": "minecraft:all_of", + "terms": check +} diff --git a/gm4_apple_trees/data/gm4_apple_trees/tags/block/tree_placeable.json b/gm4_apple_trees/data/gm4_apple_trees/tags/block/tree_placeable.json new file mode 100644 index 0000000000..b03fe5d190 --- /dev/null +++ b/gm4_apple_trees/data/gm4_apple_trees/tags/block/tree_placeable.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:air", + "#minecraft:logs", + "#minecraft:replaceable_by_trees", + "#minecraft:saplings" + ] +}