* - Updated old biome format * - Added biome tags component * - Added dismount mode, and rider enter/exit event * - Made surface_color not required * - Update float wander goal * - Update follow mob behavior * - Added music def field * - Added camera fields to rideable * - Add array snippet * - Updated leashable component with presets * - Made texture field optional in destruction particles * - Marked isotropic as stable * - Moved can_be_stolen back * - Updated tempt goal * - Added float tempt behavior * - Made heightmap project optional * - Added distance based render methods * - Marked tint method as stable * - Added droop item y offset * - Added has_equipment_tag filter * - Remove unnused test.json * - Allow for custom components * - Add new block culling support * - Removed enum for biome tags in support of custom biomes * - Added replace_biomes component * - Fix errors
161 lines
7.5 KiB
JSON
161 lines
7.5 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": "The components of this block.",
|
|
"additionalProperties": true,
|
|
"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:destruction_particles": { "$ref": "./components/destruction_particles.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:item_visual": { "$ref": "./components/item_visual.json" },
|
|
"minecraft:light_dampening": { "$ref": "./components/light_dampening.json" },
|
|
"minecraft:light_emission": { "$ref": "./components/light_emission.json" },
|
|
"minecraft:liquid_detection": { "$ref": "./components/liquid_detection.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:redstone_conductivity": { "$ref": "./components/redstone_conductivity.json" },
|
|
"minecraft:replaceable": { "$ref": "./components/replaceable.json" },
|
|
"minecraft:selection_box": { "$ref": "./components/selection_box.json" },
|
|
"minecraft:transformation": { "$ref": "./components/transformation.json" },
|
|
"minecraft:custom_components": { "$ref": "./components/custom_components.json" },
|
|
"minecraft:tick": { "$ref": "./components/tick.json" },
|
|
"minecraft:entity_fall_on": { "$ref": "./components/entity_fall_on.json" },
|
|
// Tags
|
|
"tag:minecraft:diamond_tier_destructible": {},
|
|
"tag:minecraft:iron_tier_destructible": {},
|
|
"tag:minecraft:is_axe_item_destructible": {},
|
|
"tag:minecraft:is_hoe_item_destructible": {},
|
|
"tag:minecraft:is_mace_item_destructible": {},
|
|
"tag:minecraft:is_pickaxe_item_destructible": {},
|
|
"tag:minecraft:is_shears_item_destructible": {},
|
|
"tag:minecraft:is_shovel_item_destructible": {},
|
|
"tag:minecraft:is_sword_item_destructible": {},
|
|
"tag:minecraft:netherite_tier_destructible": {},
|
|
"tag:minecraft:stone_tier_destructible": {}
|
|
},
|
|
"patternProperties": {
|
|
"tag:.+": {
|
|
"title": "Tag",
|
|
"description": "Applies a tag to the block, using the key without the \"tag:\" prefix as the tag name.",
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"states_ref": {
|
|
"title": "States",
|
|
"description": "Block states are variables that can be set to different values in order to change how your block looks or behaves.",
|
|
"type": "object",
|
|
"propertyNames": { "pattern": "^([a-zA-Z0-9_]+:[a-zA-Z0-9_\\-]+)$" },
|
|
"additionalProperties": {
|
|
"title": "State",
|
|
"description": "The key defines the name of a state, which must be properly namespaced. Each value is an array that contains all of the possible values of that state or an object defining a range of integers.",
|
|
"oneOf": [
|
|
// "my:state": [false, true]
|
|
{ "$ref": "./states/enum.json" },
|
|
// "my:state": { "values": { "min": 0, "max": 15 } }
|
|
{ "$ref": "./states/integer_range.json" }
|
|
]
|
|
}
|
|
},
|
|
"traits_ref": {
|
|
"title": "Traits",
|
|
"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",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"minecraft:placement_direction": { "$ref": "./traits/placement_direction.json" },
|
|
"minecraft:placement_position": { "$ref": "./traits/placement_position.json" }
|
|
}
|
|
}
|
|
},
|
|
"properties": {
|
|
"description": {
|
|
"title": "Block Description",
|
|
"description": "The description for this block.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["identifier"],
|
|
"properties": {
|
|
"identifier": {
|
|
"title": "Identifier",
|
|
"description": "The identifier for this block. The name must include a namespace and must not use the Minecraft namespace unless overriding a Vanilla block.",
|
|
"type": "string",
|
|
"$ref": "../../../general/block/identifier.json"
|
|
},
|
|
"menu_category": {
|
|
"title": "Menu Category",
|
|
"description": "Specifies the menu category and group for the block, which determine where this block is placed in the inventory and crafting table container screens. If this field is omitted, the block will not appear in the inventory or crafting table container screens.",
|
|
"type": "object",
|
|
"examples": [{ "category": "construction" }],
|
|
"additionalProperties": false,
|
|
"required": ["category"],
|
|
"properties": {
|
|
"category": {
|
|
"$ref": "../../../general/vanilla/creative_category.json"
|
|
},
|
|
"group": {
|
|
"title": "Group",
|
|
"description": "A translation string of an existing group in minecraft to group this block/item under",
|
|
"type": "string",
|
|
"pattern": "^[0-9a-zA-Z:_\\.\\-]+$"
|
|
},
|
|
"is_hidden_in_commands": {
|
|
"title": "Is Hidden In Commands",
|
|
"description": "Determines whether or not this item can be used with commands such as /give and /setblock. Commands can use blocks by default",
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"states": { "$ref": "#/definitions/states_ref" },
|
|
"traits": { "$ref": "#/definitions/traits_ref" }
|
|
}
|
|
},
|
|
"components": { "$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_state()\"",
|
|
"$ref": "../../../molang/boolean.json"
|
|
},
|
|
"components": {
|
|
"type": "object",
|
|
"title": "Component",
|
|
"$ref": "#/definitions/components_ref"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|