Starting on blocks (#137)

* Starting on blocks

* Updated collision box

* Updated block components

* Fixed block/rotation

* Making orbi responsible for dependencies

* Updating blocks

* trigger -> triggers
This commit is contained in:
Daan Verstraten
2022-10-29 16:36:39 +02:00
committed by GitHub
parent 519f9ed84a
commit 2fe9f2ed70
50 changed files with 530 additions and 376 deletions

View File

@@ -1,10 +0,0 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.block_light_emission",
"additionalProperties": false,
"type": "number",
"title": "Block Light Emission",
"description": "The amount of light this block will emit in a range [0.0, 1.0].",
"minimum": 0,
"maximum": 1,
"default": 0.0
}

View File

@@ -1,8 +0,0 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.block_light_filter",
"additionalProperties": false,
"type": "integer",
"title": "Block Light filter",
"description": "The amount of light this block will filter out. Higher value means more light will be filtered out (0 - 15).",
"default": 0
}

View File

@@ -1,7 +0,0 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.breakonpush",
"additionalProperties": false,
"type": "boolean",
"title": "Break On Push",
"description": "When pushed by a piston the block breaks."
}

View File

@@ -1,9 +0,0 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.breathability",
"additionalProperties": false,
"type": "string",
"title": "Breathability",
"description": "Property describing the breathability of the block, and whether it's treated as a solid block or a block of air.",
"enum": ["solid", "air"],
"default": "solid"
}

View File

@@ -0,0 +1,37 @@
{
"$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": [
{
"type": "boolean",
"default": true
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"origin": {
"title": "Origin",
"description": "Minimal position of the bounds of the collision 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",
"description": "Size of each side of the collision 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" }
]
}
}
}
]
}

View File

@@ -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"
}
}
}

View File

@@ -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
}

View File

@@ -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
}
}
}
]
}

View File

@@ -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
}
}
}
]
}

View File

@@ -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"
}

View File

@@ -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." }
]
}
}
}
]
}

View File

@@ -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
}

View File

@@ -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
}
}
}
}
]
}

View File

@@ -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
}

View File

@@ -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"
}

View File

@@ -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."
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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$"
}

View File

@@ -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]]
}

View File

@@ -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" }
]
}
}

View File

@@ -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" }
}
}

View File

@@ -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" }
}
}

View File

@@ -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" }
}
}

View File

@@ -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" }
}
}

View File

@@ -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" }
}
}

View File

@@ -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" }
}
}

View File

@@ -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."
}

View File

@@ -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"]
}
}

View File

@@ -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." }
]
}
}
}
]
}

View File

@@ -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"
}
}
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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" }
]
}
}
}
]
}

View File

@@ -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"]
}
}
}
}

View File

@@ -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": {}
}

View File

@@ -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"
}

View File

