169 lines
6.9 KiB
JSON
169 lines
6.9 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema",
|
|
"$id": "blockception.minecraft.behavior.blocks",
|
|
"title": "Block Definitions",
|
|
"description": "A custom block definition.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["description", "components"],
|
|
"definitions": {
|
|
"components_ref": {
|
|
"type": "object",
|
|
"title": "Component",
|
|
"description": "UNDOCUMENTED.",
|
|
"$comment": "UNDOCUMENTED",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
//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:flammable": { "$ref": "./components/flammable.json" },
|
|
"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" },
|
|
"minecraft:placement_filter": { "$ref": "./components/placement_filter.json" },
|
|
"minecraft:selection_box": { "$ref": "./components/selection_box.json" },
|
|
"minecraft:transformation": { "$ref": "./components/transformation.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" }
|
|
}
|
|
},
|
|
"traits_ref": {
|
|
"type": "object",
|
|
"title": "Trait",
|
|
"description": "A shortcut for creators to use Vanilla block states without needing to define and manage a series of events or triggers on custom blocks",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"minecraft:placement_position": { "$ref": "./traits/placement_position.json" },
|
|
"minecraft:placement_direction": { "$ref": "./traits/placement_direction.json" }
|
|
}
|
|
}
|
|
},
|
|
"properties": {
|
|
"description": {
|
|
"title": "Block Description",
|
|
"description": "The description for this block.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["identifier"],
|
|
"properties": {
|
|
"menu_category": {
|
|
"title": "Menu Category",
|
|
"$comment": "UNDOCUMENTED",
|
|
"description": "The category this block will be placed in the menu.",
|
|
"type": "object",
|
|
"default": "misc",
|
|
"additionalProperties": false,
|
|
"required": ["category"],
|
|
"properties": {
|
|
"category": {
|
|
"$ref": "../../../general/vanilla/creative_category.json"
|
|
},
|
|
"group": {
|
|
"$ref": "../../../general/vanilla/item_group.json"
|
|
},
|
|
"is_hidden_in_commands": {
|
|
"title": "Is Hidden In Commands",
|
|
"$comment": "UNDOCUMENTED",
|
|
"description": "If true, this item will not be shown in the /give command autocomplete list.",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"identifier": {
|
|
"type": "string",
|
|
"description": "The identifier for this block. The name must include a namespace and must not use the Minecraft namespace unless overriding a Vanilla block.",
|
|
"title": "Identifier",
|
|
"$ref": "../../../general/block/identifier.json"
|
|
},
|
|
"is_experimental": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "If this block is experimental, it will only be registered if the world is marked as experimantal.",
|
|
"title": "Is Experimental"
|
|
},
|
|
"register_to_creative_menu": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Whether or not to register this block to the creative inventory menu.",
|
|
"title": "Register To Creative Menu"
|
|
},
|
|
"states": {
|
|
"title": "States",
|
|
"description": "[HOLIDAY EXPERIMENTAL] UNDOCUMENTED.",
|
|
"$comment": "UNDOCUMENTED",
|
|
"propertyNames": { "pattern": "^([a-zA-Z0-9_]+:[a-zA-Z0-9_\\-]+)$" },
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"title": "State",
|
|
"description": "A block property. The name should be specified as `<namespace>:<block property>`",
|
|
"oneOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"title": "Property Value",
|
|
"description": "The value of this property.",
|
|
"anyOf": [{ "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "string" }]
|
|
}
|
|
},
|
|
{ "type": "object" }
|
|
]
|
|
}
|
|
},
|
|
"traits": {
|
|
"type": "object",
|
|
"title": "Trait",
|
|
"$ref": "#/definitions/traits_ref"
|
|
}
|
|
}
|
|
},
|
|
"events": { "$ref": "./events.json" },
|
|
"components": {
|
|
"type": "object",
|
|
"title": "Component",
|
|
"$ref": "#/definitions/components_ref"
|
|
},
|
|
"permutations": {
|
|
"type": "array",
|
|
"title": "Permutations",
|
|
"description": "UNDOCUMENTED.",
|
|
"$comment": "UNDOCUMENTED",
|
|
"items": {
|
|
"title": "Permutation",
|
|
"description": "UNDOCUMENTED.",
|
|
"$comment": "UNDOCUMENTED",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"condition": {
|
|
"title": "Condition",
|
|
"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": {
|
|
"type": "object",
|
|
"title": "Component",
|
|
"$ref": "#/definitions/components_ref"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|