From e8ccb1b8825e2c4fe040663a51554578b77d8a1e Mon Sep 17 00:00:00 2001 From: DaanV2 Date: Sun, 6 Jun 2021 11:37:29 +0200 Subject: [PATCH] Added more examples thanks to @crovono --- .vscode/schema-validation.json | 5 +- .../feature_rules/ore_feature_placement.json | 22 +++++++++ .../search_feature_placement.json | 22 +++++++++ .../sequence_feature_placement.json | 22 +++++++++ .../feature_rules/tree_feature_placement.json | 23 +++++++++ examples/bp/features/ore.md | 3 ++ examples/bp/features/ore_feature.json | 21 ++++++++ examples/bp/features/search_feature.json | 16 +++++++ .../bp/features/search_feature_obsidian.json | 20 ++++++++ examples/bp/features/sequence_feature.json | 14 ++++++ .../bp/features/sequence_feature_planks.json | 14 ++++++ examples/bp/features/structure_feature.json | 15 ++++++ examples/bp/features/tree_feature.json | 45 ++++++++++++++++++ .../structure_features/structure.mcstructure | Bin 0 -> 2841 bytes 14 files changed, 241 insertions(+), 1 deletion(-) create mode 100644 examples/bp/feature_rules/ore_feature_placement.json create mode 100644 examples/bp/feature_rules/search_feature_placement.json create mode 100644 examples/bp/feature_rules/sequence_feature_placement.json create mode 100644 examples/bp/feature_rules/tree_feature_placement.json create mode 100644 examples/bp/features/ore.md create mode 100644 examples/bp/features/ore_feature.json create mode 100644 examples/bp/features/search_feature.json create mode 100644 examples/bp/features/search_feature_obsidian.json create mode 100644 examples/bp/features/sequence_feature.json create mode 100644 examples/bp/features/sequence_feature_planks.json create mode 100644 examples/bp/features/structure_feature.json create mode 100644 examples/bp/features/tree_feature.json create mode 100644 examples/bp/structures/structure_features/structure.mcstructure diff --git a/.vscode/schema-validation.json b/.vscode/schema-validation.json index f2eebc2f..f8697b15 100644 --- a/.vscode/schema-validation.json +++ b/.vscode/schema-validation.json @@ -4,7 +4,10 @@ "object_check": { "type": "object", "dependencies": { - "description": ["title"] + "description": ["title"], + "additionalProperties": ["type"], + "items": ["type"], + "properties": ["type"] }, "additionalProperties": { "anyOf": [ diff --git a/examples/bp/feature_rules/ore_feature_placement.json b/examples/bp/feature_rules/ore_feature_placement.json new file mode 100644 index 00000000..a89b7b30 --- /dev/null +++ b/examples/bp/feature_rules/ore_feature_placement.json @@ -0,0 +1,22 @@ +{ + "format_version": "1.13.0", + + "minecraft:feature_rules": { + "description": { + "identifier": "ore_features:ore_feature_placement", + "places_feature": "ore_features:ore_feature" + }, + + "conditions": { + "placement_pass": "final_pass" + }, + + "distribution": { + "iterations": 1, + + "x": 0, + "z": 0, + "y": "query.heightmap(v.worldx, v.worldz)" + } + } +} \ No newline at end of file diff --git a/examples/bp/feature_rules/search_feature_placement.json b/examples/bp/feature_rules/search_feature_placement.json new file mode 100644 index 00000000..f41bef33 --- /dev/null +++ b/examples/bp/feature_rules/search_feature_placement.json @@ -0,0 +1,22 @@ +{ + "format_version": "1.13.0", + + "minecraft:feature_rules": { + "description": { + "identifier": "search_features:search_feature_placement", + "places_feature": "search_features:search_feature" + }, + + "conditions": { + "placement_pass": "final_pass" + }, + + "distribution": { + "iterations": 1, + + "x": 0, + "z": 0, + "y": 0 + } + } +} \ No newline at end of file diff --git a/examples/bp/feature_rules/sequence_feature_placement.json b/examples/bp/feature_rules/sequence_feature_placement.json new file mode 100644 index 00000000..5d0f28f7 --- /dev/null +++ b/examples/bp/feature_rules/sequence_feature_placement.json @@ -0,0 +1,22 @@ +{ + "format_version": "1.13.0", + + "minecraft:feature_rules": { + "description": { + "identifier": "sequence_features:sequence_feature_placement", + "places_feature": "sequence_features:sequence_feature" + }, + + "conditions": { + "placement_pass": "final_pass" + }, + + "distribution": { + "iterations": 1, + + "x": 0, + "z": 0, + "y": 90 + } + } +} \ No newline at end of file diff --git a/examples/bp/feature_rules/tree_feature_placement.json b/examples/bp/feature_rules/tree_feature_placement.json new file mode 100644 index 00000000..a84a625e --- /dev/null +++ b/examples/bp/feature_rules/tree_feature_placement.json @@ -0,0 +1,23 @@ +{ + "format_version": "1.13.0", + + "minecraft:feature_rules": { + "description": { + "identifier": "tree_features:tree_feature_placement", + "places_feature": "tree_features:tree_feature" + }, + + "conditions": { + "placement_pass": "final_pass" + }, + + "distribution": { + "iterations": 1, + "scatter_chance": 2, + + "x": 0, + "z": 0, + "y": 90 + } + } +} \ No newline at end of file diff --git a/examples/bp/features/ore.md b/examples/bp/features/ore.md new file mode 100644 index 00000000..31b1d2e5 --- /dev/null +++ b/examples/bp/features/ore.md @@ -0,0 +1,3 @@ +# ore + +All references are just block descriptors. diff --git a/examples/bp/features/ore_feature.json b/examples/bp/features/ore_feature.json new file mode 100644 index 00000000..3fe87069 --- /dev/null +++ b/examples/bp/features/ore_feature.json @@ -0,0 +1,21 @@ +{ + "format_version": "1.13.0", + + "minecraft:ore_feature": { + "description": { + "identifier": "ore_features:ore_feature" + }, + + "count": 25, + "replace_rules": [ + { + "places_block": "minecraft:glass", + "may_replace": ["minecraft:air"] + }, + { + "places_block": "minecraft:cobblestone", + "may_replace": ["minecraft:grass", "minecraft:stone", "minecraft:dirt"] + } + ] + } +} diff --git a/examples/bp/features/search_feature.json b/examples/bp/features/search_feature.json new file mode 100644 index 00000000..9e38e460 --- /dev/null +++ b/examples/bp/features/search_feature.json @@ -0,0 +1,16 @@ +{ + "format_version": "1.13.0", + //The schema is exactly right; floats can be used for volume, but they're truncated as always, so indeed integers are the recommended type. + "minecraft:search_feature": { + "description": { + "identifier": "search_features:search_feature" + }, + "places_feature": "search_features:search_feature_obsidian", + "search_volume": { + "min": [0, 30, 15], + "max": [0, 100, 15] + }, + "search_axis": "-y", + "required_successes": 3 + } +} diff --git a/examples/bp/features/search_feature_obsidian.json b/examples/bp/features/search_feature_obsidian.json new file mode 100644 index 00000000..4bdbf0b9 --- /dev/null +++ b/examples/bp/features/search_feature_obsidian.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.13.0", + + "minecraft:single_block_feature": { + "description": { + "identifier": "search_features:search_feature_obsidian" + }, + + "places_block": "minecraft:obsidian", + + "enforce_placement_rules": false, + "enforce_survivability_rules": false, + "may_replace": ["minecraft:air"], + "may_attach_to": { + "top": [ + "minecraft:air" + ] + } + } +} \ No newline at end of file diff --git a/examples/bp/features/sequence_feature.json b/examples/bp/features/sequence_feature.json new file mode 100644 index 00000000..a8540192 --- /dev/null +++ b/examples/bp/features/sequence_feature.json @@ -0,0 +1,14 @@ +{ + "format_version": "1.13.0", + + "minecraft:sequence_feature": { + "description": { + "identifier": "sequence_features:sequence_feature" + }, + + "features": [ + "tree_features:tree_feature", + "sequence_features:sequence_feature_planks" + ] + } +} \ No newline at end of file diff --git a/examples/bp/features/sequence_feature_planks.json b/examples/bp/features/sequence_feature_planks.json new file mode 100644 index 00000000..005ff880 --- /dev/null +++ b/examples/bp/features/sequence_feature_planks.json @@ -0,0 +1,14 @@ +{ + "format_version": "1.13.0", + //They're broken: always have been. They don't throw errors, but they don't reposition based on input/output. No errors are thrown, it just doesn't do its job. The schema is correct. + "minecraft:single_block_feature": { + "description": { + "identifier": "sequence_features:sequence_feature_planks" + }, + + "places_block": "minecraft:planks", + + "enforce_placement_rules": false, + "enforce_survivability_rules": false + } +} diff --git a/examples/bp/features/structure_feature.json b/examples/bp/features/structure_feature.json new file mode 100644 index 00000000..d77f27d2 --- /dev/null +++ b/examples/bp/features/structure_feature.json @@ -0,0 +1,15 @@ +{ + "format_version": "1.13.0", + "minecraft:structure_template_feature": { + "description": { + "identifier": "structure_features:structure_feature" + }, + + "structure_name": "structure_features:structure", + + "facing_direction": "south", + "adjustment_radius": 0, + + "constraints": {} + } +} diff --git a/examples/bp/features/tree_feature.json b/examples/bp/features/tree_feature.json new file mode 100644 index 00000000..7103db6b --- /dev/null +++ b/examples/bp/features/tree_feature.json @@ -0,0 +1,45 @@ +{ + "format_version": "1.13.0", + "minecraft:tree_feature": { + "description": { + "identifier": "tree_features:tree_feature" + }, + + "base_block": [ + "minecraft:dirt", + "minecraft:coarse_dirt" + ], + "base_cluster": { + "num_clusters": 4, + "cluster_radius": 3, + "may_replace": ["minecraft:air"] + }, + + "may_replace": ["minecraft:air"], + + "fancy_trunk": { + "trunk_block": "minecraft:log", + + "trunk_height": { + "base": 24, + "variance": 1, + "scale": 1 + }, + "trunk_width": 3, + "width_scale": 2, + + "foliage_altitude_factor": 0.5, + "branches": { + "slope": 0.33, + "density": 0.25, + "min_altitude_factor": 0 + } + }, + + "fancy_canopy": { + "height": 3, + "radius": 4, + "leaf_block": "minecraft:leaves" + } + } +} \ No newline at end of file diff --git a/examples/bp/structures/structure_features/structure.mcstructure b/examples/bp/structures/structure_features/structure.mcstructure new file mode 100644 index 0000000000000000000000000000000000000000..e374245fde6bc8701099b98a8d80f4f59979f21f GIT binary patch literal 2841 zcmd5;TaOzx6h4#5?q+7&vXrVIaS`w3i5Db<+Rddck+$7clX82BPBKnnWnu^0vuSy0 ze+m-fcTglAc|t<)UyvxDon+%~sh~)e7-=`>V*B&C_?(jyrI%=|&79rfR2VC@N{A?{ zla=3yGzA_1P)<52Z0-%KrPP$>gCyIbrkQJ#*C9-HsI4pIsJ2TTp7TTyHR^Pi z=OB`O`kd{F9L+>=fAPOrT+6BH9FJyw>2H|@*2rPyU}*zJ?bNBo7AlZ?)UJ$yBLbIG zM~t~D-5q{F^tiLL6-WiaPdh1XRG?O}wLdP=Tq-d#Ja!+K)o8Ybd3+edfZLuLU}Awk z64%<_jDeROcOfHNqR~ zvee6gVTGyzjFv7Q-qUXSYuZjPQp*TYw6!h^y$m^@;3-apb)r~Rol+Z0c2Rynd`L+h zPm>F(W&YPqS8sdg0^Q=W>};|GcdFItmNa^DwAvvvOMLxvs3gK-ac-2u%ajO?FaED9J$IE@crIuee?6A(xaKfbNzh z>ZED&!Z9*1$ss#7izzE_+9l6b?s(kR${CG4UVmc5L@|;t9DPr-IXk*HV&gY@%$}=M zIK}VjE#({~2iNiU@1rDRl~?plWy3ww*XW3?>!1!Q-x0foH@}|IkzhL&rrX&x8ItFtoP1ddp+#Bp-;*DR zzC9#*{}47KV-a+%cKlTE^Y4GOo_xRj5gzYxQIy`}AW?@yh;op6+0xGGc~D5Vio-7T zW>R%K{`9m#J%^4nLFM-B{uvuO3p|4pD>G(PJ&Z4Xo>;$*U|65cM7V9#5Z}JxLfm|? z5Jn1LC-J4(O4^sgtT*0Q^6N@;J8kgZE9o9Zp}^x9df$B!cCVQ)W9BQ*AazHqe7mm} zT_@(2vVAJVSSkz=TG@v8-etPBZG)q!pA9gGU3=?q!~-tSX%Tls1-D;KAt`+5^T9t` z^U*sYPkK%-g3u?szs8hp%U}4|$ccYpSG=SrT>F{pC5@b9fy3n(o_IZ~OzV5W^`)Fk zRGcF@4z8noj}}}C=L9I&=4XMk`EaB0nSgGr@Z#bIqK6h0fmObX*%HOw65PC=Mblpn zlFgor(M?#I7cS4=SkI*kZG(pg1v~bU$gXau*TGVovKZ*#iZJK?i2#S$%`g26H|lCX literal 0 HcmV?d00001