From 5190d134b510906c151dc44ef99c3787918a1d8d Mon Sep 17 00:00:00 2001 From: Mike Ammerlaan Date: Wed, 11 Jan 2023 10:50:10 -0800 Subject: [PATCH] v1.19.60.26-preview --- .../loot_tables/blocks/tallgrass.json | 18 + documentation/Addons.html | 2 +- documentation/Animations.html | 2 +- documentation/Biomes.html | 2 +- documentation/Blocks.html | 2 +- documentation/Entities.html | 2 +- documentation/Entity Events.html | 2 +- documentation/Entity Timeline Events.html | 2 +- documentation/Features.html | 2 +- documentation/Fogs.html | 2 +- documentation/Index.html | 2 +- documentation/Item.html | 2 +- documentation/Molang.html | 2 +- documentation/Particles.html | 2 +- documentation/Recipes.html | 2 +- documentation/Schemas.html | 4 +- documentation/Texture Sets.html | 2 +- documentation/Volumes.html | 2 +- resource_pack/blocks.json | 2 +- resource_pack/sounds.json | 42 ++ resource_pack/texts/en_US.lang | 39 +- resource_pack/ui/_ui_defs.json | 1 + resource_pack/ui/chat_screen.json | 2 +- resource_pack/ui/emote_wheel_screen.json | 4 +- resource_pack/ui/pause_screen.json | 2 +- resource_pack/ui/persona_common.json | 59 +- resource_pack/ui/persona_screen.json | 82 ++- resource_pack/ui/play_screen.json | 2 +- resource_pack/ui/profile_screen.json | 2 +- .../ui/settings_sections/general_section.json | 318 ++++++--- resource_pack/ui/start_screen.json | 2 +- resource_pack/ui/store_common.json | 13 +- .../ui/thanks_for_testing_screen.json | 635 ++++++++++++++++++ resource_pack/ui/toast_screen.json | 82 ++- resource_pack/ui/trial_upsell_screen.json | 5 +- resource_pack/ui/ui_common.json | 18 + version.json | 3 +- 37 files changed, 1179 insertions(+), 188 deletions(-) create mode 100644 behavior_pack/loot_tables/blocks/tallgrass.json create mode 100644 resource_pack/ui/thanks_for_testing_screen.json diff --git a/behavior_pack/loot_tables/blocks/tallgrass.json b/behavior_pack/loot_tables/blocks/tallgrass.json new file mode 100644 index 000000000..7bd22d9c3 --- /dev/null +++ b/behavior_pack/loot_tables/blocks/tallgrass.json @@ -0,0 +1,18 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "minecraft:wheat_seeds", + "weight": 1 + }, + { + "type": "empty", + "weight": 7 + } + ] + } + ] +} diff --git a/documentation/Addons.html b/documentation/Addons.html index 61cdee1b6..0e5a167c6 100644 --- a/documentation/Addons.html +++ b/documentation/Addons.html @@ -1,4 +1,4 @@ -

ADDONS DOCUMENTATION
Version: 1.19.60.25

+

ADDONS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Animations.html b/documentation/Animations.html index fd1dada69..7bb23682f 100644 --- a/documentation/Animations.html +++ b/documentation/Animations.html @@ -1,4 +1,4 @@ -

ANIMATIONS DOCUMENTATION
Version: 1.19.60.25

+

ANIMATIONS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Biomes.html b/documentation/Biomes.html index 223a7cdb5..35bb49351 100644 --- a/documentation/Biomes.html +++ b/documentation/Biomes.html @@ -1,4 +1,4 @@ -

BIOMES DOCUMENTATION
Version: 1.19.60.25

+

BIOMES DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Blocks.html b/documentation/Blocks.html index c725a83b0..11eaaa751 100644 --- a/documentation/Blocks.html +++ b/documentation/Blocks.html @@ -1,4 +1,4 @@ -

BLOCKS DOCUMENTATION
Version: 1.19.60.25

+

BLOCKS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Entities.html b/documentation/Entities.html index b4b9cf562..88cb6d95d 100644 --- a/documentation/Entities.html +++ b/documentation/Entities.html @@ -1,4 +1,4 @@ -

ENTITIES DOCUMENTATION
Version: 1.19.60.25

+

ENTITIES DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Entity Events.html b/documentation/Entity Events.html index 431261a74..e6947ee20 100644 --- a/documentation/Entity Events.html +++ b/documentation/Entity Events.html @@ -1,4 +1,4 @@ -

ENTITY EVENTS DOCUMENTATION
Version: 1.19.60.25

+

ENTITY EVENTS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Entity Timeline Events.html b/documentation/Entity Timeline Events.html index 284250290..e14c6e011 100644 --- a/documentation/Entity Timeline Events.html +++ b/documentation/Entity Timeline Events.html @@ -1,4 +1,4 @@ -

ENTITY TIMELINE EVENTS DOCUMENTATION
Version: 1.19.60.25

+

ENTITY TIMELINE EVENTS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Features.html b/documentation/Features.html index f7b1dc14d..c0134a674 100644 --- a/documentation/Features.html +++ b/documentation/Features.html @@ -1,4 +1,4 @@ -

FEATURES DOCUMENTATION
Version: 1.19.60.25

+

FEATURES DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Fogs.html b/documentation/Fogs.html index a3c5830c4..107325258 100644 --- a/documentation/Fogs.html +++ b/documentation/Fogs.html @@ -1,4 +1,4 @@ -

FOGS DOCUMENTATION
Version: 1.19.60.25

+

FOGS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Index.html b/documentation/Index.html index 6a20819a9..bb72511ab 100644 --- a/documentation/Index.html +++ b/documentation/Index.html @@ -1,4 +1,4 @@ -DOCUMENTATION

DOCUMENTATION
Version: 1.19.60.25 +DOCUMENTATION

DOCUMENTATION
Version: 1.19.60.26 This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.
  1. Addons diff --git a/documentation/Item.html b/documentation/Item.html index 0b6a2e3b3..019d46ef7 100644 --- a/documentation/Item.html +++ b/documentation/Item.html @@ -1,4 +1,4 @@ -

    ITEM DOCUMENTATION
    Version: 1.19.60.25

    +

    ITEM DOCUMENTATION
    Version: 1.19.60.26

    This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
    Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

    Index

diff --git a/documentation/Molang.html b/documentation/Molang.html index 5a1b738e7..15eacc012 100644 --- a/documentation/Molang.html +++ b/documentation/Molang.html @@ -1,4 +1,4 @@ -

MOLANG DOCUMENTATION
Version: 1.19.60.25

+

MOLANG DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Particles.html b/documentation/Particles.html index ea472366d..97af9fced 100644 --- a/documentation/Particles.html +++ b/documentation/Particles.html @@ -1,4 +1,4 @@ -

PARTICLES DOCUMENTATION
Version: 1.19.60.25

+

PARTICLES DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Recipes.html b/documentation/Recipes.html index 646862ebb..6ad2f8ced 100644 --- a/documentation/Recipes.html +++ b/documentation/Recipes.html @@ -1,4 +1,4 @@ -

RECIPES DOCUMENTATION
Version: 1.19.60.25

+

RECIPES DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Schemas.html b/documentation/Schemas.html index f585832f0..126826d5c 100644 --- a/documentation/Schemas.html +++ b/documentation/Schemas.html @@ -1,4 +1,4 @@ -

SCHEMAS DOCUMENTATION
Version: 1.19.60.25

+

SCHEMAS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

@@ -12,5 +12,5 @@

Overview

Schemas

-```
--------
item_event_responses:1.16.100:
----------
chance_information:1.14.0:{
int "numerator"<1-*>
int "denominator"<1-*>
}

----------
block_reference:1.10.0:{
string "name"
object "states"
{
bool "\w*:?\w+" : opt
int "\w*:?\w+" : opt
string "\w*:?\w+" : opt
}
}

----------
persona_actor_animation:1.8.0:{
version "format_version"
object "animations"
{
object "animation."
{
bool "loop" : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"
string "loop"<"hold_on_last_frame"> : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"
molang "start_delay" : opt // How long to wait in seconds before playing this animation. Note that this expression is evaluated once before playing, and only re-evaluated if asked to play from the beginning again. A looping animation should use 'loop_delay' if it wants a delay between loops.
molang "loop_delay" : opt // How long to wait in seconds before looping this animation. Note that this expression is evaluated after each loop and on looping animation only.
molang "anim_time_update" : opt // how does time pass when playing the animation. Defaults to "query.anim_time + query.delta_time" which means advance in seconds.
molang "blend_weight" : opt
bool "override_previous_animation" : opt // reset bones in this animation to the default pose before applying this animation
object "bones" : opt
{
object ""
{
object "relative_to" : opt
{
string "rotation"<"entity"> : opt // if set, makes the bone rotation relative to the entity instead of the bone's parent
}
molang "position" : opt
array "position" : opt
{
molang ""
}
object "position" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
molang "rotation" : opt
array "rotation" : opt
{
molang ""
object ""
{
molang "[xyz]"
}
}
object "rotation" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
molang "scale" : opt
array "scale" : opt
{
molang ""
}
object "scale" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
}
}
object "particle_effects" : opt
{
object "" : opt
{
string "effect" // The name of a particle effect that should be played
string "locator" : opt // The name of a locator on the actor where the effect should be located
molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized
bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).
}
array "" : opt
{
object "" : opt
{
string "effect" // The name of a particle effect that should be played
string "locator" : opt // The name of a locator on the actor where the effect should be located
molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized
bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).
}
}
}
object "sound_effects" : opt // sound effects to trigger as this animation plays, keyed by time
{
object "" : opt
{
string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.
}
array "" : opt
{
object "" : opt
{
string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.
}
}
}
object "timeline" : opt
{
string "" : opt
array "" : opt
{
string "" : opt
}
}
float "animation_length" : opt // override calculated value (set as the max keyframe or event time) and set animation length in seconds.
}
}
}

----------
geometry:1.8.0:{
bool "debug" : opt
version "format_version"
object "geometry.[a-zA-Z0-9_.'-:]+"
{
bool "debug" : opt
float "visible_bounds_width" : opt
float "visible_bounds_height" : opt
array "visible_bounds_offset"[3] : opt
{
float ""
}
int "texturewidth" : opt
int "textureheight" : opt
string "cape" : opt
array "bones" : opt
{
object "" : opt
{
string "name"
bool "reset" : opt
bool "neverRender" : opt
string "parent" : opt
array "pivot"[3] : opt
{
float ""
}
array "rotation"[3] : opt
{
float ""
}
array "bind_pose_rotation"[3] : opt
{
float "" : opt
}
bool "mirror" : opt
float "inflate" : opt
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt
{
object "" : opt
{
array "origin"[3] : opt
{
float ""
}
array "size"[3] : opt
{
float ""
}
array "uv"[2] : opt
{
float ""
}
float "inflate" : opt
bool "mirror" : opt
}
}
object "locators" : opt
{
array "" : opt
{
float "" : opt
}
}
object "poly_mesh" : opt
{
bool "normalized_uvs" : opt
array "positions" : opt
{
array ""[3] : opt
{
float ""
}
}
array "normals" : opt
{
array ""[3] : opt
{
float ""
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float ""
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float ""
}
}
}
string "polys"<"tri_list", "quad_list">
}
array "texture_meshes" : opt
{
object ""
{
string "texture"
array "position"[3] : opt
{
float ""
}
array "local_pivot"[3] : opt
{
float ""
}
array "rotation"[3] : opt
{
float ""
}
array "scale"[3] : opt
{
float ""
}
}
}
}
}
}
}

----------
geometry:1.12.0:{
bool "debug" : opt
version "format_version"
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
geometry:1.14.0:{
version "format_version"
bool "debug" : opt
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
geometry:1.16.0:{
version "format_version"
bool "debug" : opt
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
molang "binding" : opt // useful for items. A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform. Without this field it will look for a bone in the parent entity with the same name as this bone. If both are missing, it will assume a local skeletal hierarchy (via the "parent" field). If that is also missing, it will attach to the owning entity's root transform.
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
geometry:1.19.30:{
version "format_version"
bool "debug" : opt
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
molang "binding" : opt // useful for items. A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform. Without this field it will look for a bone in the parent entity with the same name as this bone. If both are missing, it will assume a local skeletal hierarchy (via the "parent" field). If that is also missing, it will attach to the owning entity's root transform.
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
```
Back to top

