* Update vscode-settings.json * - Updated map color * - Added replaceable block component * - Effect durations can be set to infinite now * - Added support for entity sound variants * - Fix description for renders_when_invisible entity component * - Added is_collidable component * - Updated entity_sensor * - Added body_rotation_axis_aligned * - Updated projectile > on_hit * - Set min and max for collision_box * - Added locator field to sounds in animation controllers and animations * - Added new event response * - Removed peak_factor from mountain_parameters component * - Added isotropic field to material_instances * - Added tint field to material_instances * - Added input_air_controlled entity component * - Added use_beta_features property to entity.json * - Added missing match_tool property * - Added use_home_position_restriction to float_wander goal * - Added deferred client biome components * - Added dry_foliage_color client biome component * - Added destruction_particles * - Marked biome tinting as experimental * - Fix property_inheritance under breedable * - Fix inconsistency with scatter feature * - Update rideable description * - Allowed event.add/remove to be strings * - Added missing property in move_around_target behavior * - Made features accept block references * - Allowed repairable to use item descriptors * - Fix typo
162 lines
7.5 KiB
JSON
162 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": "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: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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|