diff --git a/docs/blocks/block-format-history.md b/docs/blocks/block-format-history.md new file mode 100644 index 0000000000..b13b918bf5 --- /dev/null +++ b/docs/blocks/block-format-history.md @@ -0,0 +1,484 @@ +--- +title: Block Format History +description: A list of all the changes to the data-driven block format over each Minecraft version. +category: Documentation +outline_depth: 2 +mentions: + - QuazChick +--- + +## 1.21.40 + +### Components + + + +- Released `minecraft:redstone_conductivity` from experimental + +## 1.21.30 + +### Components + + + + +- Updated `minecraft:destructible_by_mining` + - Added `item_specific_speeds` which determines the `destroy_speed` for each `item` descriptor in an array. +- Added `minecraft:redstone_conductivity` + - Contains `redstone_conductor` which determines whether this block conducts redstone. + - Contains `allows_wire_to_step_down` which determines whether redstone wire can travel down the side of this block. + +## 1.21.10 + +### Components + + + +- Released `minecraft:custom_components` from experimental +- Released `minecraft:entity_fall_on` from experimental +- Released `minecraft:tick` from experimental + +## 1.20.80 + + + + + +- Removed `events` + +### Components + + + + +- Added `minecraft:custom_components` + - Lists all the custom components that should be applied to this block. +- Added `minecraft:entity_fall_on` + - Contains `min_fall_distance` which determines the minimum distance an entity must fall to trigger the entity fall on event. +- Renamed `minecraft:queued_ticking` to `minecraft:tick` + - Removed `on_tick` parameter + + + + + +- Removed `minecraft:on_fall_on` trigger +- Removed `minecraft:on_interact` trigger +- Removed `minecraft:on_placed` trigger +- Removed `minecraft:on_player_destroyed` trigger +- Removed `minecraft:on_player_placing` trigger +- Removed `minecraft:on_step_off` trigger +- Removed `minecraft:on_step_on` trigger +- Removed `minecraft:random_ticking` trigger + +### Events + + + + + +- Removed `add_mob_effect` response +- Removed `damage` response +- Removed `decrement_stack` response +- Removed `die` response +- Removed `play_effect` response +- Removed `play_sound` response +- Removed `remove_mob_effect` response +- Removed `run_command` response +- Removed `set_block` response +- Removed `set_block_at_pos` response +- Removed `set_block_state` response +- Removed `spawn_loot` response +- Removed `swing` response +- Removed `teleport` response +- Removed `transform` response +- Removed `trigger` response + +## 1.20.60 + +### Components + +- Updated `minecraft:geometry` + - Added `culling` parameter which determines which culling rules to apply to this block's model. + + + + + +- Removed `minecraft:unit_cube` + +## 1.20.20 + +### Description + +- Released `traits` from experimental + +#### Traits + + + +- Released `minecraft:placement_direction` from experimental +- Released `minecraft:placement_position` from experimental + +## 1.20.10 + +### Description + +- Renamed `properties` to `states` + +### Components + +- Updated `minecraft:geometry` + - Added Molang permutation condition support to `bone_visibility` entries. + +### Events + + + + +- Renamed `set_block_property` response to `set_block_state` + +## 1.20.0 + +### Description + + + + +- Added `traits` + - Block traits are shortcuts for creators to add vanilla states and value setters to data-driven blocks. + +#### Traits + +- Added `minecraft:placement_direction` + - Can enable the states `minecraft:cardinal_direction` and `minecraft:facing_direction`. +- Added `minecraft:placement_position` + - Can enable the states `minecraft:block_face` and `minecraft:vertical_half`. + +## 1.19.80 + +### Components + + + +- Added `minecraft:transformation` + - Contains `rotation`, `scale` and `translation` which determine the transformation of the block's model and collisions. +- Updated `minecraft:geometry` + - Added `bone_visibility` parameter which determines whether the cubes of bones are visible based on boolean values. + + + + +- Removed `minecraft:part_visibility` + +## 1.19.70 + +### Description + +- Released `properties` from experimental + +### Permutations + +- Released from experimental +- Blocks will now fail to load if a `condition` parameter is not a valid Molang permutation condition. + +## 1.19.60 + +### Components + + + +- Released `minecraft:display_name` from experimental +- Released `minecraft:placement_filter` from experimental +- Released `minecraft:selection_box` from experimental + +## 1.19.50 + +### Components + + + +- Released `minecraft:crafting_table` from experimental +- Released `minecraft:collision_box` from experimental + + + + +- Removed `minecraft:breathability` + +## 1.19.40 + +### Description + +- Updated `menu_category` + - Added `is_hidden_in_commands` parameter which determines whether the block is treated as invalid when used in commands. + +### Components + + + +- Released `minecraft:geometry` from experimental +- Released `minecraft:material_instances` from experimental +- Removed `minecraft:breathability` +- Renamed `minecraft:block_light_filter` to `minecraft:light_dampening` + +## 1.19.30 + +### Description + +- Added `menu_category` + - Contains `category` which determines which tab this block is placed into. + - Contains `group` which determines which other items this block is grouped with. + +### Components + + + + +- Removed `minecraft:creative_category` +- Updated `minecraft:display_name` + - No longer prepends `tile.` and no longer appends `.name` to the given display name. + +## 1.19.20 + +### Components + + + +- Renamed `minecraft:block_light_emission` to `minecraft:light_emission` + - Now determines emitted light in integer light levels (0-15) rather than decimal (0.0-1.0). +- Replaced `minecraft:destroy_time` with `minecraft:destructible_by_mining` + - Setting to `false` prevents the block from being destroyed through mining. + - Setting to `true` allows the block to be mined and destroyed instantly. + - Setting to an object allows `seconds_to_destroy` to be determined. +- Replaced `minecraft:explosion_resistance` with `minecraft:destructible_by_explosion` + - Setting to `false` prevents the block from being destroyed through explosion. + - Setting to `true` allows the block to be destroyed through explosion easily. + - Setting to an object allows `explosion_resistance` to be determined. +- Value of `minecraft:friction` now represents movement resistance instead of movement. + + + + +- Removed `minecraft:unwalkable` +- Renamed `minecraft:aim_collision` to `minecraft:selection_box` + +## 1.19.10 + +### Components + + + +- Renamed `minecraft:block_light_filter` to `minecraft:light_dampening` +- Updated `minecraft:flammable` + - Can now be set to a boolean, with `false` meaning the block is non-flammable and `true` using the default flammability values. + - Renamed `flame_odds` parameter to `catch_chance_modifier` + - Renamed `burn_odds` parameter to `destroy_chance_modifier` + + + + +- Renamed `minecraft:block_collision` to `minecraft:collision_box` +- Updated `minecraft:crafting_table` + - Renamed `custom_description` parameter to `table_name` +- Renamed `minecraft:ticking` to `minecraft:queued_ticking` + - Replaced `range` parameter with `interval_range` which is now measured in ticks rather than seconds. + + + + +- Updated `minecraft:part_visibility` + - Renamed `rules` parameter to `conditions` + +## 1.18.30 + +### Components + + + + +- Removed `minecraft:breakonpush` +- Removed `minecraft:immovable` +- Removed `minecraft:onlypistonpush` +- Removed `minecraft:preventsjumping` + +## 1.18.10 + +### Components + + + +- Renamed `minecraft:block_light_absorption` to `minecraft:block_light_filter` + + + + +- Renamed `minecraft:entity_collision` to `minecraft:block_collision` +- Renamed `minecraft:pick_collision` to `minecraft:aim_collision` + +## 1.18.0 + +### Components + + + + +- Added `minecraft:crafting_table` + - Contains `crafting_tags` which determines which recipes are supported by tag. + - Contains `custom_description` which will be displayed in the UI instead of "Crafting Table". + +## 1.17.30 + +### Components + + + + +- Added `minecraft:part_visibility` + - Determines whether direct children of bones in a model are visible based on molang permutation conditions. + +## 1.17.20 + +### Components + + + + +- Added `minecraft:creative_category` + - Determines where this block appears in the creative menu. + +## 1.16.210 + +### Events + + + + +- Updated `decrement_stack` response + - Added `ignore_game_mode` parameter which determines whether the stack will be decremented when the player is in creative mode. + +## 1.16.100 + + + + + +- Added `events` + +### Description + +- Removed `is_experimental` +- Removed `register_to_creative_menu` + +### Components + + + + + +- Added `minecraft:breakonpush` + - Determines whether this block will break when a piston attempts to push it. +- Added `minecraft:breathability` + - Determines whether the block causes suffocation (`solid`) or is breathable (`air`). +- Added `minecraft:display_name` + - Determines a localization id for this block which will be used in the format `tile..name`. +- Added `minecraft:entity_collision` + - Determines the entity collision box of this block. + - Can be set to false to remove the collision completely. + - Contains `origin` which determines the starting position of the box. + - Contains `size` which determines the dimensions of the box from the `origin`. +- Added `minecraft:geometry` + - Defines the geometry identifier that this block should use as its model. +- Added `minecraft:immovable` + - Determines whether this block is immovable by pistons. +- Added `minecraft:material_instances` + - Contains rendering configuration for use with the `minecraft:geometry` or `minecraft:unit_cube` components. +- Added `minecraft:on_fall_on` trigger +- Added `minecraft:on_interact` trigger +- Added `minecraft:on_placed` trigger +- Added `minecraft:on_player_destroyed` trigger +- Added `minecraft:on_player_placing` trigger +- Added `minecraft:on_step_off` trigger +- Added `minecraft:on_step_on` trigger +- Added `minecraft:onlypistonpush` + - Determines whether this block can only be pushed by pistons and not pulled by sticky pistons. +- Added `minecraft:pick_collision` + - Determines the player selection bounds for this block. + - Can be set to false to remove the collision completely. + - Contains `origin` which determines the starting position of the box. + - Contains `size` which determines the dimensions of the box from the `origin`. +- Added `minecraft:placement_filter` + - Determines where the block can be placed by the player and survive without popping off. + - Contains `conditions` of which at least one must match. + - Each condition may contain `allowed_faces` and/or `block_filter`. +- Added `minecraft:preventsjumping` + - Determines whether entities have limited jumping abilities when on this block. +- Added `minecraft:random_ticking` trigger +- Added `minecraft:rotation` + - Rotates this block's collision boxes and model by axis-aligned angles. +- Added `minecraft:ticking` + - Determines the interval at which this block will tick, with pending tick data saved. + - Contains `looping` which determines whether ticking will continue indefinitely. + - Contains `range` which determines the random delay of the interval. + - Contains `on_tick` which can trigger an event when this block ticks. +- Added `minecraft:unit_cube` + - Causes this block to display as a full block unit in size. +- Added `minecraft:unwalkable` + - Determines whether entities should avoid walking over this block. + +### Events + + + + + +- Added `add_mob_effect` response +- Added `damage` response +- Added `decrement_stack` response +- Added `die` response +- Added `play_effect` response +- Added `play_sound` response +- Added `remove_mob_effect` response +- Added `run_command` response +- Added `set_block` response +- Added `set_block_at_pos` response +- Added `set_block_property` response +- Added `spawn_loot` response +- Added `swing` response +- Added `teleport` response +- Added `transform` response +- Added `trigger` response + +## 1.10.0 + +### Description + +- Added `identifier` + - Defines the identifier of the block. Must have a namespace that isn't `minecraft`. +- Added `is_experimental` + - Only registers the block if the `Use Experimental Gameplay` toggle is enabled in world settings. +- Added `register_to_creative_menu` + - Causes the block to appear in the `Construction` category of the creative menu. + - Custom blocks cannot be added to the recipe book at this time. + +### Components + +- Added `minecraft:block_light_absorption` + - Determines how much light (in integer light levels from 0-15) will be absorbed when passing through the block. +- Added `minecraft:block_light_emission` + - Determines how much light (as a float from 0.0-1.0) is emitted by this block. +- Added `minecraft:destroy_time` + - Determines how long it takes to mine this block in survival or adventure mode. +- Added `minecraft:explosion_resistance` + - Determines how resistant this block is to explosions. +- Added `minecraft:flammable` + - Contains `burn_odds` which determines how likely this block is to be destroyed when on fire. + - Contains `flame_odds` which determines how likely this blocks is to catch on fire when fire is nearby. +- Added `minecraft:friction` + - Determines the movement speed of entities on this block. + - Note that this is not a measure of resistance unlike in modern formats. +- Added `minecraft:loot` + - Determines the path of the loot table that will be dropped when this block is destroyed. + - This component is ignored if the used tool has the `Silk Touch` enchantment. +- Added `minecraft:map_color` + - Determines the color this block appears as on a map.