+```
--------
item_event_responses:1.16.100:
----------
actor_animation:1.8.0:{
version "format_version"
object "animations"
{
object "animation."
{
bool "loop" : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"
string "loop"<"hold_on_last_frame"> : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"
molang "start_delay" : opt // How long to wait in seconds before playing this animation. Note that this expression is evaluated once before playing, and only re-evaluated if asked to play from the beginning again. A looping animation should use 'loop_delay' if it wants a delay between loops.
molang "loop_delay" : opt // How long to wait in seconds before looping this animation. Note that this expression is evaluated after each loop and on looping animation only.
molang "anim_time_update" : opt // how does time pass when playing the animation. Defaults to "query.anim_time + query.delta_time" which means advance in seconds.
molang "blend_weight" : opt
bool "override_previous_animation" : opt // reset bones in this animation to the default pose before applying this animation
object "bones" : opt
{
object ""
{
object "relative_to" : opt
{
string "rotation"<"entity"> : opt // if set, makes the bone rotation relative to the entity instead of the bone's parent
}
molang "position" : opt
array "position" : opt
{
molang ""
}
object "position" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
molang "rotation" : opt
array "rotation" : opt
{
molang ""
object ""
{
molang "[xyz]"
}
}
object "rotation" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
molang "scale" : opt
array "scale" : opt
{
molang ""
}
object "scale" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
}
}
object "particle_effects" : opt
{
object "" : opt
{
string "effect" // The name of a particle effect that should be played
string "locator" : opt // The name of a locator on the actor where the effect should be located
molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized
bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).
}
array "" : opt
{
object "" : opt
{
string "effect" // The name of a particle effect that should be played
string "locator" : opt // The name of a locator on the actor where the effect should be located
molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized
bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).
}
}
}
object "sound_effects" : opt // sound effects to trigger as this animation plays, keyed by time
{
object "" : opt
{
string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.
}
array "" : opt
{
object "" : opt
{
string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.
}
}
}
object "timeline" : opt
{
string "" : opt
array "" : opt
{
string "" : opt
}
}
float "animation_length" : opt // override calculated value (set as the max keyframe or event time) and set animation length in seconds.
}
}
}

----------
chance_information:1.14.0:{
int "numerator"<1-*>
int "denominator"<1-*>
}

----------
block_reference:1.10.0:{
string "name"
object "states"
{
bool "\w*:?\w+" : opt
int "\w*:?\w+" : opt
string "\w*:?\w+" : opt
}
}

----------
persona_actor_animation:1.8.0:{
version "format_version"
object "animations"
{
object "animation."
{
bool "loop" : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"
string "loop"<"hold_on_last_frame"> : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"
molang "start_delay" : opt // How long to wait in seconds before playing this animation. Note that this expression is evaluated once before playing, and only re-evaluated if asked to play from the beginning again. A looping animation should use 'loop_delay' if it wants a delay between loops.
molang "loop_delay" : opt // How long to wait in seconds before looping this animation. Note that this expression is evaluated after each loop and on looping animation only.
molang "anim_time_update" : opt // how does time pass when playing the animation. Defaults to "query.anim_time + query.delta_time" which means advance in seconds.
molang "blend_weight" : opt
bool "override_previous_animation" : opt // reset bones in this animation to the default pose before applying this animation
object "bones" : opt
{
object ""
{
object "relative_to" : opt
{
string "rotation"<"entity"> : opt // if set, makes the bone rotation relative to the entity instead of the bone's parent
}
molang "position" : opt
array "position" : opt
{
molang ""
}
object "position" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
molang "rotation" : opt
array "rotation" : opt
{
molang ""
object ""
{
molang "[xyz]"
}
}
object "rotation" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
molang "scale" : opt
array "scale" : opt
{
molang ""
}
object "scale" : opt
{
array ""[3]
{
molang ""
}
object ""
{
enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt
array "pre"[3] : opt
{
molang ""
}
array "post"[3] : opt
{
molang ""
}
}
}
}
}
object "particle_effects" : opt
{
object "" : opt
{
string "effect" // The name of a particle effect that should be played
string "locator" : opt // The name of a locator on the actor where the effect should be located
molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized
bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).
}
array "" : opt
{
object "" : opt
{
string "effect" // The name of a particle effect that should be played
string "locator" : opt // The name of a locator on the actor where the effect should be located
molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized
bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).
}
}
}
object "sound_effects" : opt // sound effects to trigger as this animation plays, keyed by time
{
object "" : opt
{
string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.
}
array "" : opt
{
object "" : opt
{
string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.
}
}
}
object "timeline" : opt
{
string "" : opt
array "" : opt
{
string "" : opt
}
}
float "animation_length" : opt // override calculated value (set as the max keyframe or event time) and set animation length in seconds.
}
}
}

----------
geometry:1.8.0:{
bool "debug" : opt
version "format_version"
object "geometry.[a-zA-Z0-9_.'-:]+"
{
bool "debug" : opt
float "visible_bounds_width" : opt
float "visible_bounds_height" : opt
array "visible_bounds_offset"[3] : opt
{
float ""
}
int "texturewidth" : opt
int "textureheight" : opt
string "cape" : opt
array "bones" : opt
{
object "" : opt
{
string "name"
bool "reset" : opt
bool "neverRender" : opt
string "parent" : opt
array "pivot"[3] : opt
{
float ""
}
array "rotation"[3] : opt
{
float ""
}
array "bind_pose_rotation"[3] : opt
{
float "" : opt
}
bool "mirror" : opt
float "inflate" : opt
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt
{
object "" : opt
{
array "origin"[3] : opt
{
float ""
}
array "size"[3] : opt
{
float ""
}
array "uv"[2] : opt
{
float ""
}
float "inflate" : opt
bool "mirror" : opt
}
}
object "locators" : opt
{
array "" : opt
{
float "" : opt
}
}
object "poly_mesh" : opt
{
bool "normalized_uvs" : opt
array "positions" : opt
{
array ""[3] : opt
{
float ""
}
}
array "normals" : opt
{
array ""[3] : opt
{
float ""
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float ""
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float ""
}
}
}
string "polys"<"tri_list", "quad_list">
}
array "texture_meshes" : opt
{
object ""
{
string "texture"
array "position"[3] : opt
{
float ""
}
array "local_pivot"[3] : opt
{
float ""
}
array "rotation"[3] : opt
{
float ""
}
array "scale"[3] : opt
{
float ""
}
}
}
}
}
}
}

----------
geometry:1.12.0:{
bool "debug" : opt
version "format_version"
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
geometry:1.14.0:{
version "format_version"
bool "debug" : opt
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
geometry:1.16.0:{
version "format_version"
bool "debug" : opt
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
molang "binding" : opt // useful for items. A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform. Without this field it will look for a bone in the parent entity with the same name as this bone. If both are missing, it will assume a local skeletal hierarchy (via the "parent" field). If that is also missing, it will attach to the owning entity's root transform.
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
geometry:1.19.30:{
version "format_version"
bool "debug" : opt
array "minecraft:geometry"[1,*]
{
object ""
{
object "description"
{
string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.
float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).
float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).
array "visible_bounds_offset"[3] : opt
{
float "" // Offset of the visibility bounding box from the entity location point (in model space units).
}
int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.
int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.
}
string "cape" : opt
array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.
{
object "" : opt
{
string "name" // Animation files refer to this bone via this identifier.
string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it.
array "pivot"[3] : opt
{
float "" // The bone pivots around this point (in model space units).
}
array "rotation"[3] : opt
{
float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).
}
bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).
bool "debug" : opt
int "render_group_id"<0-*> : opt
array "cubes" : opt // This is the list of cubes associated with this bone.
{
object "" : opt
{
array "origin"[3] : opt
{
float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).
}
array "size"[3] : opt
{
float "" // The cube extends this amount relative to its origin (in model space units).
}
array "rotation"[3] : opt
{
float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.
}
array "pivot"[3] : opt
{
float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.
}
float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.
bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.
array "uv"[2] : opt
{
float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.
}
object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.
{
object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis
{
array "uv"[2]
{
float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.
}
array "uv_size"[2] : opt
{
float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.
}
string "material_instance" : opt
}
}
}
}
molang "binding" : opt // useful for items. A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform. Without this field it will look for a bone in the parent entity with the same name as this bone. If both are missing, it will assume a local skeletal hierarchy (via the "parent" field). If that is also missing, it will attach to the owning entity's root transform.
object "locators" : opt
{
array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
float "" : opt // Position of the locator in model space.
}
object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).
{
array "offset"
{
float "" : opt // Position of the locator in model space.
}
array "rotation"
{
float "" : opt // Rotation of the locator in model space.
}
bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.
}
}
object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.
{
bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.
array "positions" : opt
{
array ""[3] : opt
{
float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.
}
}
array "normals" : opt
{
array ""[3] : opt
{
float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.
}
}
array "uvs" : opt
{
array ""[2] : opt
{
float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.
}
}
array "polys"
{
array ""[3,4] : opt
{
array ""[3]
{
float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).
}
}
}
string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"
}
array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes
{
object ""
{
string "texture" // The friendly-named texture to use.
array "position"[3] : opt
{
float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry
}
array "local_pivot"[3] : opt
{
float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry
}
array "rotation"[3] : opt
{
float "" // The rotation (in degrees) of the texture geometry relative to the offset
}
array "scale"[3] : opt
{
float "" // The scale (in degrees) of the texture geometry relative to the offset
}
}
}
}
}
}
}
}

----------
```
Back to top

