diff --git a/source/behavior/blocks/format/components/collision_box.json b/source/behavior/blocks/format/components/collision_box.json index 9aa2087a4..4fafd43c2 100644 --- a/source/behavior/blocks/format/components/collision_box.json +++ b/source/behavior/blocks/format/components/collision_box.json @@ -1,6 +1,6 @@ { - "$id": "blockception.minecraft.behavior.blocks.minecraft.destroy_time", - "title": "Destroy Time", + "$id": "blockception.minecraft.behavior.blocks.minecraft.collision_box", + "title": "Collision Box", "description": "This component can be specified as a Boolean. If this component is omitted, the default value for this component is true, which will give your block the default values for its parameters (a collision box the size/shape of a regular block).", "oneOf": [ { @@ -17,8 +17,8 @@ "type": "array", "items": [ { "title": "X", "type": "number", "minimum": -8.0, "maximum": 8 }, - { "title": "Y", "minimum": 0, "maximum": 16 }, - { "title": "Z", "minimum": -8.0, "maximum": 8 } + { "title": "Y", "type": "number", "minimum": 0, "maximum": 16 }, + { "title": "Z", "type": "number", "minimum": -8.0, "maximum": 8 } ] }, "size": { diff --git a/source/behavior/blocks/format/components/crafting_table.json b/source/behavior/blocks/format/components/crafting_table.json new file mode 100644 index 000000000..66aae2a2c --- /dev/null +++ b/source/behavior/blocks/format/components/crafting_table.json @@ -0,0 +1,28 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.crafting_table", + "title": "Crafting Table", + "description": "[Experimental] Makes your block into a custom crafting table which enables the crafting table UI and the ability to craft recipes.", + "additionalProperties": false, + "type": "object", + "required": [], + "properties": { + "crafting_tags": { + "title": "Crafting Tags", + "description": "Defines the tags recipes should define to be crafted on this table. Limited to 64 tags. Each tag is limited to 64 characters.", + "type": "array", + "maxItems": 64, + "items": { + "type": "string", + "title": "Tag", + "description": "The tag to check for.", + "minLength": 1, + "maxLength": 64 + } + }, + "table_name": { + "title": "Table Name", + "description": "Specifies the language file key that maps to what text will be displayed in the UI of this table. If the string given can not be resolved as a loc string, the raw string given will be displayed. If this field is omitted, the name displayed will default to the name specified in the \"display_name\" component. If this block has no \"display_name\" component, the name displayed will default to the name of the block.", + "type": "string" + } + } +} diff --git a/source/behavior/blocks/format/components/destroy_time.json b/source/behavior/blocks/format/components/destroy_time.json deleted file mode 100644 index 71aaf4c11..000000000 --- a/source/behavior/blocks/format/components/destroy_time.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.destroy_time", - "additionalProperties": false, - "type": "number", - "title": "Destroy Time", - "description": "Sets the destroy time property for the block. Greater numbers result in greater mining times. Time is measured in seconds with base equipment.", - "default": 0.0 -} diff --git a/source/behavior/blocks/format/components/destructible_by_explosion.json b/source/behavior/blocks/format/components/destructible_by_explosion.json new file mode 100644 index 000000000..438bf70b7 --- /dev/null +++ b/source/behavior/blocks/format/components/destructible_by_explosion.json @@ -0,0 +1,24 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.destructible_by_explosion", + "title": "Destructible By Explosion", + "description": "Describes the destructible by explosion properties for this block. If set to true, the block will have the default explosion resistance. If set to false, this block is indestructible by explosion. If the component is omitted, the block will have the default explosion resistance.", + "oneOf": [ + { + "type": "boolean", + "default": true + }, + { + "type": "object", + "additionalProperties": false, + "required": [], + "properties": { + "explosion_resistance": { + "title": "Explosion Resistance", + "description": "Describes how resistant the block is to explosion. Greater values mean the block is less likely to break when near an explosion (or has higher resistance to explosions). The scale will be different for different explosion power levels. A negative value or 0 means it will easily explode; larger numbers increase level of resistance.", + "type": "number", + "default": 0.0 + } + } + } + ] +} diff --git a/source/behavior/blocks/format/components/destructible_by_mining.json b/source/behavior/blocks/format/components/destructible_by_mining.json new file mode 100644 index 000000000..e838308d4 --- /dev/null +++ b/source/behavior/blocks/format/components/destructible_by_mining.json @@ -0,0 +1,24 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.destructible_by_mining", + "title": "Destructible By Mining", + "description": "Describes the destructible by mining properties for this block. If set to true, the block will take the default number of seconds to destroy. If set to false, this block is indestructible by mining. If the component is omitted, the block will take the default number of seconds to destroy.", + "oneOf": [ + { + "type": "boolean", + "default": true + }, + { + "type": "object", + "additionalProperties": false, + "required": [], + "properties": { + "seconds_to_destroy": { + "title": "Seconds To Destroy", + "description": "Sets the number of seconds it takes to destroy the block with base equipment. Greater numbers result in greater mining times.", + "type": "number", + "default": 0.0 + } + } + } + ] +} diff --git a/source/behavior/blocks/format/components/display_name.json b/source/behavior/blocks/format/components/display_name.json index e0aad71e8..0b3690391 100644 --- a/source/behavior/blocks/format/components/display_name.json +++ b/source/behavior/blocks/format/components/display_name.json @@ -1,7 +1,6 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.display_name", - "additionalProperties": false, - "type": "string", "title": "Display Name", - "description": "Specifies the language file key that maps to what text will be displayed when you hover over the block." + "description": "Specifies the language file key that maps to what text will be displayed when you hover over the block in your inventory and hotbar. If the string given can not be resolved as a loc string, the raw string given will be displayed. If this component is omitted, the name of the block will be used as the display name.", + "type": "string" } diff --git a/source/behavior/blocks/format/components/entity_collision.json b/source/behavior/blocks/format/components/entity_collision.json deleted file mode 100644 index 9f1527406..000000000 --- a/source/behavior/blocks/format/components/entity_collision.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.entity_collision", - "title": "Entity Collision", - "description": "Can only be set to false or an object, it disables the collision of the block with entities.", - "oneOf": [ - { "type": "boolean", "const": false }, - { - "type": "object", - "additionalProperties": false, - "properties": { - "origin": { - "type": "array", - "title": "Origin", - "description": "Minimal position Bounds of the collision box.", - "default": [-8.0, 0.0, -8.0], - "items": [ - { "type": "number", "title": "X", "description": "The x offset." }, - { "type": "number", "title": "Y", "description": "The y offset." }, - { "type": "number", "title": "Z", "description": "The z offset." } - ] - }, - "size": { - "type": "array", - "title": "Size", - "description": "Size of each side of the box of the component.", - "default": [16.0, 16.0, 16.0], - "items": [ - { "type": "number", "title": "X", "description": "The x size." }, - { "type": "number", "title": "Y", "description": "The y size." }, - { "type": "number", "title": "Z", "description": "The z size." } - ] - } - } - } - ] -} diff --git a/source/behavior/blocks/format/components/explosion_resistance.json b/source/behavior/blocks/format/components/explosion_resistance.json deleted file mode 100644 index 052fb3858..000000000 --- a/source/behavior/blocks/format/components/explosion_resistance.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.explosion_resistance", - "additionalProperties": false, - "type": "number", - "title": "Explosion Resistance", - "description": "Sets the explosion resistance for this block.", - "default": 0.0 -} diff --git a/source/behavior/blocks/format/components/flammable.json b/source/behavior/blocks/format/components/flammable.json index 29755e5c0..f96e6d933 100644 --- a/source/behavior/blocks/format/components/flammable.json +++ b/source/behavior/blocks/format/components/flammable.json @@ -1,22 +1,24 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.flammable", - "additionalProperties": false, - "type": "object", "title": "Flammable", - "description": "Describes the flammable properties for this block.", - "additionalItems": false, - "properties": { - "burn_odds": { - "type": "integer", - "default": 0, - "description": "How likely the block will be destroyed by flames when on fire. Value must be greater than or equal to 0.", - "title": "Burn Odds" + "description": "Describes the flammable properties for this block. If set to true, default values are used. If set to false, or if this component is omitted, the block will not be able to catch on fire naturally from neighbors, but it can still be directly ignited.", + "oneOf": [ + { + "type": "boolean", + "default": true }, - "flame_odds": { - "type": "integer", - "default": 0, - "description": "How likely the block will catch flame when next to a fire. Value must be greater than or equal to 0.", - "title": "Flame Odds" + { + "type": "object", + "additionalProperties": false, + "required": [], + "properties": { + "seconds_to_destroy": { + "title": "Seconds To Destroy", + "description": "Sets the number of seconds it takes to destroy the block with base equipment. Greater numbers result in greater mining times.", + "type": "number", + "default": 0.0 + } + } } - } + ] } diff --git a/source/behavior/blocks/format/components/friction.json b/source/behavior/blocks/format/components/friction.json index 7febfea7e..829ce275f 100644 --- a/source/behavior/blocks/format/components/friction.json +++ b/source/behavior/blocks/format/components/friction.json @@ -1,8 +1,9 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.friction", - "additionalProperties": false, - "type": "number", "title": "Friction", - "description": "Property describing the friction for this block. Friction effects an entities movements when it walks on the block.", - "default": 0.1 + "description": "Describes the friction for this block in a range of (0.0-0.9). Friction affects an entity's movement speed when it travels on the block. Greater value results in more friction.", + "type": "number", + "default": 0.4, + "minimum": 0, + "maximum": 0.9 } diff --git a/source/behavior/blocks/format/components/geometry.json b/source/behavior/blocks/format/components/geometry.json index 38724885a..9b058c3de 100644 --- a/source/behavior/blocks/format/components/geometry.json +++ b/source/behavior/blocks/format/components/geometry.json @@ -1,8 +1,6 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.geometry", - "additionalProperties": false, - "type": "string", "title": "Geometry", - "description": "The geometry description identifier to use, this identifier must match an existing geometry identifier in any of the currently loaded resource packs.", - "pattern": "^geometry\\.[a-zA-Z0-9_\\-\\.]+$" + "description": "The description identifier of the geometry file to use to render this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.", + "type": "string" } diff --git a/source/behavior/blocks/format/components/immovable.json b/source/behavior/blocks/format/components/immovable.json deleted file mode 100644 index 4aaab266f..000000000 --- a/source/behavior/blocks/format/components/immovable.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.immovable", - "additionalProperties": false, - "type": "boolean", - "title": "Immovable", - "description": "An Immovable block cannot be pushed by pistons." -} diff --git a/source/behavior/blocks/format/components/light_dampening.json b/source/behavior/blocks/format/components/light_dampening.json new file mode 100644 index 000000000..003b7bfd9 --- /dev/null +++ b/source/behavior/blocks/format/components/light_dampening.json @@ -0,0 +1,9 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.light_dampening", + "title": "Light Dampening", + "description": "The amount that light will be dampened when it passes through the block, in a range (0-15). Higher value means the light will be dampened more.", + "type": "integer", + "default": 15, + "minimum": 0, + "maximum": 15 +} diff --git a/source/behavior/blocks/format/components/light_emission.json b/source/behavior/blocks/format/components/light_emission.json new file mode 100644 index 000000000..1e2665917 --- /dev/null +++ b/source/behavior/blocks/format/components/light_emission.json @@ -0,0 +1,9 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.light_emission", + "title": "Light Emission", + "description": "The amount of light this block will emit in a range (0-15). Higher value means more light will be emitted.", + "type": "integer", + "default": 15, + "minimum": 0, + "maximum": 15 +} diff --git a/source/behavior/blocks/format/components/loot.json b/source/behavior/blocks/format/components/loot.json index 530e37cb5..a2c5d6261 100644 --- a/source/behavior/blocks/format/components/loot.json +++ b/source/behavior/blocks/format/components/loot.json @@ -1,8 +1,7 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.loot", - "additionalProperties": false, - "type": "string", "title": "Loot", - "description": "The path to the loot table, relative to the behavior pack. Path string is limited to 256 characters.", + "description": "The path to the loot table, relative to the behavior pack.", + "type": "string", "pattern": "loot_tables/.*\\.json$" } diff --git a/source/behavior/blocks/format/components/map_color.json b/source/behavior/blocks/format/components/map_color.json index af82380d4..fc51277e6 100644 --- a/source/behavior/blocks/format/components/map_color.json +++ b/source/behavior/blocks/format/components/map_color.json @@ -1,9 +1,39 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.map_color", - "additionalProperties": false, - "type": "string", "title": "Map Color", - "description": "A color represented as a hex value. This will be the color rendered to a map.", - "format": "color-hex", - "examples": ["#FFFFFF"] + "description": "Sets the color of the block when rendered to a map. The color is represented as a hex value in the format \"#RRGGBB\". May also be expressed as an array of [R, G, B] from 0 to 255. If this component is omitted, the block will not show up on the map.", + "oneOf": [ + { + "type": "string", + "format": "colox-hex", + "default": "#FFFFFF" + }, + { + "type": "array", + "items": [ + { + "title": "Red", + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 255 + }, + { + "title": "Green", + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 255 + }, + { + "title": "Blue", + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 255 + } + ] + } + ], + "examples": ["#FFFFFF", [255, 255, 255]] } diff --git a/source/behavior/blocks/format/components/material_instances.json b/source/behavior/blocks/format/components/material_instances.json index 5b9e9b4fb..8690f57cd 100644 --- a/source/behavior/blocks/format/components/material_instances.json +++ b/source/behavior/blocks/format/components/material_instances.json @@ -1,37 +1,58 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.material_instances", - "type": "object", "title": "Material Instances", - "description": "Maps face or material_instance names in a geometry file to an actual material instance. Material instance can either be a full material instance or a name to another already defined instance", - "definitions": { - "material_instance": { - "title": "Material Instance", - "description": "A single material instance.", - "additionalProperties": false, - "properties": { - "ambient_occlusion": { - "title": "Ambient Occlusion", - "type": "boolean", - "description": "UNDOCUMENTED.", - "$comment": "UNDOCUMENTED" - }, - "face_dimming": { - "title": "Face Dimming", - "type": "boolean", - "description": "UNDOCUMENTED.", - "$comment": "UNDOCUMENTED" - }, - "render_method": { - "type": "string", - "title": "Render Method", - "description": "UNDOCUMENTED.", - "$comment": "UNDOCUMENTED", - "enum": ["blend", "opaque", "alpha_test"] - }, - "texture": { "type": "string", "title": "Texture", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED" } + "description": "The material instances for a block. Maps face or material_instance names in a geometry file to an actual material instance. You can assign a material instance object to any of these faces: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", or \"*\". You can also give an instance the name of your choosing such as \"my_instance\", and then assign it to a face by doing \"north\":\"my_instance\".", + "required": [], + "examples": [ + { "*": {} }, + { "custom_sides": {} }, + { "up": {} }, + { "down": {} }, + { "north": {} }, + { "south": "custom_sides" }, + { "east": "custom_sides" }, + { "west": "custom_sides" } + ], + "type": "object", + "additionalProperties": { + "title": "Material Instance", + "description": "The material instance for a block. Maps face or material_instance names in a geometry file to an actual material instance. You can assign a material instance object to any of these faces: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", or \"*\". You can also give an instance the name of your choosing such as \"my_instance\", and then assign it to a face by doing \"north\":\"my_instance\".", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "ambient_occlusion": { + "title": "Ambient Occlusion", + "type": "boolean", + "default": true, + "description": "Should this material have ambient occlusion applied when lighting? If true, shadows will be created around and underneath the block." + }, + "face_dimming": { + "title": "Face Dimming", + "type": "boolean", + "default": true, + "description": "Should this material be dimmed by the direction it's facing?" + }, + "render_method": { + "title": "Render Method", + "type": "string", + "default": "opaque", + "description": "The render method to use. Must be one of these options: opaque - Used for a regular block texture without an alpha layer. Does not allow for transparency or translucency. double_sided - Used for completely disabling backface culling. blend - Used for a block like stained glass. Allows for transparency and translucency (slightly transparent textures). alpha_test - Used for a block like the vanilla (unstained) glass. Does not allow for translucency, only fully opaque or fully transparent textures. Also disables backface culling.", + "markdownDescription": "The render method to use. Must be one of these options: \nopaque - Used for a regular block texture without an alpha layer. Does not allow for transparency or translucency.\ndouble_sided - Used for completely disabling backface culling.\nblend - Used for a block like stained glass. Allows for transparency and translucency (slightly transparent textures).\nalpha_test - Used for a block like the vanilla (unstained) glass. Does not allow for translucency, only fully opaque or fully transparent textures. Also disables backface culling.", + "enum": ["opaque", "double_sided", "blend", "alpha_test"] + }, + "texture": { + "title": "Texture", + "type": "string", + "default": "", + "description": "Texture name for the material." + } + } } - } - }, - "properties": { "*": { "$ref": "#/definitions/material_instance" } }, - "additionalProperties": { "$ref": "#/definitions/material_instance" } + ] + } } diff --git a/source/behavior/blocks/format/components/on_fall_on.json b/source/behavior/blocks/format/components/on_fall_on.json deleted file mode 100644 index 51187e09c..000000000 --- a/source/behavior/blocks/format/components/on_fall_on.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.on_fall_on", - "type": "object", - "title": "On Fall On", - "description": "Describes event for this block.", - "properties": { - "condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" }, - "event": { "type": "string", "default": "", "description": "The event executed on the block.", "title": "Event" }, - "min_fall_distance": { - "type": "number", - "default": 0, - "description": "The minimum distance in blocks that an actor needs to fall to trigger this event.", - "title": "Minimum Fall Distance" - }, - "target": { "type": "string", "default": "self", "description": "The target of event executed on the block.", "title": "Target" } - } -} diff --git a/source/behavior/blocks/format/components/on_interact.json b/source/behavior/blocks/format/components/on_interact.json deleted file mode 100644 index 1656f5614..000000000 --- a/source/behavior/blocks/format/components/on_interact.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.on_interact", - "type": "object", - "title": "On Fall On", - "description": "Describes event for this block.", - "properties": { - "condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" }, - "event": { "type": "string", "default": "", "description": "The event executed on the block.", "title": "Event" }, - "target": { "type": "string", "default": "self", "description": "The target of event executed on the block.", "title": "Target" } - } -} diff --git a/source/behavior/blocks/format/components/on_placed.json b/source/behavior/blocks/format/components/on_placed.json deleted file mode 100644 index 7aa7b8ac8..000000000 --- a/source/behavior/blocks/format/components/on_placed.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.on_placed", - "type": "object", - "title": "On Placed", - "description": "Describes event for this block.", - "properties": { - "condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" }, - "event": { "type": "string", "default": "", "description": "The event executed on the block.", "title": "Event" }, - "target": { "type": "string", "default": "self", "description": "The target of event executed on the block.", "title": "Target" } - } -} diff --git a/source/behavior/blocks/format/components/on_player_destroyed.json b/source/behavior/blocks/format/components/on_player_destroyed.json deleted file mode 100644 index 4c2ed77f7..000000000 --- a/source/behavior/blocks/format/components/on_player_destroyed.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.on_player_destroyed", - "type": "object", - "title": "On Player Destroyed", - "description": "Describes event for this block.", - "properties": { - "condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" }, - "event": { "type": "string", "default": "", "description": "The event executed on the block.", "title": "Event" }, - "target": { "type": "string", "default": "self", "description": "The target of event executed on the block.", "title": "Target" } - } -} diff --git a/source/behavior/blocks/format/components/on_player_placing.json b/source/behavior/blocks/format/components/on_player_placing.json deleted file mode 100644 index ed9343fc1..000000000 --- a/source/behavior/blocks/format/components/on_player_placing.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.on_player_placing", - "type": "object", - "title": "On Player Placing", - "description": "Describes event for this block.", - "properties": { - "condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" }, - "event": { "type": "string", "default": "", "description": "The event executed on the block.", "title": "Event" }, - "target": { "type": "string", "default": "self", "description": "The target of event executed on the block.", "title": "Target" } - } -} diff --git a/source/behavior/blocks/format/components/on_step_off.json b/source/behavior/blocks/format/components/on_step_off.json deleted file mode 100644 index 3a399893d..000000000 --- a/source/behavior/blocks/format/components/on_step_off.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.on_step_off", - "type": "object", - "title": "On Step Off", - "description": "Describes event for this block.", - "properties": { - "condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" }, - "event": { "type": "string", "default": "", "description": "The event executed on the block.", "title": "Event" }, - "target": { "type": "string", "default": "self", "description": "The target of event executed on the block.", "title": "Target" } - } -} diff --git a/source/behavior/blocks/format/components/on_step_on.json b/source/behavior/blocks/format/components/on_step_on.json deleted file mode 100644 index 8970aa51e..000000000 --- a/source/behavior/blocks/format/components/on_step_on.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.on_step_on", - "type": "object", - "title": "On Step On", - "description": "Describes event for this block.", - "properties": { - "condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" }, - "event": { "type": "string", "default": "", "description": "The event executed on the block.", "title": "Event" }, - "target": { "type": "string", "default": "self", "description": "The target of event executed on the block.", "title": "Target" } - } -} diff --git a/source/behavior/blocks/format/components/onlypistonpush.json b/source/behavior/blocks/format/components/onlypistonpush.json deleted file mode 100644 index 7842aec1b..000000000 --- a/source/behavior/blocks/format/components/onlypistonpush.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.onlypistonpush", - "type": "boolean", - "title": "Only Piston Push", - "description": "Blocks with those components won't stick to stickyPistons." -} diff --git a/source/behavior/blocks/format/components/part_visibility.json b/source/behavior/blocks/format/components/part_visibility.json index ca96fbb0a..8c1c7e688 100644 --- a/source/behavior/blocks/format/components/part_visibility.json +++ b/source/behavior/blocks/format/components/part_visibility.json @@ -1,11 +1,11 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.part_visibility", "title": "Part Visibility", - "description": "Maps bone names in a geometry file to a condition that turns their rendering on/off. The condition should be a Molang query that uses block properties to determine true/falseSupported queries include 'has_block_property', 'block_property', and other queries that can evaluate without knowledge of the block's in-game positional or player affected data.", + "description": "[Experimental] Maps bone names in a geometry file to a condition that turns their rendering on/off. The condition should be a Molang query that uses block properties to determine true/false.", "type": "object", "additionalProperties": { - "title": "Bone Name", - "examples": [{ "root": "query.variant" }], - "type": "string" + "title": "Part Visibility", + "description": "[Experimental] Maps bone names in a geometry file to a condition that turns their rendering on/off. The condition should be a Molang query that uses block properties to determine true/false.", + "type": ["string", "boolean"] } } diff --git a/source/behavior/blocks/format/components/pick_collision.json b/source/behavior/blocks/format/components/pick_collision.json deleted file mode 100644 index b57c31802..000000000 --- a/source/behavior/blocks/format/components/pick_collision.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.pick_collision", - "title": "Pick Collision", - "description": "Can only be set to false, it disables the collision of the block with entities.", - "oneOf": [ - { "type": "boolean", "const": false }, - { - "type": "object", - "additionalProperties": false, - "properties": { - "origin": { - "type": "array", - "title": "Origin", - "description": "Minimal position Bounds of the collision box.", - "default": [-8.0, 0.0, -8.0], - "items": [ - { "type": "number", "title": "X", "description": "The x offset." }, - { "type": "number", "title": "Y", "description": "The y offset." }, - { "type": "number", "title": "Z", "description": "The z offset." } - ] - }, - "size": { - "type": "array", - "title": "Size", - "description": "Size of each side of the box of the component.", - "default": [16.0, 16.0, 16.0], - "items": [ - { "type": "number", "title": "X", "description": "The x size." }, - { "type": "number", "title": "Y", "description": "The y size." }, - { "type": "number", "title": "Z", "description": "The z size." } - ] - } - } - } - ] -} diff --git a/source/behavior/blocks/format/components/placement_filter.json b/source/behavior/blocks/format/components/placement_filter.json index 9803839a1..f7ff39f53 100644 --- a/source/behavior/blocks/format/components/placement_filter.json +++ b/source/behavior/blocks/format/components/placement_filter.json @@ -1,34 +1,35 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.placement_filter", "title": "Placement Filter", - "description": "Sets rules for under what conditions the block can be placed/survive.", + "description": "[Experimental]", "type": "object", "properties": { "conditions": { - "title": "Conditions", - "description": "List of conditions where the block can be placed/survive.", "type": "array", "items": { + "title": "Placement Filter", + "description": "[Experimental]", "type": "object", - "title": "Condition", - "description": "UNDOCUMENTED.", - "$comment": "UNDOCUMENTED", + "additionalProperties": false, "properties": { "allowed_faces": { "title": "Allowed Faces", - "description": "List of any of the following strings: up, down, north, south, east, west, side, all.", "type": "array", - "items": { "type": "string", "enum": ["up", "down", "north", "south", "east", "west", "side", "all"] } + "description": "List of any of the following strings describing which face(s) this block can be placed on: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", \"side\", \"all\". Limited to 6 faces.", + "uniqueItems": true, + "items": { + "type": "string", + "enum": ["up", "down", "north", "south", "east", "west", "side", "all"] + } }, "block_filter": { "title": "Block Filter", - "description": "List of blocks (can use tags to specify them) that this block can be placed against in the allowed_faces direction.", "type": "array", + "description": "List of blocks that this block can be placed against in the \"allowed_faces\" direction. Limited to 64 blocks. Each block in this list can either be specified as a String (block name) or as a BlockDescriptor. A BlockDescriptor is an object that allows you to reference a block (or multiple blocks) based on its tags, or based on its name and states. The fields of a BlockDescriptor are described below.", "items": { - "type": "string", - "title": "Block Identifier", - "description": "UNDOCUMENTED.", - "$comment": "UNDOCUMENTED" + "title": "Block Filter", + "description": "[Experimental]", + "$ref": "../../../../general/block/reference.json" } } } diff --git a/source/behavior/blocks/format/components/preventsjumping.json b/source/behavior/blocks/format/components/preventsjumping.json deleted file mode 100644 index d28679fbd..000000000 --- a/source/behavior/blocks/format/components/preventsjumping.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.preventsjumping", - "title": "Prevents Jumping", - "description": "This component makes it so actors can't jump when walking on this block.", - "type": "boolean" -} diff --git a/source/behavior/blocks/format/components/random_ticking.json b/source/behavior/blocks/format/components/random_ticking.json deleted file mode 100644 index 905698ac2..000000000 --- a/source/behavior/blocks/format/components/random_ticking.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.random_ticking", - "title": "Random Ticking", - "description": "Describes the component that will trigger an even at a regular interval between two values.", - "type": "object", - "additionalProperties": false, - "properties": { - "on_tick": { - "title": "On Tick", - "description": "Describes the component that will trigger an even at a regular interval between two values.", - "type": "string", - "additionalProperties": false, - "properties": { - "condition": { - "title": "Condition", - "type": "string", - "default": "1", - "description": "The condition of event to be executed on the block. Molang" - }, - "event": { "title": "Event", "type": "string", "default": "set_block_property", "description": "The type of event executed on the block." }, - "range": { "title": "Range", "type": "array", "items": [{ "type": "integer" }, { "type": "integer" }] }, - "target": { - "title": "Target", - "description": "The target of event executed on the block.", - "type": "string", - "enum": ["block", "damager", "other", "parent", "player", "self", "target"] - } - } - }, - "looping": { "type": "boolean", "default": true, "description": "Does the event loop.", "title": "Looping" }, - "range": { - "type": "array", - "default": [10, 10], - "description": "The Range between which the component will trigger his event.", - "title": "Range" - } - } -} diff --git a/source/behavior/blocks/format/components/rotation.json b/source/behavior/blocks/format/components/rotation.json index ff886e3b2..162f71736 100644 --- a/source/behavior/blocks/format/components/rotation.json +++ b/source/behavior/blocks/format/components/rotation.json @@ -1,12 +1,6 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.rotation", "title": "Rotation", - "description": "This is the block's rotation around the center of the cube in degrees. The rotation order is x-y-z.", - "type": "array", - "additionalProperties": false, - "items": [ - { "type": "number", "title": "X" }, - { "type": "number", "title": "Y" }, - { "type": "number", "title": "Z" } - ] + "description": "The block's rotation around the center of the cube in degrees. The rotation order is [x, y, z]. Angles need to be in multiples of 90." + "$ref": "../../../../general/vectors/number3.json" } diff --git a/source/behavior/blocks/format/components/selection_box.json b/source/behavior/blocks/format/components/selection_box.json new file mode 100644 index 000000000..1e973ba73 --- /dev/null +++ b/source/behavior/blocks/format/components/selection_box.json @@ -0,0 +1,38 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.selection_box", + "title": "Selection Box", + "description": "Defines the area of the block that is selected by the player's cursor. If set to true, default values are used. If set to false, this block is not selectable by the player's cursor. If this component is omitted, default values are used.", + "oneOf": [ + { "type": "boolean" }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "origin": { + "title": "Origin", + "default": [0, 0, 0], + "$ref": "../../../../general/vectors/number3.json", + "description": "Minimal position of the bounds of the selection box. \"origin\" is specified as [x, y, z] and must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.", + "type": "array", + "items": [ + { "title": "X", "type": "number", "minimum": -8.0, "maximum": 8 }, + { "title": "Y", "type": "number", "minimum": 0, "maximum": 16 }, + { "title": "Z", "type": "number", "minimum": -8.0, "maximum": 8 } + ] + }, + "size": { + "title": "Size", + "$ref": "../../../../general/vectors/number3.json", + "default": [8.0, 8.0, 8.0], + "description": "Size of each side of the selection box. Size is specified as [x, y, z]. \"origin\" + \"size\" must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.", + "type": "array", + "items": [ + { "title": "X", "type": "number" }, + { "title": "Y", "type": "number" }, + { "title": "Z", "type": "number" } + ] + } + } + } + ] +} diff --git a/source/behavior/blocks/format/components/ticking.json b/source/behavior/blocks/format/components/ticking.json deleted file mode 100644 index 35a17dc98..000000000 --- a/source/behavior/blocks/format/components/ticking.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.ticking", - "title": "Ticking", - "description": "Describes the component that will trigger an even at a regular interval between two values.", - "type": "object", - "additionalProperties": false, - "properties": { - "looping": { "type": "boolean", "title": "Looping", "description": "Does the event loop." }, - "range": { - "title": "Range", - "description": "The Range between which the component will trigger his event.", - "type": "array", - "items": [{ "type": "integer" }, { "type": "integer" }] - }, - "on_tick": { - "type": "object", - "title": "On Tick", - "description": "Describes the component that will trigger an even at a regular interval between two values.", - "condition": { "title": "Condition", "type": "string", "description": "The condition of event to be executed on the block. Molang" }, - "event": { "title": "Event", "type": "string", "description": "The type of event executed on the block." }, - "target": { - "title": "Target", - "description": "The target of event executed on the block.", - "type": "string", - "enum": ["block", "damager", "other", "parent", "player", "self", "target"] - } - } - } -} diff --git a/source/behavior/blocks/format/components/unit_cube.json b/source/behavior/blocks/format/components/unit_cube.json index 0a463b20c..f792b45e6 100644 --- a/source/behavior/blocks/format/components/unit_cube.json +++ b/source/behavior/blocks/format/components/unit_cube.json @@ -1,6 +1,8 @@ { "$id": "blockception.minecraft.behavior.blocks.minecraft.unit_cube", "title": "Unit Cube", - "description": "Specifies that a unit cube is to be used with tessellation.", - "type": "object" + "description": "[Experimental] Specifies that a unit cube is to be used with tessellation.", + "type": "object", + "additionalProperties": false, + "properties": {} } diff --git a/source/behavior/blocks/format/components/unwalkable.json b/source/behavior/blocks/format/components/unwalkable.json deleted file mode 100644 index 1ec73c992..000000000 --- a/source/behavior/blocks/format/components/unwalkable.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.blocks.minecraft.unwalkable", - "title": "Unwalkable", - "description": "Sets the block as unwalkable. Mobs would not attempt to path over top of it when the value is set to true.", - "default": false, - "type": "boolean" -} diff --git a/source/behavior/blocks/format/minecraft.block.json b/source/behavior/blocks/format/minecraft.block.json index d0cdd87a7..37b2461e9 100644 --- a/source/behavior/blocks/format/minecraft.block.json +++ b/source/behavior/blocks/format/minecraft.block.json @@ -23,6 +23,7 @@ "minecraft:friction": { "$ref": "./components/friction.json" }, "minecraft:geometry": { "$ref": "./components/geometry.json" }, "minecraft:light_dampening": { "$ref": "./components/light_dampening.json" }, + "minecraft:light_emission": { "$ref": "./components/light_emission.json" }, "minecraft:loot": { "$ref": "./components/loot.json" }, "minecraft:map_color": { "$ref": "./components/map_color.json" }, "minecraft:material_instances": { "$ref": "./components/material_instances.json" }, diff --git a/source/general/block/reference.json b/source/general/block/reference.json index 13d0401f1..8ac275c0d 100644 --- a/source/general/block/reference.json +++ b/source/general/block/reference.json @@ -29,7 +29,7 @@ }, "tags": { "$ref": "../../molang/string.json", - "description": "[UNDOCUMENTED] A Molang expression ran against a block to match.", + "description": "A condition using Molang queries that results to true/false that can be used to query for blocks with certain tags.", "examples": ["query.any_tag('wood')"] } } diff --git a/source/general/format_version.json b/source/general/format_version.json index c3e3ba405..b8861ff59 100644 --- a/source/general/format_version.json +++ b/source/general/format_version.json @@ -4,7 +4,7 @@ "description": "A version that tells minecraft what type of data format can be expected when reading this file.", "pattern": "^([1-9]+)\\.([0-9]+)\\.([0-9]+)$", "type": "string", - "default": "1.19.0", - "examples": ["1.19.0", "1.18.30", "1.18.20", "1.18.10", "1.18.0", "1.17.0", "1.16.0", "1.15.0", "1.14.0", "1.13.0", "1.12.0", "1.10.0", "1.8.0"], - "defaultSnippets": [{ "label": "New Format version", "body": "1.${1|8,10,12,17,18|}.${3|2|0|}" }] + "default": "1.19.40", + "examples": ["1.19.40", "1.18.0", "1.17.0", "1.16.0", "1.15.0", "1.14.0", "1.13.0", "1.12.0", "1.10.0", "1.8.0"], + "defaultSnippets": [{ "label": "New Format version", "body": "1.${1|8,10,12,17,18,19|}.${3|2|0|}" }] }