minecraft:repairable
- If present, and this item is damageable, this item can be repaired in an Anvil using the specified ingredient
- Format: object with fields
- items: Item, list of Items, or hash-prefixed Item Tag matching what can be used to repair this item
- e.g. repairable={items:'stick'}
minecraft:enchantable
- If present (and any enchantments are applicable), this item can be enchanted in an Enchanting Table
- Format: object with fields
- value: Positive integer, a higher value allows enchantments with a higher cost to be picked
- e.g. enchantable={value:15}
Instruments
Goat Horn instruments are now defined in a data pack registry folder called instrument. Like other registries, changing this content in data packs is considered experimental and requires a full world re-load to take effect.
Fields:
- sound_event: The sound event the instrument plays
- range: The maximum range (in blocks) at which the sound can be heard
- use_duration: The amount of time (in seconds) the instrument is considered in use after triggering, which also serves as its cooldown
- description: A Text Component used as the descrpition of the instrument in item tooltips
Trial Spawner Configurations
Trial Spawner configurations are now defined in a data pack registry folder called trial_spawner. Like other registries, changing this content in data packs is considered experimental and requires a full world re-load to take effect.
- Has the same format as the normal_config and ominous_config fields in Trial Spawner blocks
- Inline configurations inside Trial Spawner blocks are supported in the same format as before
- These fields may however now instead be replaced with a namespaced ID reference to a Trial Spawner configuration
Painting Variant
- Added new optional fields author and title, holding Text Components to be displayed in the creative menu tooltip
- This replaces previous mechanism where those values were derived from variant name
- Author tooltip has been removed for earth, wind, fire, water and wither variants
Enchantment Effects
- Added support for the Enchantment trigger projectile_spawned in the following items:
- Snowballs
- Tridents
- Small Fireballs
- Thrown Potions
- Ender Pearls
- Fishing Rod
- Firework Rocket
- Wind Charge
- Eggs
- Renamed effect type damage_item to change_item_damage, now also supports negative amounts
Recipes
The format used for recipe ingredients has been simplified and aligned with other fields that accept item lists (like item predicates):
- For items: { "item": "<item id>" } now becomes "<item id>"
- For tags: { "tag": "<tag id>" } now becomes "#<tag id>"
- Lists of items are still allowed, but tags can no longer appear in such list
- Remaining restrictions:
- minecraft:air can't appear anywhere in an ingredient
- Ingredients must have at least one tag or item
- The fields template, base and addition in smithing_transform and smithing_trim recipes are now optional instead of accepting empty list
crafting_transmute Recipe Type
- New crafting recipe type has been introduced: crafting_transmute
- When matched, the output will copy the input item stack, changing the item type but preserving all stack components
- This completely replaces crafting_special_shulkerboxcoloring
- Fields:
- category - crafting book category, one of building, redstone, equipment, misc
- group - optional string
- input - ingredient for item to copy
- material - additional ingredient to use
- result - item type to use for output
Loot Tables
- The special loot table empty has been removed and is no longer defined in the Vanilla data pack
- Snow Golem shearing is now controlled by a loot table found at shearing/snow_golem
- Tool value (used for functions like match_tool) is now available for some additional loot table types
- archaeology - used brush
- vault - inserted key (not available when displaying items)
- shearing - shears
- Chickens laying eggs is now controlled by a loot table found at gameplay/chicken_lay
- Armadillos randomly dropping scutes is now controlled by a loot table found at gameplay/armadillo_shed
Sheep Loot Tables
- Sheep now always uses a single loot table entities/sheep
- Wool drops are still defined in sub-tables in entities/sheep/<color>, but are just dispatched from the main table
- Note: Mutton drop is now controlled by the main table, while sub-tables are responsible only for the wool drop
- Sheep shearing is now controlled by loot table found as shearing/sheep
- This loot table also has dispatches to sub-tables for specific wool colors, which are found as shearing/sheep/<color>
Mooshroom shearing Loot Table
- Mooshroom shearing is now controlled by loot table found as shearing/mooshroom
- Sub-tables for specific variants are found as shearing/mooshroom/<variant>
Hero of the Village Gift Loot Tables
- The loot given by Villagers is now controlled by two additional loot tables:
- gameplay/hero_of_the_village/unemployed_gift - used if the Villager is unemployed
- gameplay/hero_of_the_village/baby_gift - used if the Villager is a baby
Predicates
- minecraft:boat entity sub-predicate has been removed, since Boats no longer have variants
sheep Entity Sub-predicate
- Added minecraft:sheep entity sub-predicate
- Fields:
- sheared - optional boolean
- color - optional wool dye color
salmon Entity Sub-predicate
- Added minecraft:salmon entity sub-predicate
- Fields:
- variant: one of small, medium, large
player Entity Sub-predicate
- Added a new field in the minecraft:player entity sub-predicate, input
- Can be used to detect which movement keys the player is pressing
- If specified, the predicate matches the corresponding keybinds that the player is pressing
- The following fields may be specified to match player inputs:
- forward : boolean (optional)
- backward : boolean (optional)
- left : boolean (optional)
- right : boolean (optional)
- jump : boolean (optional)
- sneak : boolean (optional)
- sprint : boolean (optional)
Advancements
Triggers
minecraft:killed_by_crossbow -> minecraft:killed_by_arrow
- Will now trigger whenever an Arrow kills an entity, not just when fired from a Crossbow
- Has a new optional Item Predicate field, fired_from_weapon
- Can be used to match the item used to shoot the Arrow
Container Locks
- The Lock field of containers has been renamed to lock and is now an item predicate
- Any items which match the predicate can open the container
- The lock data component is now also an item predicate
Boat Split
- Variants of Boats and Chest Boats now have separate entity types instead of a Type field
- Removed entites:
- minecraft:boat
- minecraft:chest_boat
- New entities:
- Boat without chest:
- Type=oak -> minecraft:oak_boat
- Type=spruce -> minecraft:spruce_boat
- Type=birch -> minecraft:birch_boat
- Type=jungle -> minecraft:jungle_boat
- Type=acacia -> minecraft:acacia_boat
- Type=cherry -> minecraft:cherry_boat
- Type=dark_oak -> minecraft:dark_oak_boat
- Type=mangrove -> minecraft:mangrove_boat
- Type=bamboo -> minecraft:bamboo_raft
- Boat with chest:
- Type=oak -> minecraft:oak_chest_boat
- Type=spruce -> minecraft:spruce_chest_boat
- Type=birch -> minecraft:birch_chest_boat
- Type=jungle -> minecraft:jungle_chest_boat
- Type=acacia -> minecraft:acacia_chest_boat
- Type=cherry -> minecraft:cherry_chest_boat
- Type=dark_oak -> minecraft:dark_oak_chest_boat
- Type=mangrove -> minecraft:mangrove_chest_boat
- Type=bamboo -> minecraft:bamboo_chest_raft
Attributes
- Attribute IDs no longer have generic., player. and zombie. prefixes
- Added tempt_range attribute that controls the range, in blocks, at which temptable mobs can be tempted
Particles
- Added block_crumble particle with the following fields:
- block_state - the block state of the block to crumble
- Added trail particle with the following fields:
- color - the color of the trail
- target - the target position that the particle should move towards
- The format of color fields in particle options is now more standardized:
- RGB fields can always be encoded either as a vector of floats (order: [R,G,B]) or as a single packed integer (order: RGB)
- ARGB fields can always be encoded either as a vector of floats (order: [R,G,B,A] or as a single packed integer (order: ARGB)
- Affected fields:
- minecraft:trail.color
- minecraft:dust.color (previously accepted only vector of floats)
- minecraft:dust_color_transition.from_color (previously accepted only vector of floats)
- minecraft:dust_color_transition.to_color (previously accepted only vector of floats)
Resource Pack Versions 35 through 42
- Added new GUI sprites
- Added new sounds
- Added support for emissive layers for block models
- Added new broken item model property
- Added support for custom equipment texture layers
- Textures for entity equipment have been moved and renamed
- Updated the format of post-processing effect definitions
- The texture map for the Arrow and Bee Stinger models have been updated
- The model and UV mapping of the Dragon Egg have been updated
- Updated textures and models for the Bundle item
- Bundle icon has new models and textures
- Bundle models and textures have 16 colored variants
- The models and UV mapping related to the Torch and blocks containing Redstone Torch have been updated
- Removals and renames of some translations is now automatically applied at startup
GUI Sprites
- The nine_slice GUI sprite scaling mode has a new optional boolean property: stretch_inner
- If true, the inner parts of the texture (i.e. not the corners) will be stretched instead of tiled
- If not specified, defaults to false as before
- The tooltip background and frame may now be customized by replacing sprites:
- tooltip/background: The background of the tooltip
- tooltip/frame: The frame appearing around the tooltip
- Items with a custom tooltip_style component will use sprites with IDs:
- <namespace>:tooltip/<path>_background and <namespace>:tooltip/<path>_frame
- The appearance of a highlighted slot may now be customized by replacing sprites:
- container/slot_highlight_front: The sprite to render in front of highlighted slots
- container/slot_highlight_back: The sprite to render behind highlighted slots
- Likewise, the appearance of a highlighted item within the Bundle can be customized with the following sprites:
- container/bundle/slot_highlight_front
- container/bundle/slot_highlight_back
- Removed container/bundle/background, container/bundle/slot, and container/bundle/blocked_slot sprites
- Added container/bundle/slot_background sprite for bundle slot background
- Added container/bundle/bundle_progressbar_fill, container/bundle/bundle_progressbar_border, and container/bundle/bundle_progressbar_full sprites
- Added hud/air_empty sprite for consumed bubble slots
Sounds
- Added break, fall, hit, place, and step sounds for the Spawner block
- Added sound ui.hud.bubble_pop for when an air bubble in the UI pops
- Added sound item.bundle.insert_fail for when failing to add an item to a Bundle
Emissive Layers for Block Models
- Added an optional light_emission field to block model elements
- Integer value between 0 and 15, with 0 being the default value (no light emission)
- If specified and non-zero, this will behave as the minimum light level that the element can receive
Item Models
- All item models can now use the broken property in model overrides that was previously limited to just Elytra
- This will have a value of 1 if the item has 1 durability left, or 0 otherwise
Custom Equipment Layers
The appearance of equipment when equipped by players or certain mobs can now be customized by defining 'equipment models' in the Resource Pack.
- Equipment model definitions are loaded from assets/<namespace>/models/equipment/<path>.json
- These can then be referenced by the equippable component with a model id of namespace:path
- The model definition is an object with fields: wolf_body, horse_body, llama_body, humanoid, humanoid_leggings, wings
- All fields are optional, and can be used to specify a list of layers for the given model layer type
- Each field contains list of layer objects:
- texture: namespaced texture location for this layer
- namespace:path will resolve to assets/<namespace>/textures/entity/equipment/<layer_type>/<path>.png
- dyeable: object with fields (optional), specifying how this layer behaves when dyed (in the dyeable item tag, and has dyed_color component)
- color_when_undyed: rgb color int (optional)
- If specified, this layer will be tinted by the color contained in the dyed_color component
- If the item is not dyeable or not dyed, it will be tinted based on the color specified by color_when_undyed
- If color_when_undyed is not specified and the item is not dyed, the layer will be hidden
- use_player_texture: boolean (default: false), true if this layer texture should be overridden by a texture given by the player
- Only used for wings layers, which will override with the player's custom Elytra texture
A model definition specifying both player and horse armor layers might look like:
{
"layers": {
"horse_body": [
{ "texture": "minecraft:iron" }
],
"humanoid": [
{ "texture": "minecraft:iron" }
],
"humanoid_leggings": [
{ "texture": "minecraft:iron" }
]
}
}
Trims
- All equippable items with an equipment model defined support rendering trims, based on the trim component
- Trim textures will be loaded from the appropriate folder in the textures/trims/entity directory
- For example, armor with wolf_body layers will fetch trims from textures/trims/entity/wolf_body
Moved Textures
- All equipment-related textures have been moved to subfolders of the textures/entity/equipment directory
- Player armor textures have been moved to textures/entity/equipment/humanoid and textures/entity/equipment/humanoid_leggings
- <material>_layer_1 textures have been renamed to <material>, and moved into the humanoid subdirectory
- <material>_layer_2 textures have been renamed to <material>, and moved into the humanoid_leggings subdirectory
- leather_layer_1_overlay and leather_layer_2_overlay textures have been renamed to leather_overlay in their respective subdirectories
- wolf_armor and wolf_armor_overlay textures have moved to textures/entity/equipment/wolf_body/ and have been renamed to armadillo_scute and armadillo_scute_overlay respectively
- turtle_layer_1 has been renamed to turtle_scute
- Llama decor textures have been moved to textures/entity/equipment/llama_body
- Horse armor textures have been moved to textures/entity/equipment/horse_body
- The Elytra texture has been moved to textures/entity/equipment/wings/elytra
- Armor trim textures have also been moved to match the folder structure of the regular equipment textures
- Textures in textures/trims/models/armor have been divided between textures/trims/entity/humanoid and textures/trims/entity/humanoid_leggings
- For leggings textures, the _leggings suffix is dropped
Shaders & Post-process Effects
Developer's Note: Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.
- Shader program configurations can now specify preprocessor define directives to apply to their linked shaders
- Many shader implementations have been merged by making use of this
- The format of core shader and post-processing shader configurations have been consolidated
- The format of post-processing effect configurations have been updated
- The ChunkOffset uniform in terrain shaders has been renamed to ModelOffset
- The rendertype_entity_glint_direct shader has been removed (replaced by rendertype_entity_glint)
- The rendertype_entity_translucent_cull shader has been removed (replaced by rendertype_item_entity_translucent_cull)
Shader Program Definitions
- Program definitions for post-processing effects (assets/<namespace>/shaders/program/<name>.json) have been made consistent with core shader definitions (assets/<namespace>/shaders/core/<name>.json)
- The blend field has been removed, as it had no use
- The attributes field has been removed, instead the Position attribute will always be bound
- The provided uniforms have been consolidated with those provided to core shaders
- Time has been renamed to GameTime
- The vertex and fragment shader references in program definitions (including post-processing effects) are now namespaced shader ids
- A vertex shader <namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.vsh
- A fragment shader <namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.fsh
- Shader source files are no longer required to be in the shaders/core subdirectory, this only exists for organization
- Added defines field to program definitions (object with fields)
- Allows GLSL define directives to be injected into the shader source, which can be referenced in the shader
- values (map of string to string)
- Will be injected as #define <key> <value> at the top of the file
- flags (list of strings)
- Will be injected as #define <key> at the top of the file
Shader Imports
- The #moj_import directive now supports namespaced includes with absolute paths
- For example, #moj_import <minecraft:fog.glsl> will import assets/minecraft/shaders/include/fog.glsl
- Relative imports are not namespaced and behave as before
Post-process Effect Definitions
- Post-processing effect configuration has been moved out of the assets/<namespace>/shaders/post directory to just assets/<namespace>/post_effect
- Vertex and fragment shaders used by these effects have been moved from assets/<namespace>/shaders/program to assets/<namespace>/shaders/post
- name has been renamed to program, and is now a namespaced id of a shader program configuration
- <namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.json
- intarget and auxtargets have been merged into a single inputs list, as specified by the input format below
- outtarget has been renamed to output with the same format
- targets is now a map between target name and target definition, as opposed to a list
- Inline target names are replaced with an empty object
- For example, ["swap"] becomes {"swap": {}}
- Target definitions with a specific size remain the same, with the name field moved into the map key
- For example, [{"name": "potato", "width": 16, "height": 16}] becomes {"potato": {"width": 16, "height": 16}}
Input Format
For both render target and texture inputs, the following fields may be specified:
- sampler_name: string - prefix to set up both _Sampler and _Size uniforms
- For example, "sampler_name": "Diffuse" will link to the DiffuseSampler and DiffuseSize uniforms
- This was previously always DiffuseSampler and InSize for intarget
- For auxtargets, the name defined the sampler uniform, and the size was given as AuxSize<index>
- bilinear: boolean (default: false) - if true, the input will be sampled with a bilinear filter
- This formerly only existed on texture inputs, however now functions for render targets
- For render targets, replaces the now removed use_linear_filter field on the pass definition
For inputs from a render target, the following fields may be specified:
- target: namespaced id - the render target id
- Either a custom target id defined in the same file, or minecraft:main to reference the main screen target
- This replaces the former id field, which was a free-form string
- use_depth_buffer: boolean (default: false) - true to sample from the depth texture, false to sample from the color texture
- This replaces the former :depth suffix applied to the target id
For inputs from a static texture, the following fields may be specified:
- location: namespaced string - the location to a static texture file that can be sampled by the effect
- As the id field did before, this resolves to a texture at assets/<namespace>/textures/effect/<path>.png
- width: positive integer - width in pixels of the texture
- height: positive integer - height in pixels of the texture
External Targets
- The 'Fabulous' graphics transparency post-processing config no longer specifies the sorted framebuffers as custom targets
- These are instead imported in the same way as the minecraft:main target
- translucent, itemEntity, particles, weather, clouds are now minecraft:translucent, minecraft:item_entity, minecraft:particles, minecraft:weather, and minecraft:clouds respectively
- The entity outline processing shader similarly imports the minecraft:entity_outline target
Translation Removals and Renames
- During load some deprecated translation strings will now be removed and/or renamed
- Packs that use these translations will need to re-add them manually
- The full list is available in the /assets/minecraft/lang/deprecated.json file inside the game's JAR file
Experimental Features
The following changes only apply when their respective Experiment is turned on, either by activating the corresponding experimental data pack or by turning it on in the Experiments screen while creating the world.
These experiments have no effect unless enabled. You can find more information about Feature Toggles here.
Winter Drop
- Added Pale Garden Biome, Pale Oak tree, Pale Moss block, Pale Moss carpet, Pale Hanging Moss and Pale Oak woodset
- Added Creaking mob, Creaking Spawn Egg and Creaking Heart block
Pale Garden
Pale Garden is a biome variation of Dark Forest. Unique features:
- Pale Oaks generate here
- Pale Moss blocks/carpet generate on the ground here
- Hanging Pale Moss generate hanging from the foliage of Pale Oaks
- Animal mobs do not spawn naturally in Pale Gardens
- New biome specific ambient sounds
- Creaking Heart block can generate in Pale Oaks
Pale Oak Tree
- Pale Oak Leaves drop Pale Oak Saplings that can be planted in a 2x2 configuration to grow Pale Oak trees
- Pale Oak Logs can be crafted into the Pale Oak woodset:
- Door
- Fence
- Fence Gate
- Plank
- Sign
- Hanging Sign
- Slab
- Stairs
- Trapdoor
- Wood
- Stripped Log
- Stripped Wood
- Button
- Pressure Plate
- Boat
- Boat with Chest
Pale Moss Block
Pale Moss block generates naturally in the Pale Garden biome
Pale Moss Carpet
Pale Moss block generates naturally in the Pale Garden biome. Unique features:
- When placed, Pale Moss Carpet grows up to two blocks on the solid faces of any block that borders it
- Pale Moss Carpet can be bone mealed to grow to full on all solid faces of any block that borders it
Pale Hanging Moss
Pale Hanging Moss generates naturally in the Pale Garden biome under the foliage of Pale Oaks
- Pale Hanging Moss does not grow randomly, but can be bone mealed to grow down
Creaking mob
The Creaking mob spawns at night in the Pale Garden biome if there is a Creaking Heart block that has been generated in a Pale Oak tree. Gameplay features:
- Creaking will activate if a surivival or adventure mode player is within 12 blocks of it and looks at it
- Creaking stays active while there is a survival or adventure mode player within 32 blocks of it
- An activated Creaking will not move if a survival or adventure player is looking at it
- Creaking is invulnerable to damage
- Creaking has fire resistance
- When hit by players, a particle trail is shown between the Creaking and the Creaking Heart block it is connected to
- When the Creaking Heart block that the Creaking is connected to is destroyed, the Creaking is removed
- Is not affected by light levels but spawns and despawns based on the day/night cycle
- Creaking cannot enter Boats
- Creaking spawned from a Creaking Heart can not go through portals
- The Creaking Spawn Egg will spawn a Creaking mob that is not connected to a Creaking Heart. This form of Creaking:
- May also be spawned through commands
- Will persist through day and night, and loads and saves
- Is fire-resistant
- Takes damage from attacks and other damage sources
- Has one point of health (half a heart)
- A Creaking summoned from the Creaking Heart cannot be spawned with a spawn egg, nor can it be named with a Name Tag or summoned with commands
- It can only exist as a part of the Creaking Heart block
- Players wearing a Carved Pumpkin on their head can look at Creaking without it freezing in place
分享这个故事