diff --git a/documentation/Texture Sets.html b/documentation/Texture Sets.html index a6ca8590b..0ad54db4a 100644 --- a/documentation/Texture Sets.html +++ b/documentation/Texture Sets.html @@ -1,4 +1,4 @@ -

TEXTURE SETS DOCUMENTATION
Version: 1.19.60.25

+

TEXTURE SETS DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/documentation/Volumes.html b/documentation/Volumes.html index efe13a4fd..df7529e7a 100644 --- a/documentation/Volumes.html +++ b/documentation/Volumes.html @@ -1,4 +1,4 @@ -

VOLUMES DOCUMENTATION
Version: 1.19.60.25

+

VOLUMES DOCUMENTATION
Version: 1.19.60.26

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

diff --git a/resource_pack/blocks.json b/resource_pack/blocks.json index b75dd1ca8..1623c39f7 100644 --- a/resource_pack/blocks.json +++ b/resource_pack/blocks.json @@ -1764,7 +1764,7 @@ } }, "lever" : { - "sound" : "wood", + "sound" : "lever", "textures" : { "down" : "lever", "east" : "lever_particle", diff --git a/resource_pack/sounds.json b/resource_pack/sounds.json index e6c4b4b95..8fcbae895 100644 --- a/resource_pack/sounds.json +++ b/resource_pack/sounds.json @@ -1138,6 +1138,48 @@ "pitch" : 1.0, "volume" : 1.0 }, + "lever" : { + "events" : { + "break" : { + "pitch" : [ 0.80, 1.0 ], + "sound" : "dig.wood", + "volume" : 1.0 + }, + "button.click_off" : { + "pitch" : 0.50, + "sound" : "random.click" + }, + "button.click_on" : { + "pitch" : 0.60, + "sound" : "random.click" + }, + "default" : "", + "hit" : { + "pitch" : 0.50, + "sound" : "hit.wood", + "volume" : 0.230 + }, + "item.use.on" : { + "pitch" : 0.80, + "sound" : "use.wood" + }, + "place" : { + "pitch" : [ 0.80, 0.80 ], + "sound" : "dig.wood", + "volume" : 1.0 + }, + "power.off" : { + "pitch" : 0.50, + "sound" : "random.click" + }, + "power.on" : { + "pitch" : 0.60, + "sound" : "random.click" + } + }, + "pitch" : 1.0, + "volume" : 1.0 + }, "lodestone" : { "events" : { "break" : { diff --git a/resource_pack/texts/en_US.lang b/resource_pack/texts/en_US.lang index 5224dfbb9..071665bb7 100644 --- a/resource_pack/texts/en_US.lang +++ b/resource_pack/texts/en_US.lang @@ -2477,6 +2477,9 @@ demo.help.title=Minecraft Demo Mode demo.remainingTime=Remaining time: %s demo.reminder=The demo time has expired, buy the game to continue or start a new world! +## Specific for the Chromebook Trial +demo.cb.reminder=The demo time has expired, start a new world to continue playing the trial! + difficulty.lock.question=Are you sure you want to lock the difficulty of this world? This will set this world to always be %1$s, and you will never be able to change that again. difficulty.lock.title=Lock World Difficulty @@ -8990,6 +8993,9 @@ trial.pauseScreen.buyGame=Unlock Full Game trial.survival.welcome=Welcome to your Minecraft Trial! trial.survival.remainingTime=%d Minutes Remaining +## Specific for the Chromebook Trial +trial.pauseScreen.cb.buyGame=Frequently Asked Questions + trial.noInvitesOrJoining=To play with friends please purchase the full game trial.upsell.trialLabel=Minecraft Trial @@ -9002,6 +9008,11 @@ trial.upsell.unlock=Unlock Full Game trial.upsell.startTrial=Start Trial trial.upsell.continueTrial=Continue Trial +## Specific for the Chromebook Trial +trial.upsell.cb.unlock=Frequently Asked Questions +trial.upsell.cb.description.worldsDontTransferToFullGame.line1=Explore, craft, build, and have fun! In this trial world, you will have 90 minutes of play time. Uncover a bug? Report it at bugs.mojang.com! Other questions? Check out our FAQ. +trial.upsell.cb.description.worldsDontTransferToFullGame.line2=(Trial worlds do not transfer to the full game.) + ratingPopUp.title=Are you enjoying Minecraft? feedbackPopup.title=Do you have any feedback for us? @@ -9017,29 +9028,49 @@ trial.upsell.expiredNewDescription.worldsDontTransferToFullGame.line1=Do you wan trial.upsell.expiredTitle=Time's Up! trial.upsell.expiredViewWorld=View World +## Specific for the Chromebook Trial +trial.upsell.cb.expiredNewDescription.worldsDontTransferToFullGame.line1=Do you want to continue exploring, crafting, and building? Start a new trial world to continue playing! +trial.upsell.cb.startNew=Start New World + ## tabbedUpsell content trial.tabbed_upsell.title=Unlock Full Game trial.tabbed_upsell.button=Buy Minecraft! trial.tabbed_upsell.buttonAlternate=Unlock Minecraft Full Game trial.tabbed_upsell.minecraft.title=MINECRAFT trial.tabbed_upsell.minecraft.description=Endlessly explore your own unique worlds and construct anything you can imagine - from the simplest of homes to the grandest of castles! Play Creative mode to build wonders with unlimited resources. Or mine in Survival mode, crafting weapons and armor to fend off dangerous mobs and survive the nights. Plus, play with friends online! Unlock the full game today! -trial.tabbed_upsell.xbl.title=Microsoft Account +trial.tabbed_upsell.xbl.title=MICROSOFT ACCOUNT trial.tabbed_upsell.xbl.description=With the full Minecraft experience you get Creative mode, Achievements, and more, plus with a Microsoft Account you can meet others in the Minecraft community! Join your friends' worlds, make new friends on Servers, and sync your Marketplace purchases to everywhere you play Minecraft. trial.tabbed_upsell.xbl.description.line2=*(in versions with Marketplace) trial.tabbed_upsell.achievements.title=ACHIEVEMENTS trial.tabbed_upsell.achievements.description=In addition to the full Minecraft experience with Creative mode, Multiplayer, and more, you'll earn Achievements and a Gamerscore to mark your Minecraft progress and show your Microsoft Account friends your accomplishments. Get the full game to start earning them! trial.tabbed_upsell.multiplayer.title=MULTIPLAYER -trial.tabbed_upsell.multiplayer.description=The full Minecraft experience lets you enjoy Creative Mode, Achievements and Multiplayer with your friends across Minecraft devices! Play with friends on console, PC and mobile to create, explore and survive together. Unlock the full Minecraft experience today! +trial.tabbed_upsell.multiplayer.description=The full Minecraft experience lets you enjoy Creative mode, Achievements and Multiplayer with your friends across Minecraft devices! Play with friends on console, PC and mobile to create, explore and survive together. Unlock the full Minecraft experience today! trial.tabbed_upsell.server.title=SERVERS trial.tabbed_upsell.server.description=Servers offer some of the most creative ways to enjoy Minecraft! Play great mini-games, meet the Minecraft community and make new friends. Unlock the full Minecraft experience to try Servers today! trial.tabbed_upsell.store.title=STORE trial.tabbed_upsell.store.description=Get access to Minecraft Marketplace, our in-game store. Switch up your look with new skins, change your world, or explore incredible new maps from the best community creators! Get the full game today! trial.tabbed_upsell.creative.title=CREATIVE -trial.tabbed_upsell.creative.description=Buy Minecraft and get Creative Mode! Access the entire inventory - the only limit to what you can build is your imagination! Fly around your world, make your dream home out of anything and everything, or just blow up a mountain with unlimited TNT! +trial.tabbed_upsell.creative.description=Buy Minecraft and get Creative mode! Access the entire inventory - the only limit to what you can build is your imagination! Fly around your world, make your dream home out of anything and everything, or just blow up a mountain with unlimited TNT! trial.tabbed_upsell.addon.title=ADD-ONS trial.tabbed_upsell.addon.description=Want to make wolves act like bunnies? Turn all the trees into cotton candy? You can alter everything in the full Minecraft experience with add-ons! Plus get access to Multiplayer, Creative mode, Achievements and more! Buy Minecraft now for full access! trial.tabbed_upsell.seeds.title=SEEDS -trial.tabbed_upsell.seeds.description=Unlock the full Minecraft experience and get access to Seeds! Seeds help you discover new biomes - survive on ice plains, ascend extreme hills, or trek across deserts. Start with unique templates or explore random new worlds! Access Seeds, Creative Mode, Multiplayer and more by buying Minecraft today! +trial.tabbed_upsell.seeds.description=Unlock the full Minecraft experience and get access to Seeds! Seeds help you discover new biomes - survive on ice plains, ascend extreme hills, or trek across deserts. Start with unique templates or explore random new worlds! Access Seeds, Creative mode, Multiplayer and more by buying Minecraft today! + +## Specific for the Chromebook Trial +trial.thanks_for_testing.title=Thanks for Testing +trial.thanks_for_testing.button=Take me to the FAQ! +trial.thanks_for_testing.minecraft.title=MINECRAFT TRIAL +trial.thanks_for_testing.minecraft.description=Thank you for downloading the Minecraft Trial for Chromebook! Your playtesting will provide invaluable data for bug fixes and technical troubleshooting. Uncover a bug? Report it at bugs.mojang.com! Other questions? Check out our FAQ. +trial.thanks_for_testing.xbl.title=MICROSOFT ACCOUNT +trial.thanks_for_testing.xbl.description=With the full Minecraft experience, you get Creative mode, Achievements, and more, plus with a Microsoft Account you can meet others in the Minecraft community! You’ll be able to join friends’ worlds, make new friends on Servers, and sync your Marketplace purchases to everywhere you play Minecraft. +trial.thanks_for_testing.xbl.description.line2=*(in versions with Marketplace) +trial.thanks_for_testing.achievements.description=In addition to the full Minecraft experience with Creative mode, Multiplayer, and more, you'll earn Achievements and a Gamerscore to mark your Minecraft progress and show your Microsoft Account friends your accomplishments. +trial.thanks_for_testing.multiplayer.description=The full Minecraft experience lets you enjoy Creative mode, Achievements and Multiplayer with your friends across Minecraft devices! Play with friends on console, PC and mobile to create, explore and survive together. +trial.thanks_for_testing.server.description=As a part of the full Minecraft experience, Servers offer some of the most creative ways to enjoy Minecraft! Play great mini-games, meet the Minecraft community and make new friends. +trial.thanks_for_testing.store.description=The full game allows access to Minecraft Marketplace, our in-game store. Switch up your look with new skins, change your world, or explore incredible new maps from the best community creators! +trial.thanks_for_testing.creative.description=A beloved part of the full Minecraft experience: Creative mode! Access the entire inventory - the only limit to what you can build is your imagination! Fly around your world, make your dream home out of anything and everything, or just blow up a mountain with unlimited TNT! +trial.thanks_for_testing.addon.description=Want to make wolves act like bunnies? Turn all the trees into cotton candy? You can alter everything in the full Minecraft experience with add-ons! Plus get access to Multiplayer, Creative mode, Achievements and more! +trial.thanks_for_testing.seeds.description=The full Minecraft experience unlocks access to Seeds! Seeds help you discover new biomes - survive on ice plains, ascend extreme hills, or trek across deserts. Start with unique templates or explore random new worlds! trial.tabbed_upsell.navleft=Navigate Tab Left trial.tabbed_upsell.navRight=Navigate Tab Right diff --git a/resource_pack/ui/_ui_defs.json b/resource_pack/ui/_ui_defs.json index fbb89d6b1..8ffb3ec46 100644 --- a/resource_pack/ui/_ui_defs.json +++ b/resource_pack/ui/_ui_defs.json @@ -110,6 +110,7 @@ "ui/persona_screen.json", "ui/play_screen.json", "ui/tabbed_upsell_screen.json", + "ui/thanks_for_testing_screen.json", "ui/win10_trial_conversion_screen.json", "ui/perf_turtle.json", "ui/pocket_containers.json", diff --git a/resource_pack/ui/chat_screen.json b/resource_pack/ui/chat_screen.json index 70d7299ea..ef005c4d4 100644 --- a/resource_pack/ui/chat_screen.json +++ b/resource_pack/ui/chat_screen.json @@ -691,7 +691,7 @@ "$dropdown_content": "chat.coordinate_dropdown_content" }, - "popup_toast@persona.popup": { + "popup_toast@toast_screen.popup": { "layer": 100, "$display_time": 0.75, "$transition_in_time": 0.15, diff --git a/resource_pack/ui/emote_wheel_screen.json b/resource_pack/ui/emote_wheel_screen.json index b35e25e05..bea6fff26 100644 --- a/resource_pack/ui/emote_wheel_screen.json +++ b/resource_pack/ui/emote_wheel_screen.json @@ -58,7 +58,9 @@ "size": [ "100%", "55% + 35px" ], "controls": [ { - "emotes_panel@persona_common.emote_wheel_panel": {} + "emotes_panel@common.squaring_panel": { + "$squaring_panel_content": "persona_common.emote_wheel_panel" + } } ] } diff --git a/resource_pack/ui/pause_screen.json b/resource_pack/ui/pause_screen.json index 56ba5fbab..f2e32532b 100644 --- a/resource_pack/ui/pause_screen.json +++ b/resource_pack/ui/pause_screen.json @@ -410,7 +410,7 @@ "buy_button@pause.pause_button_template": { "$pressed_button_name": "button.menu_buy_game", - "$button_text": "trial.pauseScreen.buyGame", + "$button_text": "$unlock_full_game_button_text", "anchor_to": "top_middle", "anchor_from": "top_middle", "ignored": "(not $trial or $is_secondary_client)", diff --git a/resource_pack/ui/persona_common.json b/resource_pack/ui/persona_common.json index 0200dc81a..a2e9d74f6 100644 --- a/resource_pack/ui/persona_common.json +++ b/resource_pack/ui/persona_common.json @@ -373,7 +373,7 @@ { "keyboard_1@common.keyboard_helper_keys": { "size": "$keyboard_helper_size", - "offset": [ 0, "-50% - 10px" ], + "offset": [ 0, "-50%y - 50% - 3px" ], "$keyboard_character": "keyboard.keyName.1", "$text_color": "$generic_button_text_color" } @@ -381,7 +381,7 @@ { "keyboard_2@common.keyboard_helper_keys": { "size": "$keyboard_helper_size", - "offset": [ "50% + 20px", 0 ], + "offset": [ "50%x + 50% + 3px", 0 ], "$keyboard_character": "keyboard.keyName.2", "$text_color": "$generic_button_text_color" } @@ -389,7 +389,7 @@ { "keyboard_3@common.keyboard_helper_keys": { "size": "$keyboard_helper_size", - "offset": [ 0, "50% + 10px" ], + "offset": [ 0, "50%y + 50% + 3px" ], "layer": 3, "$keyboard_character": "keyboard.keyName.3", "$text_color": "$generic_button_text_color" @@ -398,7 +398,7 @@ { "keyboard_4@common.keyboard_helper_keys": { "size": "$keyboard_helper_size", - "offset": [ "-50% - 20px", 0 ], + "offset": [ "-50%x - 50% - 3px", 0 ], "$keyboard_character": "keyboard.keyName.4", "$text_color": "$generic_button_text_color" } @@ -422,25 +422,38 @@ "binding_name_override": "#visible" } ], + + "$gamepad_face_right_helper|default": "gamepad_helper_b", + "$gamepad_face_down_helper|default": "gamepad_helper_a", + "variables": [ + { + // on switch we need to reverse a/b gamepad helpers since the client bases the gamepad helpers + // based on what the button does (ie. select/cancel) and not by location on the controller + "requires": "$nx_os", + "$gamepad_face_right_helper": "gamepad_helper_a", + "$gamepad_face_down_helper": "gamepad_helper_b" + } + ], + "controls": [ { "gamepad_y@common.gamepad_helper_y": { - "offset": [ 0, "-50% - 9px" ] + "offset": [ 0, "-50%y - 50% + 3px" ] } }, { - "gamepad_b@common.gamepad_helper_b": { - "offset": [ "50% + 19px", 0 ] + "gamepad_b@common.$gamepad_face_right_helper": { + "offset": [ "50%x + 50% - 3px", 0 ] } }, { - "gamepad_a@common.gamepad_helper_a": { - "offset": [ 0, "50% + 9px" ] + "gamepad_a@common.$gamepad_face_down_helper": { + "offset": [ 0, "50%y + 50% - 3px" ] } }, { "gamepad_x@common.gamepad_helper_x": { - "offset": [ "-50% - 19px", 0 ] + "offset": [ "-50%x - 50% + 3px", 0 ] } } ] @@ -526,6 +539,16 @@ "$gamepad_left_button_name|default": "('button.select_' + $gamepad_left_emote_name)", "$gamepad_right_button_name|default": "('button.select_' + $gamepad_right_emote_name)", + "variables": [ + { + // on switch we need to reverse a/b button events since the client bases the gamepad helpers + // based on what the button does (ie. select/cancel) and not by location on the controller + "requires": "$nx_os", + "$gamepad_right_button_name|default": "('button.select_' + $gamepad_bottom_emote_name)", + "$gamepad_bottom_button_name|default": "('button.select_' + $gamepad_right_emote_name)" + } + ], + "$select_button_name|default": "", "$hover_button_name|default": "", "$analog_button_name|default": "", @@ -644,9 +667,6 @@ "$hover_button_name": "button.emote_hovered", "$analog_button_name": "button.emote_hovered_via_analog", "$ignore_touch_labels|default": false, - - "size": [ "110%", "110%" ], - "$button_focus_precedence": 10, "focus_identifier": "emote_wheel", "focus_change_left": "FOCUS_OVERRIDE_STOP", @@ -664,8 +684,8 @@ "$emote_slot_index": 0, "$emote_slot_name": "$gamepad_top_emote_name", "$wheel_state_texture": "textures/ui/emote_wheel_updated_select_0", - "$emote_image_offset": [ 0, "-30%" ], - "$emote_touch_label_offset": [ 0, "-50% - 3px" ], + "$emote_image_offset": [ 0, "-33%" ], + "$emote_touch_label_offset": [ 0, "-50%y - 50% - 3px" ], "$emote_touch_label_alignment": "center", "$emote_touch_label_ignore": "$ignore_touch_labels" } @@ -686,8 +706,8 @@ "$emote_slot_index": 2, "$emote_slot_name": "$gamepad_bottom_emote_name", "$wheel_state_texture": "textures/ui/emote_wheel_updated_select_2", - "$emote_image_offset": [ 0, "30%" ], - "$emote_touch_label_offset": [ 0, "50% + 3px" ], + "$emote_image_offset": [ 0, "33%" ], + "$emote_touch_label_offset": [ 0, "50%y + 50% + 3px" ], "$emote_touch_label_alignment": "center", "$emote_touch_label_ignore": "$ignore_touch_labels" } @@ -724,7 +744,7 @@ }, "emote_wheel_panel@common_dialogs.main_panel": { - "size": [ "100%y", "100%" ], + "size": [ "100%", "100%" ], "$gamepad_top_emote_name": "emote_slot_0", "$gamepad_right_emote_name": "emote_slot_1", @@ -751,7 +771,8 @@ { "emote_wheel_content_panel": { "type": "panel", - "size": [ "89.51%y", "100% - 40px" ], + "size": [ "75%", "75%" ], + "controls": [ { "gamepad_helpers@persona_common.gamepad_hotkey_helpers": {} }, { "keyboard_helpers@persona_common.keyboard_hotkey_helpers": {} }, diff --git a/resource_pack/ui/persona_screen.json b/resource_pack/ui/persona_screen.json index 9f1be5490..b98b27f9e 100644 --- a/resource_pack/ui/persona_screen.json +++ b/resource_pack/ui/persona_screen.json @@ -3205,7 +3205,7 @@ "binding_collection_name": "color_collection" } ] - } + } } ] }, @@ -6710,8 +6710,21 @@ "$close_button_to_button_id": "button.emote_slot_popup_close" }, - "emote_equip_slot_content@common.empty_panel": { + "emote_wheel_content@persona_common.emote_wheel_panel": { + "$gamepad_helper_visible_binding_name": "#is_using_gamepad", + "size": [ "100%", "100%" ], + "layer": 2 + }, + + "emote_equip_slot_content": { + "type": "panel", + // shrink size to that of the content section of popup + "size": [ "100% - 16px", "100% - 31px" ], + // center control to the content section of popup + "offset": [ 0, 7 ], + "$close_button_visible_binding_type": "global", + "controls": [ { "close@common.close_button": {} }, { @@ -6719,25 +6732,41 @@ "size": [ 50, 20 ], "anchor_from": "bottom_right", "anchor_to": "bottom_right", - "offset": [ -18, -16 ] + "offset": [ -12, -8 ] } }, { - "emote_wheel_prompt_content": { - "type": "stack_panel", - "orientation": "vertical", - "size": [ "100% - 32px", "100% - 32px" ], - "offset": [ 9, 6 ], - "controls": [ + "emote_wheel_prompt_content@common.squaring_panel": { + "$squaring_panel_content": "persona.emote_wheel_content" + } + } + ] + }, + + "popup_emote_wheel_dialog": { + "type": "panel", + "controls": [ + { + "popup_background@persona.popup_dialog_bg": { + "$persona_popup_title_text": "#emote_popup_title", + "$persona_popup_title_size": [ "100% - 20px", "default" ], + "$persona_popup_title_font_type": "default", + "$show_close_button": false, + "$dialog_content": "persona.emote_equip_slot_content", + + "$dialog_size|default": [ "60%", "90%" ], + + "variables": [ { - "emote_wheel_content@persona_common.emote_wheel_panel": { - "$gamepad_helper_visible_binding_name": "#is_using_gamepad", - "size": [ "100% - 18px", "100%" ], - "layer": 2, - "anchor_from": "top_middle", - "anchor_to": "top_middle", - "offset": [ 0, 24 ] - } + "requires": "(($pocket_edition or $is_ios) and $touch)", + "$dialog_size": [ "88%", "90%" ] + } + ], + "size": "$dialog_size", + + "$persona_popup_title_bindings": [ + { + "binding_name": "#emote_popup_title" } ] } @@ -6768,31 +6797,18 @@ "mapping_type": "global" } ], + "controls": [ { "background_image": { "type": "image", - "size": [ "100%", "100% + 64px" ], + "size": [ "100%", "100%" ], "texture": "textures/ui/White", "color": "$dressing_room_dark_bg_color", "alpha": 0.8 } }, - { - "popup_background@persona.popup_dialog_bg": { - "$persona_popup_title_text": "#emote_popup_title", - "$persona_popup_title_size": [ "100% - 20px", "default" ], - "$persona_popup_title_font_type": "default", - "$show_close_button": false, - "$dialog_content": "persona.emote_equip_slot_content", - "size": [ "107%y", "85%" ], - "$persona_popup_title_bindings": [ - { - "binding_name": "#emote_popup_title" - } - ] - } - } + { "popup_emote_wheel_dialog@persona.popup_emote_wheel_dialog": {} } ] }, diff --git a/resource_pack/ui/play_screen.json b/resource_pack/ui/play_screen.json index 55ec9d9cc..03fc7c3b9 100644 --- a/resource_pack/ui/play_screen.json +++ b/resource_pack/ui/play_screen.json @@ -6449,7 +6449,7 @@ { "count@common_button_text": { "layer": 1, - "offset": [ 1, 1 ], + "offset": [ 0, 0.5 ], "text": "$count_text_name", "color": "$count_text_color", "bindings": [ diff --git a/resource_pack/ui/profile_screen.json b/resource_pack/ui/profile_screen.json index f33304bfd..94cf2d463 100644 --- a/resource_pack/ui/profile_screen.json +++ b/resource_pack/ui/profile_screen.json @@ -1281,7 +1281,7 @@ "$sidebar_main_view_content": "profile.profile_screen_main_panel_content" }, - "popup_toast@persona.popup": { + "popup_toast@toast_screen.popup": { "layer": 1000, "$display_time": 0.75, "$transition_in_time": 0.15, diff --git a/resource_pack/ui/settings_sections/general_section.json b/resource_pack/ui/settings_sections/general_section.json index de007c26d..eaa7743c9 100644 --- a/resource_pack/ui/settings_sections/general_section.json +++ b/resource_pack/ui/settings_sections/general_section.json @@ -701,7 +701,7 @@ "target_property_name": "#visible" } ], - "controls": [ + "controls": [ // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619) { "use_edu_remember_me@settings_common.option_toggle": { @@ -6104,14 +6104,6 @@ ] } }, - { - "end_of_feature_toggles_label": { - "type": "label", - "text": "Other Options (not governed by FeatureToggles.cpp)", - "size": [ "100%", "default" ], - "color": "$body_text_color" - } - }, { "end_of_feature_toggles_label_spacer": { "type": "panel", @@ -7094,6 +7086,32 @@ ] }, + "new_play_screen_grid_item@settings_common.radio_with_label": { + "$toggle_state_binding_name": "#initial_selected", + "$radio_label_text": "#description", + "$radio_label_bindings": [ + { + "binding_name": "#description", + "binding_type": "collection", + "binding_condition": "once", + "binding_collection_name": "dev_new_play_screen_radio" + } + ], + "$radio_toggle_group": true, + "$toggle_binding_type": "collection", + "$toggle_name": "dev_new_play_screen_radio", + "$toggle_grid_collection_name": "dev_new_play_screen_radio", + "$option_enabled_binding_name": "", + "bindings": [ + { + "binding_name": "#default_focus_precedence", + "binding_type": "collection", + "binding_condition": "visible", + "binding_collection_name": "dev_new_play_screen_radio" + } + ] + }, + "new_death_grid_item@settings_common.radio_with_label": { "$toggle_state_binding_name": "#initial_selected", "$radio_label_text": "#description", @@ -7134,20 +7152,30 @@ } ], "controls": [ + /* Feature Toggles Header */ { "ui_feature_toggles_label": { "type": "label", - "text": "UI-related Feature Toggles (governed by FeatureToggles.cpp)", + "text": "UI-related Feature Toggles", "size": [ "100%", "default" ], "color": "$body_text_color" } }, + { + "ui_feature_toggles_info_label": { + "type": "label", + "text": "Defined in FeatureToggles.cpp", + "size": [ "100%", 12 ], + "color": "$option_description_text_color" + } + }, { "ui_feature_toggles_label_spacer": { "type": "panel", "size": [ "100%", 3 ] } }, + /* Feature Toggles Settings */ { "ui_feature_toggles": { "type": "stack_panel", @@ -7167,19 +7195,56 @@ } }, { - "end_of_ui_feature_toggles_label": { + "end_of_ui_feature_toggles_label_divider": { + "type": "panel", + "size": [ "100%", "100%c" ], + "controls": [ + { + "section_divider": { + "type": "image", + "size": [ "100% - 30px", 1 ], + "texture": "textures/ui/list_item_divider_line_light" + } + } + ] + } + }, + { + "end_of_ui_feature_toggles_label_divider_spacer": { + "type": "panel", + "size": [ "100%", 8 ] + } + }, + { + "end_of_ui_feature_toggles_label_spacer": { + "type": "panel", + "size": [ "100%", 3 ] + } + }, + /* Screen Override Header */ + { + "screen_override_label": { "type": "label", - "text": "Other Options (not governed by FeatureToggles.cpp)", + "text": "Screen Overrides", "size": [ "100%", "default" ], "color": "$body_text_color" } }, { - "end_of_ui_feature_toggles_label_spacer": { + "screen_override_info_label": { + "type": "label", + "text": "Control if Ore UI or JSON UI screen will show", + "size": [ "100%", 12 ], + "color": "$option_description_text_color" + } + }, + { + "screen_override_label_spacer": { "type": "panel", "size": [ "100%", 3 ] } }, + /* Create New World Screen Overrides */ { "new_create_world_screen_radio_label": { "type": "label", @@ -7211,10 +7276,47 @@ }, { "new_create_world_screen_radio_button_spacer": { + "type": "panel", + "size": [ "100%", 10 ] + } + }, + /* Play Screen Overrides */ + { + "new_play_screen_radio_label": { + "type": "label", + "text": "New Play Screen", + "size": [ "100%", "default" ], + "color": "$body_text_color" + } + }, + { + "new_play_screen_radio_label_spacer": { "type": "panel", "size": [ "100%", 3 ] } }, + { + "new_play_screen_radio_button": { + "type": "grid", + "size": [ "100%", "100%c" ], + "grid_item_template": "general_section.new_play_screen_grid_item", + "grid_dimension_binding": "#dev_new_play_screen_radio_dimension", + "collection_name": "dev_new_play_screen_radio", + "bindings": [ + { + "binding_name": "#dev_new_play_screen_radio_dimension", + "binding_condition": "visible" + } + ] + } + }, + { + "new_play_screen_radio_button_spacer": { + "type": "panel", + "size": [ "100%", 10 ] + } + }, + /* Death Screen Overrides */ { "new_death_screen_radio_label": { "type": "label", @@ -7250,6 +7352,42 @@ "size": [ "100%", 3 ] } }, + { + "end_of_ui_screen_override_divider": { + "type": "panel", + "size": [ "100%", "100%c + 8px" ], + "controls": [ + { + "section_divider": { + "type": "image", + "size": [ "100% - 30px", 1 ], + "texture": "textures/ui/list_item_divider_line_light" + } + } + ] + } + }, + { + "end_of_ui_sceen_override_divider_spacer": { + "type": "panel", + "size": [ "100%", 3 ] + } + }, + /* Other UI Options */ + { + "other_ui_options_label": { + "type": "label", + "text": "Other UI Options", + "size": [ "100%", "default" ], + "color": "$body_text_color" + } + }, + { + "other_ui_options_label_spacer": { + "type": "panel", + "size": [ "100%", 3 ] + } + }, { "option_toggle_screen_opt_in_functionality@settings_common.option_toggle": { "$option_label": "Enable Opt-In buttons for new screens", @@ -7295,47 +7433,55 @@ } }, { - "open_ore_ui_label": { - "type": "label", - "text": "Ore UI developer pages", - "size": [ "100%", "default" ], - "color": "$body_text_color" - } - }, - { - "open_ore_ui_label_spacer": { - "type": "panel", - "size": [ "100%", 3 ] - } - }, - { - "open_ore_ui_docs@settings_common.action_button": { - "$pressed_button_name": "button.open_ore_ui_docs", - "$button_text": "Open Ore UI Documentation" + "option_show_touch_control_selection_screen@settings_common.option_toggle": { + "$option_label": "options.showTouchControlSelectionScreen", + "$option_binding_name": "#show_touch_control_selection_screen", + "$option_enabled_binding_name": "#show_touch_control_selection_screen_enabled", + "$toggle_name": "show_touch_control_selection_screen" } }, { - "open_ore_ui_tests@settings_common.action_button": { - "$pressed_button_name": "button.open_ore_ui_tests", - "$button_text": "Open Ore UI Test Screens" + "option_reset_on_start@settings_common.option_toggle": { + "$option_label": "options.resetOnStart", + "$option_binding_name": "#reset_on_start", + "$option_enabled_binding_name": "#reset_on_start_enabled", + "$toggle_name": "reset_on_start" } }, { - "open_ore_ui_perf@settings_common.action_button": { - "$pressed_button_name": "button.open_ore_ui_perf", - "$button_text": "Open Ore UI Performance Screens" + "option_slider_drag_dwell@settings_common.option_slider": { + "$option_label": "#dwell_before_drag_time_slider_label", + "$slider_name": "dwell_before_drag_time", + "$slider_value_binding_name": "#dwell_before_drag_time", + "$slider_tts_text_value": "#dwell_before_drag_time_text_value", + "$option_enabled_binding_name": "#dwell_before_drag_time_enabled", + "$label_bindings": [ + { + "binding_name": "$option_label" + } + ] } }, { - "open_ore_ui_test_modal@settings_common.action_button": { - "$pressed_button_name": "button.open_ore_ui_test_modal", - "$button_text": "Open Ore UI Test Modal" + "option_slider_stack_splitting@settings_common.option_slider": { + "$option_label": "#stack_splitting_trigger_time_slider_label", + "$slider_name": "stack_splitting_trigger_time", + "$slider_value_binding_name": "#stack_splitting_trigger_time", + "$slider_tts_text_value": "#stack_splitting_trigger_time_text_value", + "$option_enabled_binding_name": "#stack_splitting_trigger_time_enabled", + "$label_bindings": [ + { + "binding_name": "$option_label" + } + ] } }, { - "open_ore_ui_tests_spacer": { - "type": "panel", - "size": [ "100%", 7 ] + "option_resizable_ui@settings_common.option_toggle": { + "$option_label": "options.resizableUI", + "$option_binding_name": "#resizable_ui", + "$option_enabled_binding_name": "#resizable_ui_enabled", + "$toggle_name": "resizable_ui" } }, { @@ -7364,56 +7510,70 @@ "size": [ "100%", 7 ] } }, + /* Ore UI Developer Pages */ { - "option_show_touch_control_selection_screen@settings_common.option_toggle": { - "$option_label": "options.showTouchControlSelectionScreen", - "$option_binding_name": "#show_touch_control_selection_screen", - "$option_enabled_binding_name": "#show_touch_control_selection_screen_enabled", - "$toggle_name": "show_touch_control_selection_screen" + "ore_ui_developer_pages_divider": { + "type": "panel", + "size": [ "100%", "100%c" ], + "controls": [ + { + "section_divider": { + "type": "image", + "size": [ "100% - 30px", 1 ], + "texture": "textures/ui/list_item_divider_line_light" + } + } + ] } }, { - "option_reset_on_start@settings_common.option_toggle": { - "$option_label": "options.resetOnStart", - "$option_binding_name": "#reset_on_start", - "$option_enabled_binding_name": "#reset_on_start_enabled", - "$toggle_name": "reset_on_start" + "ore_ui_developer_pages_spacer": { + "type": "panel", + "size": [ "100%", 8 ] } }, { - "option_slider_drag_dwell@settings_common.option_slider": { - "$option_label": "#dwell_before_drag_time_slider_label", - "$slider_name": "dwell_before_drag_time", - "$slider_value_binding_name": "#dwell_before_drag_time", - "$slider_tts_text_value": "#dwell_before_drag_time_text_value", - "$option_enabled_binding_name": "#dwell_before_drag_time_enabled", - "$label_bindings": [ - { - "binding_name": "$option_label" - } - ] + "open_ore_ui_label": { + "type": "label", + "text": "Ore UI Developer Pages", + "size": [ "100%", "default" ], + "color": "$body_text_color" } }, { - "option_slider_stack_splitting@settings_common.option_slider": { - "$option_label": "#stack_splitting_trigger_time_slider_label", - "$slider_name": "stack_splitting_trigger_time", - "$slider_value_binding_name": "#stack_splitting_trigger_time", - "$slider_tts_text_value": "#stack_splitting_trigger_time_text_value", - "$option_enabled_binding_name": "#stack_splitting_trigger_time_enabled", - "$label_bindings": [ - { - "binding_name": "$option_label" - } - ] + "open_ore_ui_label_spacer": { + "type": "panel", + "size": [ "100%", 3 ] } }, { - "option_resizable_ui@settings_common.option_toggle": { - "$option_label": "options.resizableUI", - "$option_binding_name": "#resizable_ui", - "$option_enabled_binding_name": "#resizable_ui_enabled", - "$toggle_name": "resizable_ui" + "open_ore_ui_docs@settings_common.action_button": { + "$pressed_button_name": "button.open_ore_ui_docs", + "$button_text": "Open Ore UI Documentation" + } + }, + { + "open_ore_ui_tests@settings_common.action_button": { + "$pressed_button_name": "button.open_ore_ui_tests", + "$button_text": "Open Ore UI Test Screens" + } + }, + { + "open_ore_ui_perf@settings_common.action_button": { + "$pressed_button_name": "button.open_ore_ui_perf", + "$button_text": "Open Ore UI Performance Screens" + } + }, + { + "open_ore_ui_test_modal@settings_common.action_button": { + "$pressed_button_name": "button.open_ore_ui_test_modal", + "$button_text": "Open Ore UI Test Modal" + } + }, + { + "open_ore_ui_tests_spacer": { + "type": "panel", + "size": [ "100%", 7 ] } } ] diff --git a/resource_pack/ui/start_screen.json b/resource_pack/ui/start_screen.json index 589e6f2fb..ac6f2c19e 100644 --- a/resource_pack/ui/start_screen.json +++ b/resource_pack/ui/start_screen.json @@ -1057,7 +1057,7 @@ "buy_game_button@start.main_button": { "$pressed_button_name": "button.menu_buy_game", - "$button_text": "trial.pauseScreen.buyGame" + "$button_text": "$unlock_full_game_button_text" }, "stacked_row": { diff --git a/resource_pack/ui/store_common.json b/resource_pack/ui/store_common.json index a4c58d746..baa8d2389 100644 --- a/resource_pack/ui/store_common.json +++ b/resource_pack/ui/store_common.json @@ -1039,15 +1039,18 @@ "stack_panel": { "ignored": "$hide_failure_text", "type": "stack_panel", + "use_child_anchors": true, "orientation": "vertical", - "size": [ "100%cm", "100% - 8px" ], + "size": [ "100%cm+50px", "100% - 8px" ], "layer": 2, "controls": [ { "top_panel": { "type": "stack_panel", "orientation": "horizontal", - "size": [ "100%sm", "100%cm" ], + "anchor_to": "top_left", + "anchor_from": "top_left", + "size": [ "100%sm+50px", "100%cm" ], "controls": [ { "error_glyph_panel": { @@ -1081,7 +1084,7 @@ "layer": "($baseLayer + 1)", "color": "$body_text_color", "text_alignment": "left", - "size": [ "fill", "default" ], + "size": [ "200px", "default" ], "font_type": "smooth", "font_scale_factor": 1.2, "text": "#store_failure_text", @@ -1109,8 +1112,10 @@ { "image": { "type": "image", - "size": [ 194, 80 ], + "size": [ 154, "41.24%x" ], "alpha": 0, + "anchor_to": "bottom_middle", + "anchor_from": "bottom_middle", "anims": [ "@common_store.failure_text_wait_animation" ], diff --git a/resource_pack/ui/thanks_for_testing_screen.json b/resource_pack/ui/thanks_for_testing_screen.json new file mode 100644 index 000000000..3699abf6d --- /dev/null +++ b/resource_pack/ui/thanks_for_testing_screen.json @@ -0,0 +1,635 @@ +{ + "namespace": "thanks_for_testing", + + //--------------------------------------------------------------------------- + // Padding panels + //--------------------------------------------------------------------------- + + "padding_horizontal": { + "type": "panel", + "size": [ 2, "100%" ] + }, + + "padding_vertical": { + "type": "panel", + "size": [ "100%", 2 ] + }, + + "text_horizontal_padding": { + "type": "panel", + "size": [ 5, "100%" ] + }, + + //--------------------------------------------------------------------------- + // Button panels content + //--------------------------------------------------------------------------- + + "tabbed_upsell_buy_now_button@common_buttons.light_content_button": { + "$pressed_button_name": "button.tabbed_buy_now_button", + "$button_content": "thanks_for_testing.tabbed_buy_now_label" + }, + + "tabbed_buy_now_label": { + "type": "panel", + "layer": 2, + "controls": [ + { + "button_label": { + "type": "label", + "color": "$text_color", + "text": "trial.thanks_for_testing.button" + } + } + ] + }, + + //--------------------------------------------------------------------------- + // Text Panel + //--------------------------------------------------------------------------- + + "label_panel": { + "type": "panel", + "controls": [ + { + "label_text": { + "type": "label", + "size": [ "100%", "default" ], + "$text_font_scale_factor|default": 0.9, + "font_scale_factor": "$text_font_scale_factor", + "font_type": "smooth", + "text": "$text", + "color": "$text_color" + } + } + ] + }, + + "text_panel": { + "type": "stack_panel", + "orientation": "vertical", + "size": [ "100% - 2px", "default" ], + "controls": [ + { + "tab_content_title_panel@thanks_for_testing.label_panel": { + "size": [ "100%", 13 ], + "$text": "$title_text", + "$text_color": "$main_header_text_color", + "$text_font_scale_factor": 1.33 + } + }, + { + "tab_content_description_panel@thanks_for_testing.label_panel": { + "size": [ "100%", "100%c" ], + "$text_color": "$body_text_color", + "$text": "$description_text" + } + }, + { + "tab_content_description_panel_second@thanks_for_testing.label_panel": { + "ignored": "(not $multiline_description)", + "size": [ "100%", "100%c" ], + "$text_color": "$body_text_color", + "$text": "$description_text_line_2" + } + } + ] + }, + + //--------------------------------------------------------------------------- + // Image Panel + //--------------------------------------------------------------------------- + + "dialog_image": { + "type": "image", + "layer": 2, + "texture": "$texture", + "size": [ "100% - 2px", "100%" ] + }, + + "dialog_image_with_border": { + "type": "image", + "layer": 1, + "$background_texture|default": "textures/ui/Grey", + "texture": "$background_texture", + "controls": [ + { + "dialog_image@thanks_for_testing.dialog_image": {} + } + ] + }, + + "content_image_panel": { + "type": "stack_panel", + "orientation": "horizontal", + "size": [ "100%", "100%" ], + "controls": [ + { + "minecraft_dialog_image_with_border@thanks_for_testing.dialog_image_with_border": { + "size": [ "40%", "100%" ] + } + }, + { + "horizontal_padding_01@thanks_for_testing.text_horizontal_padding": {} + }, + { + "scrolling_panel@common.scrolling_panel": { + "size": [ "60% - 5px", "100%" ], + "$scrolling_content": "thanks_for_testing.scroll_text", + "$show_background": false, + "$scroll_size": [ "5px", "100% - 4px" ], + "$scroll_bar_left_padding_size": [ 1, 0 ], + "layer": 3 + } + } + ] + }, + + "scroll_text@common.non_interact_focus_border_button": { + "$content_inside": "thanks_for_testing.text_panel", + "$border_size": [ "100%", "100%sm + 2px" ], + "size": [ "100%", "100%cm" ], + "$focus_id": "text_container" + }, + + "image_panel": { + "type": "panel", + "size": [ "100%", "100%" ], + "$focus_texture|default": "common.empty_panel", + "variables": [ + { + "requires": "(($tab_state = checked_hover) or ($tab_state = checked))", + "$focus_texture": "common.focus_border_white" + } + ], + "controls": [ + { + "dialog_image_with_border@thanks_for_testing.dialog_image_with_border": { + "size": [ "100%", "100%" ] + } + }, + { + "focus_image@$focus_texture": {} + } + ] + }, + + //--------------------------------------------------------------------------- + // Main navigation tabs + //--------------------------------------------------------------------------- + + "top_tab@common_tabs.tab_top": { + "$toggle_focus_enabled": false, + "$toggle_name": "navigation_tab", + "$toggle_group_default_selected": "$default_tab", + "$background_texture": "textures/ui/Black" + }, + + //--------------------------------------------------------------------------- + // Tabs layout panels + //--------------------------------------------------------------------------- + + "tab_navigation_panel_layout": { + "type": "stack_panel", + "orientation": "horizontal", + "anchor_to": "top_left", + "anchor_from": "top_left", + "size": [ "100%", 16.8 ], + "controls": [ + { + "navigation_tabs": { + "type": "panel", + "size": [ "100%", "100%" ], + "controls": [ + { + "content@$navigation_tab": { + } + } + ] + } + } + ] + }, + + "common_tab_navigation_panel_layout": { + "type": "stack_panel", + "orientation": "horizontal", + "size": [ "100%", "100%" ] + }, + + "tabbed_tab_navigation_panel_layout@thanks_for_testing.common_tab_navigation_panel_layout": { + "controls": [ + { + "minecraft_navigation_tab@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "minecraft_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 0, + "$texture": "textures/ui/tabbed_upsell_maingame_thumb", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_01@thanks_for_testing.padding_horizontal": {} + }, + { + "xbl_navigation_tab@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "xbl_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 1, + "$texture": "textures/ui/tabbed_upsell_xbox_thumbnail", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_02@thanks_for_testing.padding_horizontal": {} + }, + { + "achievements_navigation_tab3@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "achievements_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 2, + "$texture": "textures/ui/tabbed_upsell_achievements_thumb", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_03@thanks_for_testing.padding_horizontal": {} + }, + { + "multiplayer_navigation_tab4@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "multiplayer_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 3, + "$texture": "textures/ui/tabbed_upsell_multiplayer_thumbnail", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_04@thanks_for_testing.padding_horizontal": {} + }, + { + "server_navigation_tab@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "server_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 4, + "$texture": "textures/ui/tabbed_upsell_servers_thumbnail", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_05@thanks_for_testing.padding_horizontal": {} + }, + { + "store_navigation_tab@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "store_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 5, + "$texture": "textures/ui/tabbed_upsell_marketplace_thumbnail", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_06@thanks_for_testing.padding_horizontal": {} + }, + { + "creative_navigation_tab@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "creative_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 6, + "$texture": "textures/ui/tabbed_upsell_creative_thumbnail", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_07@thanks_for_testing.padding_horizontal": {} + }, + { + "packs_navigation_tab@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "packs_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 7, + "$texture": "textures/ui/tabbed_upsell_addons_thumbnail", + "$tab_panel": "thanks_for_testing.image_panel" + } + }, + { + "nav_padding_08@thanks_for_testing.padding_horizontal": {} + }, + { + "seeds_navigation_tab@thanks_for_testing.top_tab": { + "size": [ "fill", "100%" ], + "$tab_view_binding_name": "seeds_navigation_tab_toggle", + "$radio_toggle_group": true, + "$toggle_group_forced_index": 8, + "$texture": "textures/ui/tabbed_upsell_seeds_thumbnail", + "$tab_panel": "thanks_for_testing.image_panel" + } + } + ] + }, + + //--------------------------------------------------------------------------- + // Content layout panels + //--------------------------------------------------------------------------- + + "tabbed_tab_content_panel_layout": { + "type": "panel", + "anchor_to": "bottom_middle", + "anchor_from": "bottom_middle", + "size": [ "100%", "fill" ], + "$multiline_description": false, + "controls": [ + { + "minecraft_tab_content@thanks_for_testing.minecraft_tab_content_panel": {} + }, + { + "xbl_tab_content2@thanks_for_testing.xbl_tab_content_panel": {} + }, + { + "achievements_tab_content3@thanks_for_testing.achievements_tab_content_panel": {} + }, + { + "multiplayer_tab_content4@thanks_for_testing.multiplayer_tab_content_panel": {} + }, + { + "server_tab_content5@thanks_for_testing.server_tab_content_panel": {} + }, + { + "store_tab_content6@thanks_for_testing.store_tab_content_panel": {} + }, + { + "creative_tab_content7@thanks_for_testing.creative_tab_content_panel": {} + }, + { + "packs_tab_content8@thanks_for_testing.packs_tab_content_panel": {} + }, + { + "seeds_tab_content9@thanks_for_testing.seeds_tab_content_panel": {} + } + ] + }, + + //--------------------------------------------------------------------------- + // Content tabs panel + //--------------------------------------------------------------------------- + + "common_tab_content_panel": { + "type": "panel", + "controls": [ + { + "content@$scroll_tab_content": { + "layer": 2, + "anchor_from": "top_left", + "anchor_to": "top_left", + "size": [ "100%", "100%" ] + } + } + ], + "bindings": [ + { + "binding_type": "view", + "source_control_name": "$visible_bind_toggle_source_control", + "source_property_name": "#toggle_state", + "target_property_name": "#visible" + } + ] + }, + + "minecraft_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "minecraft_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_maingame", + "$title_text": "trial.thanks_for_testing.minecraft.title", + "$description_text": "trial.thanks_for_testing.minecraft.description" + }, + + "xbl_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "xbl_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_xbox", + "$title_text": "trial.thanks_for_testing.xbl.title", + "$description_text": "trial.thanks_for_testing.xbl.description", + "$multiline_description": true, + "$description_text_line_2": "trial.thanks_for_testing.xbl.description.line2" + }, + + "achievements_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "achievements_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_achievements", + "$title_text": "trial.tabbed_upsell.achievements.title", + "$description_text": "trial.thanks_for_testing.achievements.description" + }, + + "multiplayer_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "multiplayer_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_multiplayer", + "$title_text": "trial.tabbed_upsell.multiplayer.title", + "$description_text": "trial.thanks_for_testing.multiplayer.description" + }, + + "server_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "server_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_servers", + "$title_text": "trial.tabbed_upsell.server.title", + "$description_text": "trial.thanks_for_testing.server.description" + }, + + "store_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "store_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_marketplace", + "$title_text": "trial.tabbed_upsell.store.title", + "$description_text": "trial.thanks_for_testing.store.description" + }, + + "creative_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "creative_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_creative", + "$title_text": "trial.tabbed_upsell.creative.title", + "$description_text": "trial.thanks_for_testing.creative.description" + }, + + "packs_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "packs_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_add_ons", + "$title_text": "trial.tabbed_upsell.addon.title", + "$description_text": "trial.thanks_for_testing.addon.description" + }, + + "seeds_tab_content_panel@thanks_for_testing.common_tab_content_panel": { + "$visible_bind_toggle_source_control": "seeds_navigation_tab_toggle", + "$scroll_tab_content": "thanks_for_testing.content_image_panel", + "$texture": "textures/ui/tabbed_upsell_seeds", + "$title_text": "trial.tabbed_upsell.seeds.title", + "$description_text": "trial.thanks_for_testing.seeds.description" + }, + + //--------------------------------------------------------------------------- + // Tab Panel + //--------------------------------------------------------------------------- + + "common_tab_screen_panel": { + "type": "stack_panel", + "orientation": "vertical", + "size": [ "100% - 4px", "100%" ], + "controls": [ + { + "tab_navigation_panel@thanks_for_testing.tab_navigation_panel_layout": {} + }, + { + "padding_01@thanks_for_testing.padding_vertical": {} + }, + { + "tab_content_panel@$tab_content_panel": {} + } + ] + }, + + "tabbed_screen_panel@thanks_for_testing.common_tab_screen_panel": { + "$navigation_tab": "thanks_for_testing.tabbed_tab_navigation_panel_layout", + "$tab_content_panel": "thanks_for_testing.tabbed_tab_content_panel_layout" + }, + + //--------------------------------------------------------------------------- + // Button main Panel + //--------------------------------------------------------------------------- + + "button_panel": { + "type": "stack_panel", + "size": [ "100%", 29 ], + "orientation": "horizontal", + "controls": [ + { + "padding_5@thanks_for_testing.padding_horizontal": {} + }, + { + "buy_now_button@thanks_for_testing.tabbed_upsell_buy_now_button": { + "size": [ "100% - 4px", "100%" ], + "$focus_override_up": "text_container" + } + }, + { + "padding_6@thanks_for_testing.padding_horizontal": {} + } + ] + }, + + //--------------------------------------------------------------------------- + // Tab main Panel + //--------------------------------------------------------------------------- + + "tab_panel": { + "type": "stack_panel", + "size": [ "100%", "fill" ], + "orientation": "horizontal", + "controls": [ + { + "padding_3@thanks_for_testing.padding_horizontal": {} + }, + { + "main_control@thanks_for_testing.tabbed_screen_panel": {} + }, + { + "padding_4@thanks_for_testing.padding_horizontal": {} + } + ] + }, + + "tabbed_Upsell_content": { + "type": "stack_panel", + "size": [ "100%", "100%" ], + "orientation": "vertical", + "controls": [ + { + "padding_0@thanks_for_testing.padding_vertical": {} + }, + { + "tab_panel@thanks_for_testing.tab_panel": {} + }, + { + "padding_1@thanks_for_testing.padding_vertical": {} + }, + { + "button_panel@thanks_for_testing.button_panel": {} + }, + { + "padding_2@thanks_for_testing.padding_vertical": {} + } + ] + }, + + //--------------------------------------------------------------------------- + // Screen + //--------------------------------------------------------------------------- + + "thanks_for_testing_screen@common.base_screen": { + "button_mappings": [ + { + "from_button_id": "button.menu_cancel", + "to_button_id": "button.menu_exit", + "mapping_type": "global" + }, + { + "from_button_id": "button.menu_tab_left", + "to_button_id": "button.menu_tab_left", + "mapping_type": "global", + "scope": "view" + }, + { + "from_button_id": "button.menu_tab_right", + "to_button_id": "button.menu_tab_right", + "mapping_type": "global", + "scope": "view" + } + ], + "$screen_animations": [ + "@common.screen_exit_animation_push_fade", + "@common.screen_exit_animation_pop_fade", + "@common.screen_entrance_animation_push_fade", + "@common.screen_entrance_animation_pop_fade" + ], + "$background_animations": [ + "@common.screen_exit_animation_push_fade", + "@common.screen_exit_animation_pop_fade", + "@common.screen_entrance_animation_push_fade", + "@common.screen_entrance_animation_pop_fade" + ], + "force_render_below": true, + "$screen_content": "thanks_for_testing.tabbed_upsell_screen_panel" + }, + + "tabbed_upsell_screen_panel": { + "type": "panel", + "controls": [ + { + "tabbed_Upsell_screen_content@common_dialogs.main_panel_no_buttons": { + "size": "$tabbed_upsell_screen_size", + "$title_panel": "common_dialogs.standard_title_label", + "$text_name": "trial.thanks_for_testing.title", + "$child_control": "thanks_for_testing.tabbed_Upsell_content", + "$show_close_button": true, + "layer": 2 + } + }, + { + "background@common.screen_background": { + "alpha": 0.65, + "layer": 1 + } + } + ] + } + +} diff --git a/resource_pack/ui/toast_screen.json b/resource_pack/ui/toast_screen.json index f3716523f..3d6898d34 100644 --- a/resource_pack/ui/toast_screen.json +++ b/resource_pack/ui/toast_screen.json @@ -1,6 +1,57 @@ { "namespace": "toast_screen", + "popup_anim_wait": { + "anim_type": "wait", + "duration": "$display_time", + "next": "@toast_screen.popup_anim_end" + }, + + "popup_anim_start": { + "anim_type": "offset", + "easing": "spring", + "from": [ 0, 0 ], + "to": "$popup_distance", + "duration": "$transition_in_time", + "next": "@toast_screen.popup_anim_wait" + }, + + "popup_anim_end": { + "anim_type": "offset", + "easing": "in_sine", + "to": [ 0, 0 ], + "from": "$popup_distance", + "duration": "$transition_out_time", + "destroy_at_end": "popup", + "end_event": "toast_end" + }, + + "chat_popup_anim_wait": { + "anim_type": "wait", + "duration": "$display_time", + "next": "@toast_screen.chat_popup_anim_end" + }, + + "chat_popup_anim_start": { + "anim_type": "offset", + "easing": "spring", + "from": [ 0, 0 ], + "to": [ 0, 48 ], + "duration": "$transition_in_time", + "next": "@toast_screen.chat_popup_anim_wait" + }, + + "chat_popup_anim_end": { + "anim_type": "offset", + "easing": "in_sine", + "to": [ 0, 0 ], + "from": [ 0, 48 ], + "duration": "$transition_out_time", + "destroy_at_end": "popup", + "end_event": "toast_end" + }, + + "toast_image": { "type": "image", "size": [ 13, 13 ], @@ -111,36 +162,23 @@ }, "popup@common.input_panel": { - "consume_hover_events": true, - "prevent_touch_input": true, "$toast_anchor_from|default": "top_middle", "$toast_anchor_to|default": "bottom_middle", - "$toast_offset|default": "#toast_offset_binding", + "$toast_offset|default": [ 0, 0 ], "anchor_from": "$toast_anchor_from", "anchor_to": "$toast_anchor_to", "size": "$popup_size", "offset": "$toast_offset", - "$alpha_anims|default": [], - "bindings": [ - { - "binding_name": "$toast_offset", - "binding_name_override": "#offset", - "binding_condition": "always" - } - ], - "button_mappings": [ - { - "from_button_id": "button.menu_select", - "to_button_id": "button.swiping", - "mapping_type": "pressed", - "button_up_right_of_first_refusal": true - } + "$offset_anims|default": [ + "@toast_screen.popup_anim_start" ], + "$alpha_anims|default": [], "controls": [ { "background": { "type": "image", - "texture": "textures/ui/greyBorder" + "texture": "textures/ui/greyBorder", + "anims": "$alpha_anims" } }, { @@ -209,7 +247,8 @@ ] } } - ] + ], + "anims": "$offset_anims" }, @@ -404,7 +443,6 @@ }, "toast_screen@common.base_screen": { - "always_accepts_input": true, "send_telemetry": false, "screen_not_flushable": true, "render_game_behind": true, @@ -436,4 +474,4 @@ { "perf_turtle_panel@perf_turtle.perf_turtle_panel": {} } ] } -} +} \ No newline at end of file diff --git a/resource_pack/ui/trial_upsell_screen.json b/resource_pack/ui/trial_upsell_screen.json index 564bf5c4c..84b90962f 100644 --- a/resource_pack/ui/trial_upsell_screen.json +++ b/resource_pack/ui/trial_upsell_screen.json @@ -114,7 +114,8 @@ "buy_button@common_buttons.light_text_button": { "$pressed_button_name": "button.menu_buy_game", - "$button_text": "trial.upsell.unlock" + "$button_text": "$buy_button_text", + "$button_text_binding_type": "global" }, "root_panel": { @@ -129,6 +130,7 @@ "$text_name": "trial.upsell.title", "$button_panel": "trialUpsell.button_content_panel", "$continue_button_text": "#trial_upsell_continue_button", + "$buy_button_text": "#trial_upsell_buy_button", "$trial_description_test": "#trial_upsell_updatedDescription" }, @@ -137,6 +139,7 @@ "$text_name": "trial.upsell.expiredTitle", "$button_panel": "trialUpsell.button_content_panel", "$continue_button_text": "#trial_upsell_continue_button", + "$buy_button_text": "#trial_upsell_buy_button", "$trial_description_test": "#trial_upsell_expired_updatedDescription" }, diff --git a/resource_pack/ui/ui_common.json b/resource_pack/ui/ui_common.json index 5950f5f3f..10d5e1708 100644 --- a/resource_pack/ui/ui_common.json +++ b/resource_pack/ui/ui_common.json @@ -6895,6 +6895,24 @@ "text_cycler@common.common_cycler": { "type": "label_cycler", "text_labels": "$text_cycler_labels" + }, + + // create square panel based off and constrained to parent's dimensions + // - shrink x to max y, then shrink y to max x if needed + "squaring_panel": { + "type": "panel", + "max_size": [ "100%y", "100%" ], + "controls": [ + { + "squaring_panel": { + "type": "panel", + "max_size": [ "100%", "100%x" ], + "controls": [ + { "squaring_panel_content@$squaring_panel_content": {} } + ] + } + } + ] } } diff --git a/version.json b/version.json index 97ce2caaa..6d444da23 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,6 @@ { - "latest": { "version": "1.19.60.25", "date": "05-01-2023", "type": "preview" }, + "latest": { "version": "1.19.60.26", "date": "10-01-2023", "type": "preview" }, + "1.19.60.26": { "version": "1.19.60.26", "date": "10-01-2023", "type": "preview" }, "1.19.60.25": { "version": "1.19.60.25", "date": "05-01-2023", "type": "preview" }, "1.19.60.24": { "version": "1.19.60.24", "date": "14-12-2022", "type": "preview" }, "1.19.60.23": { "version": "1.19.60.23", "date": "07-12-2022", "type": "preview" },