This commit is contained in:
DaanV2
2021-06-08 17:05:57 +02:00
parent 3a56c6922e
commit ff3344cff0
5 changed files with 332 additions and 6 deletions

View File

@@ -11,7 +11,7 @@
"properties": {
"identifier": {
"title": "Identifier",
"description": "The name of this feature in the form `namespace_name:feature_name'. `feature_name` must match the filename.",
"description": "The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.",
"type": "string",
"$ref": "../../../../general/feature/identifier.json"
}

View File

@@ -1,6 +1,6 @@
{
"type": "object",
"title": "Conditional list",
"title": "Conditional List",
"description": "`minecraft:conditional_list` Places the first suitable feature within a collection.\nThese conditional features will be evaluated in order.\nSucceeds if: A condition is successfully resolved.\nFails if: No condition is successfully resolved.\nExample use: assigning a feature to an expression",
"additionalProperties": false,
"required": ["description", "conditional_features"],

View File

@@ -1,6 +1,67 @@
{
"type": "object",
"title": "Geode Feature",
"description": "`minecraft:geode_feature` generates a rock formation to simulate a geode. Each layer of, and block within, the geode can be replaced.\nSucceeds if: At least one block within the geode is placed.\nFails if: All blocks within the geode fail to be placed.",
"required": [
"description",
"max_radius",
"filler",
"inner_layer",
"alternate_inner_layer",
"use_alternate_layer0_chance",
"middle_layer",
"outer_layer",
"placements_require_layer0_alternate",
"use_potential_placements_chance",
"min_distribution_points",
"max_distribution_points",
"min_outer_wall_distance",
"max_outer_wall_distance",
"min_point_offset",
"max_point_offset",
"noise_multiplier",
"invalid_blocks_threshold",
"crack_point_offset",
"generate_crack_chance",
"base_crack_size"
],
"additionalProperties": false,
"examples": [
{
"description": {
"identifier": "geode_features:geode_feature"
},
"max_radius": 80,
"filler": "minecraft:air",
"inner_layer": "minecraft:stone",
"alternate_inner_layer": "minecraft:cobblestone",
"use_alternate_layer0_chance": 0.5,
"middle_layer": "minecraft:planks",
"outer_layer": "minecraft:obsidian",
"inner_placements": ["mincraft:glass"],
"placements_require_layer0_alternate": true,
"use_potential_placements_chance": 0.125,
"min_distribution_points": 3,
"max_distribution_points": 3,
"min_outer_wall_distance": 3,
"max_outer_wall_distance": 3,
"min_point_offset": 0,
"max_point_offset": 0,
"noise_multiplier": 0.025,
"invalid_blocks_threshold": 10000,
"crack_point_offset": 0,
"generate_crack_chance": 0,
"base_crack_size": 0
}
],
"properties": {
"description": {
"title": "Description",
@@ -9,11 +70,149 @@
"properties": {
"identifier": {
"title": "Identifier",
"description": "The name of this feature in the form `namespace_name:feature_name'. `feature_name` must match the filename.",
"description": "The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.",
"type": "string",
"$ref": "../../../../general/feature/identifier.json"
}
}
},
"filler": {
"title": "Filler",
"type": "string",
"description": "The block to fill the inside of the geode.",
"$ref": "../../../../general/block/identifier.json"
},
"inner_layer": {
"title": "Inner layer",
"type": "string",
"description": "The block that forms the inside layer of the geode shell.",
"$ref": "../../../../general/block/identifier.json"
},
"alternate_inner_layer": {
"title": "Alternate inner layer",
"type": "string",
"description": "The block that has a chance of generating instead of inner_layer.",
"$ref": "../../../../general/block/identifier.json"
},
"middle_layer": {
"title": "Middle layer",
"type": "string",
"description": "The block that forms the middle layer of the geode shell.",
"$ref": "../../../../general/block/identifier.json"
},
"outer_layer": {
"title": "Outer layer",
"type": "string",
"description": "The block that forms the outer shell of the geode.",
"$ref": "../../../../general/block/identifier.json"
},
"inner_placements": {
"title": "Inner placements",
"description": "A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.",
"type": "array",
"minItems": 1,
"items": {
"title": "Block reference",
"description": "A block that may be replaced during placement",
"$ref": "../../../../general/block/identifier.json"
}
},
"min_outer_wall_distance": {
"title": "Min Outer Wall Distance",
"type": "integer",
"description": "The minimum distance each distribution point must be from the outer wall. [0,10]",
"minimum": 1,
"maximum": 10
},
"max_outer_wall_distance": {
"title": "Max Outer Wall Distance",
"type": "integer",
"description": "The maximum distance each distribution point can be from the outer wall. [0,20]",
"minimum": 1,
"maximum": 20
},
"min_distribution_points": {
"title": "Min Distribution Points",
"type": "integer",
"description": "The minimum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,10]",
"minimum": 1,
"maximum": 10
},
"max_distribution_points": {
"title": "Max Distribution Points",
"type": "integer",
"description": "The maximum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,20]",
"minimum": 1,
"maximum": 20
},
"min_point_offset": {
"title": "Min Point Offset",
"type": "integer",
"description": "The lowest possible value of random offset applied to the position of each distribution point. [0,10]",
"minimum": 0,
"maximum": 10
},
"max_point_offset": {
"title": "Max Point Offset",
"type": "integer",
"description": "The highest possible value of random offset applied to the position of each distribution point. [0,10]",
"minimum": 1,
"maximum": 10
},
"max_radius": {
"title": "Max Radius",
"type": "integer",
"description": "The maximum possible radius of the geode generated."
},
"crack_point_offset": {
"title": "Crack Point Offset",
"type": "integer",
"description": "An offset applied to each distribution point that forms the geode crack opening. [0,10]",
"minimum": 0,
"maximum": 10
},
"generate_crack_chance": {
"title": "Generate Crack Chance",
"type": "number",
"description": "The likelihood of a geode generating with a crack in its shell. [0,1]",
"minimum": 0.0,
"maximum": 1.0
},
"base_crack_size": {
"title": "Base Crack Size",
"type": "number",
"description": "How large the crack opening of the geode should be when generated. [0,5]",
"minimum": 0.0,
"maximum": 5.0
},
"noise_multiplier": {
"title": "Noise Multiplier",
"type": "number",
"description": "A multiplier applied to the noise that is applied to the distribution points within the geode. Higher = more noisy."
},
"use_potential_placements_chance": {
"title": "Use Potential Placements Chance",
"type": "number",
"description": "The likelihood that a special block will be placed on the inside of the geode. [0,1]",
"minimum": 0.0,
"maximum": 1.0
},
"use_alternate_layer0_chance": {
"title": "Use Alternate Layer0 Chance",
"type": "number",
"description": "The likelihood that a block in the innermost layer of the geode will be replaced with an alternate option. [0,1]",
"minimum": 0.0,
"maximum": 1.0
},
"placements_require_layer0_alternate": {
"title": "Placements Require Layer0 Alternate",
"type": "boolean",
"description": " If true, the potential placement block will only be placed on the alternate layer0 blocks that get placed. Potential placement blocks are blocks that depend on the existance of another block to be placed. The latter are the layer0 alternate blocks."
},
"invalid_blocks_threshold": {
"title": "Invalid Blocks Threshold",
"type": "integer",
"description": "The threshold of invalid blocks for a geode to have a distribution point in before it aborts generation entirely."
}
}
}

View File

@@ -1,6 +1,61 @@
{
"type": "object",
"title": "Growing Plant Feature",
"description": "'minecraft:growing_plant_feature' places a growing plant in the world. A growing plant is a column that is anchored either to the ceiling or the floor, based on its growth direction.\nThe growing plant has a body and a head, where the head is the tip of the plant, and the body consists of the remainder blocks.\nThis feature can be used to define growing plants with variable body and head blocks, e.g. Cave Vines.",
"additionalProperties": false,
"required": ["description", "height_distribution", "growth_direction", "body_blocks", "head_blocks"],
"definitions": {
"range": {
"title": "Range",
"description": "A range",
"type": "object",
"required": ["range_min", "range_max"],
"examples": [{ "range_min": 8, "range_max": 9 }],
"properties": {
"range_max": {
"title": "Range Max",
"type": "integer",
"description": "The maximum plant height"
},
"range_min": {
"title": "Range Min",
"type": "integer",
"description": "The minimum plant height"
}
}
},
"rangeOrInt": {
"oneOf": [
{ "type": "integer", "minimum": 0 },
{ "type": "object", "$ref": "#/definitions/range" }
]
},
"blocks_array": {
"type": "array",
"minItems": 1,
"items": {
"title": "Blocks",
"description": "Collection of weighted block descriptor that placement will select from for the plant.",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"title": "Plant Body Block",
"description": "Plant body block.",
"type": "string",
"$ref": "../../../../general/block/identifier.json"
},
{
"type": "number",
"title": "Weight",
"description": "Weight used in random selection. Value is relative to other weights in the collection.",
"minimum": 0
}
]
}
}
},
"properties": {
"description": {
"title": "Description",
@@ -9,11 +64,69 @@
"properties": {
"identifier": {
"title": "Identifier",
"description": "The name of this feature in the form `namespace_name:feature_name'. `feature_name` must match the filename.",
"description": "The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.",
"type": "string",
"$ref": "../../../../general/feature/identifier.json"
}
}
},
"age": {
"title": "Age",
"description": "Age of the head of the plant.",
"$ref": "#/definitions/rangeOrInt"
},
"height_distribution": {
"title": "Height distribution",
"description": "Collection of weighted heights that placement will select from.",
"type": "array",
"minItems": 1,
"examples": [
[
[{ "range_min": 8, "range_max": 9 }, 1],
[6, 1]
]
],
"items": {
"title": "Height distribution",
"description": "Collection of weighted heights that placement will select from.",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"title": "Plant Height",
"description": "Plant height.",
"$ref": "#/definitions/rangeOrInt"
},
{
"type": "number",
"title": "Weight",
"description": "Weight used in random selection. Value is relative to other weights in the collection.",
"minimum": 0
}
]
}
},
"growth_direction": {
"title": "Growth Direction",
"description": "Direction that the plant grows towards. Valid values: UP and DOWN",
"type": "string",
"enum": ["UP", "DOWN", "up", "down"]
},
"body_blocks": {
"title": "Body Blocks",
"description": "Collection of weighted block descriptor that placement will select from for the body of the plant.",
"$ref": "#/definitions/blocks_array"
},
"head_blocks": {
"title": "Head Blocks",
"description": "Collection of weighted block descriptor that placement will select from for the body of the plant.",
"$ref": "#/definitions/blocks_array"
},
"allow_water": {
"title": "Allow Water",
"description": "Plant blocks can be placed in water.",
"type": "boolean"
}
}
}

View File

@@ -1,4 +1,6 @@
{
"title": "Hell Cave Carver Feature",
"description": "`minecraft:hell_cave_carver_feature` carves a cave through the Nether in the current chunk, and in every chunk around the current chunk in an 8 radial pattern.This feature will also only work when placed specifically in the pass `pregeneration_pass`.",
"type": "object",
"additionalProperties": false,
"properties": {
@@ -9,11 +11,23 @@
"properties": {
"identifier": {
"title": "Identifier",
"description": "The name of this feature in the form `namespace_name:feature_name'. `feature_name` must match the filename.",
"description": "The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.",
"type": "string",
"$ref": "../../../../general/feature/identifier.json"
}
}
}
},
"fill_with": {
"title": "Identifier",
"description": "Reference to the block to fill the cave with.",
"type": "string",
"$ref": "../../../../general/block/identifier.json"
},
"width_modifier": {
"title": "Identifier",
"description": "How many blocks to increase the cave radius by, from the center point of the cave.",
"type": "string",
"$ref": "../../../../molang/number.json"
} //
}
}