@@ -14,38 +14,36 @@
"$comment": "UNDOCUMENTED",
"additionalProperties": false,
"properties": {
"minecraft:block_light_filter": { "$ref": "./components/block_light_filter.json" },
"minecraft:block_light_emission": { "$ref": "./components/block_light_emission.json" },
"minecraft:breakonpush": { "$ref": "./components/breakonpush.json" },
"minecraft:breathability": { "$ref": "./components/breathability.json" },
"minecraft:destroy_time": { "$ref": "./components/destroy_time.json" },
//Components
"minecraft:collision_box": { "$ref": "./components/collision_box.json" },
"minecraft:crafting_table": { "$ref": "./components/crafting_table.json" },
"minecraft:destructible_by_explosion": { "$ref": "./components/destructible_by_explosion.json" },
"minecraft:destructible_by_mining": { "$ref": "./components/destructible_by_mining.json" },
"minecraft:display_name": { "$ref": "./components/display_name.json" },
"minecraft:entity_collision": { "$ref": "./components/entity_collision.json" },
"minecraft:explosion_resistance": { "$ref": "./components/explosion_resistance.json" },
"minecraft:flammable": { "$ref": "./components/flammable.json" },
"minecraft:friction": { "$ref": "./components/friction.json" },
"minecraft:geometry": { "$ref": "./components/geometry.json" },
"minecraft:immovable": { "$ref": "./components/immovable.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" },
"minecraft:onlypistonpush": { "$ref": "./components/onlypistonpush.json" },
"minecraft:part_visibility": { "$ref": "./components/part_visibility.json" },
"minecraft:on_fall_on": { "$ref": "./components/on_fall_on.json" },
"minecraft:on_interact": { "$ref": "./components/on_interact.json" },
"minecraft:on_placed": { "$ref": "./components/on_placed.json" },
"minecraft:on_player_destroyed": { "$ref": "./components/on_player_destroyed.json" },
"minecraft:on_player_placing": { "$ref": "./components/on_player_placing.json" },
"minecraft:on_step_off": { "$ref": "./components/on_step_off.json" },
"minecraft:on_step_on": { "$ref": "./components/on_step_on.json" },
"minecraft:pick_collision": { "$ref": "./components/pick_collision.json" },
"minecraft:placement_filter": { "$ref": "./components/placement_filter.json" },
"minecraft:preventsjumping": { "$ref": "./components/preventsjumping.json" },
"minecraft:random_ticking": { "$ref": "./components/random_ticking.json" },
"minecraft:rotation": { "$ref": "./components/rotation.json" },
"minecraft:ticking": { "$ref": "./components/ticking.json" },
"minecraft:selection_box": { "$ref": "./components/selection_box.json" },
"minecraft:unit_cube": { "$ref": "./components/unit_cube.json" },
"minecraft:unwalkable": { "$ref": "./components/unwalkable.json" }
//Triggers
"minecraft:on_fall_on": { "$ref": "./triggers/on_fall_on.json" },
"minecraft:on_interact": { "$ref": "./triggers/on_interact.json" },
"minecraft:on_placed": { "$ref": "./triggers/on_placed.json" },
"minecraft:on_player_destroyed": { "$ref": "./triggers/on_player_destroyed.json" },
"minecraft:on_player_placing": { "$ref": "./triggers/on_player_placing.json" },
"minecraft:on_step_off": { "$ref": "./triggers/on_step_off.json" },
"minecraft:on_step_on": { "$ref": "./triggers/on_step_on.json" },
"minecraft:queued_ticking": { "$ref": "./triggers/queued_ticking.json" },
"minecraft:random_ticking": { "$ref": "./triggers/random_ticking.json" }
}
}
},
@@ -66,12 +64,24 @@
"additionalProperties": false,
"required": ["category"],
"properties": {
"category": {
"title": "Category",
"$comment": "UNDOCUMENTED",
"description": "construction",
"type": "string",
"enum": ["construction", "equipment", "items", "nature"]
"menu_category": {
"title": "",
"description": "",
"type": "object",
"additionalProperties": false,
"properties": {
"category": {
"title": "Category",
"description": "Determines which category this block will be placed under in the inventory and crafting table container screens. Options are \"construction\", \"nature\", \"equipment\", \"items\", and \"none\". If omitted or \"none\" is specified, the block will not appear in the inventory or crafting table container screens.",
"type": "string",
"enum": ["construction", "nature", "equipment", "items", "none"]
},
"group": {
"title": "Group",
"description": "Specifies the language file key that maps to which expandable/collapsible group this block will be a part of within a category. If this field is omitted, or there is no group whose name matches the loc string, this block will be placed standalone in the given category.",
"type": "string"
}
}
},
"group": {
"title": "Group",
@@ -260,8 +270,7 @@
"properties": {
"condition": {
"title": "Condition",
"description": "UNDOCUMENTED.",
"$comment": "UNDOCUMENTED",
"description": "A Molang expression that evaluates to true or false to determine if this permutation should be used. For permutation conditions you are limited to using one Molang query: \"query.block_property()\"",
"$ref": "../../../molang/string.json"
},
"components": {

View File

@@ -2,9 +2,14 @@
"$id": "blockception.minecraft.behavior.blocks.minecraft.on_fall_on",
"type": "object",
"title": "On Fall On",
"description": "Describes event for this block.",
"description": "[Experimental] Describes event for this block.",
"properties": {
"condition": { "type": "string", "default": "", "description": "The condition of event to be executed on the block.", "title": "Condition" },
"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",
@@ -12,6 +17,11 @@
"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" }
"target": {
"type": "string",
"default": "self",
"description": "The target of event executed on the block.",
"title": "Target"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.on_interact",
"type": "object",
"title": "On Fall On",
"description": "[Experimental] 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"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.on_placed",
"type": "object",
"title": "On Placed",
"description": "[Experimental] 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"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.on_player_destroyed",
"type": "object",
"title": "On Player Destroyed",
"description": "[Experimental] 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"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.on_player_placing",
"type": "object",
"title": "On Player Placing",
"description": "[Experimental] 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"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.on_step_off",
"type": "object",
"title": "On Step Off",
"description": "[Experimental] 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"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.on_step_on",
"type": "object",
"title": "On Step On",
"description": "[Experimental] 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"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"$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.",
"description": "[Experimental] Describes the component that will trigger an even at a regular interval between two values.",
"type": "object",
"additionalProperties": false,
"properties": {
@@ -17,7 +17,12 @@
"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." },
"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",

View File

@@ -0,0 +1,31 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.random_ticking",
"title": "Random Ticking",
"description": "[Experimental] Triggers the specified event randomly based on the random tick speed gamerule. The random tick speed determines how often blocks are updated.",
"type": "object",
"additionalProperties": false,
"properties": {
"on_tick": {
"title": "On Tick",
"description": "the event that will be triggered on random ticks."
},
"condition": {
"title": "Condition",
"type": "string",
"default": "1",
"description": "A condition using Molang queries that results to true/false. If true on the random tick, the event will be triggered. If false on the random tick, the event will not be triggered."
},
"event": {
"title": "Event",
"type": "string",
"default": "set_block_property",
"description": "The event that will be triggered."
},
"target": {
"title": "Target",
"type": "string",
"default": "self",
"description": "The target of the event executed by the block"
}
}
}

View File

@@ -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')"]
}
}

View File

@@ -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|}" }]
}