Minecraft beta 1.21.70.24

Minecraft Snapshot 25w03a

Minecraft Snapshot 25w03a


La instantánea de esta semana incluye una gran actualización de las pruebas de juego. Ahora se puede acceder al sistema de pruebas de juego a través de paquetes de datos con el nuevo comando de prueba. Ahora puedes ejecutar pruebas basadas en bloques con el nuevo bloque de prueba o configurar pruebas aún más versátiles desde el código en mods.

Cambios

La hojarasca se puede utilizar en el compostador.

Las sillas de montar equipadas en cerdos o zancudos ahora mantendrán propiedades como el nombre personalizado cuando se suelten.

Cambios técnicos

La versión del paquete de datos ahora es 63

La versión del paquete de recursos ahora es 48

El nuevo punto de entrada net.minecraft.gametest.Main está presente en el archivo jar del servidor

Inicia automáticamente un servidor y ejecuta todas las pruebas de juego disponibles.


Prueba del juego principal

Este nuevo punto de entrada inicia automáticamente un servidor, ejecuta todas las pruebas de juego disponibles y luego existe.


Opciones:

--help - Muestra información de uso

--packs <ruta> - Establece una carpeta de paquetes de datos para incluir en el mundo

Se incluye cualquier archivo zip o carpeta con un archivo pack.mcmeta

--report <ruta> - Exporta los resultados en un informe XML similar a junit en la ruta indicada

--tests <selection> - Especifica qué pruebas ejecutar con una selección - una expresión comodín que coincide con los identificadores de instancia de prueba del espacio de nombres

Si se omite o se usa con un ID vacío, ejecuta todas las pruebas

--universe <path> - La ruta hacia donde se creará el mundo del servidor de prueba

Cualquier carpeta existente será reemplazada

Predeterminado: gametestserver

--verify <boolean> - Habilita la verificación de pruebas

Ejecuta las pruebas especificadas con test o testNamespace 100 veces por cada paso de rotación de 90 grados

Predeterminado: falso

Ejemplo de uso: java -DbundlerMainClass="net.minecraft.gametest.Main" -jar server.jar --packs mytestpacks


Versiones del paquete de datos 63

El sistema de pruebas de juego ahora es accesible a través de paquetes de datos y mods.

Las variantes de entidad ahora se configuran y consultan con componentes

Se agregó una ranura para equipo de silla de montar , impulsada por el componente equipable . Solo los monstruos que normalmente admiten sillas de montar admitirán la conducción y la representación de la silla de montar. Los elementos en la ranura para silla de montar pueden aplicar modificadores de atributos como con otros equipos.

Pruebas de juego

El sistema Game Tests es un nuevo sistema integrado para probar aspectos del juego. Cada prueba es un recurso que define algunos parámetros sobre cómo se ejecuta la prueba, combinado con un archivo de estructura guardado que contiene una configuración básica.


Generalmente, el marco de prueba espera ejecutar pruebas en un mundo superplano separado.


Instancias de prueba

Las instancias de prueba se definen en el registro test_instance . Son pequeños recursos que definen una prueba que se ejecutará.


Campos:

entorno : ID con espacio de nombres del entorno de prueba para ejecutar esta prueba como parte de

estructura : El ID del espacio de nombres de la estructura que se utilizará para la prueba

max_ticks : un entero positivo que representa la cantidad máxima de ticks que se permiten antes de que se considere que la prueba ha expirado

setup_ticks : entero no negativo opcional (predeterminado: 0 ) que representa una cantidad de ticks a esperar después de colocar la estructura antes de comenzar la prueba

requerido : booleano opcional (valor predeterminado verdadero ): si se considera que la prueba debe aprobarse para que se apruebe el conjunto de pruebas completo

rotación : Rotación opcional para aplicar a la estructura de prueba

Uno de ninguno (predeterminado), clockwise_90 , 180 y counterclockwise_90

manual_only : booleano opcional (predeterminado false ), establecido en true para pruebas que no están incluidas como parte de ejecuciones de pruebas automatizadas

sky_access : si la prueba necesita acceso libre al cielo

De manera predeterminada ( falso ), las pruebas están encerradas en bloques de barrera: si se establece en verdadero , la parte superior queda abierta.

max_attempts : Número de intentos para ejecutar la prueba (predeterminado 1 )

required_successes : Número de intentos que deben tener éxito para que la prueba se considere exitosa (predeterminado 1 )

tipo : El tipo de prueba, una basada en bloque y una función

Pruebas de función

Las pruebas de función se basan en funciones integradas para ejecutar una prueba e indicar el éxito o el fracaso. Tienen un campo adicional:


función : El ID del espacio de nombres de la función de prueba que se ejecutará

Consulte la sección del registro de cambios "Uso del marco de pruebas de juego desde el código" para obtener más información.


Pruebas basadas en bloques

Las pruebas basadas en bloques utilizan bloques de prueba en la estructura de prueba para ejecutar la prueba e indicar el éxito o el fracaso.


Entornos de prueba

Los entornos de prueba son una forma de agrupar pruebas y darles las condiciones previas adecuadas para su ejecución. Un entorno de prueba es un activo en el registro test_environment . Cada definición de entorno de prueba tiene un campo de tipo que determina su configuración:


Las definiciones all_of aplican la configuración de varias subdefiniciones en el campo de definiciones

Las definiciones de funciones utilizan archivos mcfunction como configuración y desmontaje.

configuración : ID de espacio de nombres opcional de la mcfunction que se utilizará para la configuración, si corresponde

teardown : ID de espacio de nombres opcional de la mcfunction que se usará para el desmontaje, si corresponde

game_rules : las definiciones establecen cualquier número de reglas del juego

bool_rules : una lista de reglas de juego booleanas para establecer y el valor a establecer

int_rules : una lista de reglas de juego de números enteros para establecer y el valor a establecer

Cada regla es un objeto con dos campos:

regla : El nombre exacto de la regla a establecer

valor : El valor a establecer

Las reglas del juego se restablecen a sus valores predeterminados una vez completado el entorno de prueba.

Las definiciones meteorológicas establecen el estado del clima.

Tiempo : El tiempo que se avecina: despejado , lluvioso y con truenos.

Las definiciones de time_of_day establecen una hora determinada del día

hora : La hora del día que se establecerá en número de ticks, como un entero no negativo

El juego proporciona un único entorno de prueba vacío de forma predeterminada: minecraft:default .


Bloques de prueba

El bloque de prueba es un bloque que se utiliza para implementar pruebas basadas en bloques. Tiene cuatro modos:

Inicio : activa un pulso de piedra roja cuando comienza la prueba.

log : registra un mensaje en el archivo de registro cuando se activa con redstone

fail : falla la prueba cuando está alimentado por redstone

aceptar : completa la prueba cuando está encendido con redstone

Se requiere que las pruebas basadas en bloques tengan al menos un bloque de inicio y un bloque de aceptación en la estructura.


ElpruebaDominio

El comando de prueba es un nuevo comando que se utiliza para crear y ejecutar pruebas.


Sintaxis:

test clearall [<radius>]

test clearthat

test clearthese

test create <test> [<width>] [<height> <depth>]

test locate <selector>

test resetclosest

test reseetthese

test resetthat

test pos [<variable>]

test run <selector> [<numberOfTimes>] [<untilFailed>] [<rotationSteps>] [<testsPerRow>]

test runclosest [<numberOfTimes>] [<untilFailed>]

test runfailed [<numberOfTimes>] [<untilFailed>] [<rotationSteps>] [<testsPerRow>]

test runmultiple <selector> [<amount>]

test runthat [<numberOfTimes>] [<untilFailed>]

test runthese [<numberOfTimes>] [<untilFailed>]

test stop

test verify <tests>


Parámetros:

radio : el radio para borrar las pruebas dentro

prueba : El ID del espacio de nombres de una prueba

selector : Un selector habilitado con comodines para identificaciones de prueba

Admite * y ? para hacer coincidir identificaciones con espacios de nombres

Si no se proporciona el espacio de nombres, el valor predeterminado es Minecraft

Ejemplos:

*:* - coincide con todos los ID

* - coincide con todo en el espacio de nombres de Minecraft

custom:folder/*_test_? - coincide con los ID en la carpeta folder del espacio de nombres personalizado , con un prefijo seguido de _test_ seguido de un único carácter válido

ancho : el ancho de la estructura de prueba; si se omite, se utiliza 5

altura : la altura de la estructura de prueba; si se omite, se utiliza el ancho

profundidad : la profundidad de la estructura de prueba; si se omite, se utiliza el ancho

variable : el nombre de la variable que se incluirá en el fragmento de código copiado

numberOfTimes : la cantidad de veces que se repetirá cada prueba; si se omite, se utiliza 1

UntilFailed : booleano (predeterminado: falso ) que indica que la prueba debe detenerse tan pronto como falle una iteración

rotationSteps : Número de pasos de 90 grados adicionales que se aplicarán a la prueba; si se omite, se utiliza 0

testsPerRow : Número de pruebas a colocar por fila en un diseño de cuadrícula; si se omite, se utiliza 8

prueba clara*

Estos subcomandos borran las estructuras y los bloques asociados con las pruebas seleccionadas.


prueba crear

Este subcomando crea una configuración de prueba en la ubicación actual para la prueba dada, preparándola para una estructura del tamaño dado. Esto proporciona un punto de partida para crear la estructura para la prueba.


prueba localizar

Intenta localizar la prueba indicada. Tenga en cuenta que solo se buscan fragmentos cargados.


prueba de reinicio*

Estos subcomandos restablecen las estructuras para las pruebas seleccionadas, eliminando cualquier barrera circundante y colocando la estructura desde cero.


prueba pos

Muestra las coordenadas locales del bloque al que se apunta en la prueba. Si se especifica el nombre de la variable opcional, este nombre de variable se utiliza en un fragmento de código que se obtiene al hacer clic en las coordenadas en el mensaje de salida.


prueba de funcionamiento*

Ejecuta una o más pruebas. Si se ejecutan varias pruebas a la vez, se colocan en una cuadrícula y se ejecutan en paralelo, aunque solo hasta cierto límite. Más allá de ese límite, las pruebas se ejecutan en rondas, donde cada ronda se completa antes de que comiencen las pruebas de la ronda siguiente.


Para cada prueba, se carga la estructura indicada y se ejecuta la prueba asociada. Cada ubicación de prueba tendrá una señal luminosa que mostrará el estado de la prueba.

Baliza gris = en progreso

Rojo = reprobado (prueba obligatoria)

Naranja = reprobado (prueba opcional)

Verde = éxito

Si una prueba falla, el error se muestra en un libro de atril y en una superposición.

Tenga en cuenta que las pruebas de juego están diseñadas para ejecutarse en mundos superplanos estándar. El área alrededor de cada prueba se reemplaza con piedra cuando se ejecuta, y la prueba en ejecución está encerrada en bloques de barrera.


parada de prueba

Esto detiene todas las pruebas en ejecución. Ten en cuenta que los eventos de juego activados por las pruebas pueden permanecer activos.


prueba verificar*

Verifica una o más pruebas ejecutando múltiples instancias de la misma prueba.


Bloques de instancias de prueba

Para ejecutar una prueba en un mundo, se utiliza un bloque de instancia de prueba. Este tipo de bloque representa la prueba tal como se encuentra en el mundo y se utiliza para interactuar con esa prueba, guardar la estructura, restablecer o ejecutar la prueba.

Al usar el comando de prueba para ejecutar o crear una prueba, también se colocará un bloque de instancia de prueba para controlar esa prueba.


Uso del marco de prueba de juegos desde el código

El Game Test Framework también se puede utilizar desde el código de una manera más versátil que las pruebas basadas en bloques. Para que esto funcione, debes modificar el juego para agregar tus funciones de prueba al registro test_function ( Registries.TEST_FUNCTION ).


Conéctese a algún método de inicio (arranque previo al registro) para agregar su cargador: llame a TestFunctionLoader.registerLoader() con una implementación de TestFunctionLoader . Su implementación puede usar el consumidor de registro provisto para registrar funciones de prueba con sus identificadores de espacio de nombres. Luego, se puede hacer referencia a este identificador de espacio de nombres en una instancia de prueba de tipo de función .

Una función de prueba es un Consumer<GameTestHelper> , que utiliza esa instancia de GameTestHelper para manipular el mundo y hacer afirmaciones sobre el estado del mundo resultante.

El asistente se puede utilizar para invocar monstruos, colocar bloques, consultar bloques y entidades y confirmar el estado de la prueba. La mayoría de los métodos de GameTestHelper toman coordenadas locales de la prueba, que también puedes encontrar usando /test pos .

Código de ejemplo que podría acompañar a una estructura de prueba con una tolva bloqueada que contiene un bacalao, apuntando hacia un horno:

public void furnace_smelts_item(final GameTestHelper helper) {

    helper.setBlock(0, 4, 0, Blocks.AIR);

    helper.succeedWhen(() -> helper.assertContainerContainsSingle(new BlockPos(0, 0, 0), Items.COOKED_COD));

}

Las configuraciones más complicadas a menudo usarán helper.startSequence() para modelar secuencias de eventos que deben suceder.

A diferencia de las pruebas basadas en bloques, las pruebas de función que fallan a menudo producirán mensajes de error más útiles, incluida la ubicación de lo que falló y lo que se esperaba en esa ubicación.


Comandos

El espacio para objetos horse.saddle ha cambiado de nombre a Saddle y ahora admite cualquier entidad que pueda equipar una Saddle.

Formato de datos del componente de texto

Eventos flotantes

Para la acción show_text :

El campo de texto ha cambiado de nombre a valor

Etiquetas

Etiquetas de entidad

Se agregó #can_equip_saddle : entidades que pueden equiparse con una silla de montar.

Nota: esto no significa que el sillín funcionará, solo que se puede equipar en la ranura del sillín.

Datos de la entidad

Los campos ArmorItems , HandItems y body_armor_item se han fusionado en un campo de equipo .

Formato: mapa entre el tipo de ranura de equipo y la pila de elementos

Ranuras de equipo válidas: cabeza , pecho , piernas , pies , mano principal , mano secundaria , cuerpo , silla de montar

Si no se especifica o se elimina, la entidad no tendrá equipo.

p. ej. equipo:{pecho:{id:'minecraft:diamond_chestplate'}}

Esto afecta a todos los mobs y soportes de armadura, pero los jugadores no se ven afectados.

El formato de datos de las sillas de montar se ha unificado entre mobs como Caballos y Cerdos, convirtiéndose en un nuevo tipo de espacio de equipo (y se almacena en el campo equipment.saddle )

Este es un cambio de nombre puro del SaddleItem anterior en mobs similares a caballos.

Esto también reemplaza la bandera booleana Saddle de Pigs and Striders

La caída de la silla al morir ahora se ve afectada por el campo drop_chances , al igual que con otras ranuras de equipo.

El campo FallDistance se ha cambiado de flotante a doble y ahora se llama fall_distance

Componentes del artículo

armacomponente

El campo damage_per_attack pasó a llamarse item_damage_per_attack

EquipableComponente

Ahora se puede aplicar a la ranura de silla de montar

Ahora cualquier monstruo puede tener equipo agregado en la ranura del cuerpo siempre que el componente lo permita ( allowed_entities )

Se agregó un nuevo campo opcional: equip_on_interaction (booleano)

Si es verdadero , los jugadores pueden equipar este objeto en un monstruo objetivo haciendo clic derecho en él (siempre que este objeto pueda equiparse en el objetivo)

El objeto no se equipará si el objetivo ya tiene un objeto en la ranura correspondiente.

Si no se especifica, el valor predeterminado es falso

Componentes de la variante de entidad

Las entidades ahora tienen un conjunto de componentes para configurar variantes y otros aspectos de la apariencia.

Si esos componentes están presentes en el elemento generador (como huevos generadores, cubos de monstruos, minecraft:painting , minecraft:item_frame ), se aplicarán a la nueva entidad.

Actualmente, los componentes no se restauran cuando se selecciona un huevo de generación de una entidad existente

Nuevos componentes:

aldeano/variante - uno de desierto , jungla , llanura , sabana , nieve , pantano , taiga

wolf/variant - id con espacio de nombres del registro wolf_variant

Lobo/collar : uno de los 16 colores de tinte

zorro/variante - uno de color rojo , nieve

Salmón/tamaño : uno de pequeño , mediano , grande

loro/variante - uno de rojo_azul , azul , verde , amarillo_azul , gris

tropical_fish/pattern - uno de los siguientes: kob , sunstreak , snooper , dasher , brinely , spotty , flopper , stripey , glitter , blockfish , betty , clayfish

tropical_fish/base_color : uno de los 16 colores de tinte

tropical_fish/pattern_color : uno de los 16 colores de tinte

hongo/variante : uno de color rojo y marrón

conejo/variante - uno de los siguientes: marrón , blanco , negro , blanco con manchas , dorado , sal , malvado

pig/variant - id con espacio de nombres del registro pig_variant

frog/variant - id con espacio de nombres del registro frog_variant

caballo/variante - uno de blanco , cremoso , castaño , marrón , negro , gris , marrón oscuro

pintura/variante : id con espacio de nombres del registro painting_variant

Llama/variante : una de color crema , blanca , marrón , gris.

Axolotl/variante - uno de Lucy , salvaje , dorado , cian , azul

cat/variant - id con espacio de nombres del registro cat_variant

Gato/collar : uno de los 16 colores de tinte

oveja/color - uno de los 16 colores de tinte

shulker/color - uno de los 16 colores de tinte

Los contenedores y pinturas de Mob disponibles en el menú creativo ahora usarán nuevas variantes en lugar del componente minecraft:entity_data

Las descripciones emergentes personalizadas para los elementos Cubo de peces tropicales y Pintura ahora se basan en nuevos componentes en lugar de minecraft:bucket_entity_data y minecraft:entity_data

Predicados

Predicados de entidad

Se ha añadido un nuevo campo opcional al predicado de entidad: componentes

Cuando está presente, el predicado coincidirá con el contenido de los componentes de la entidad (de manera similar a los componentes de campo en el predicado del elemento que funciona en pilas de elementos)

Formato: mapa de la clave del tipo de componente con los valores de los componentes coincidentes

Los siguientes subpredicados de entidad se han eliminado y reemplazado con una combinación de componentes de predicado y componentes de entidad variante:

minecraft:axolotl

minecraft:zorro

Minecraft:seta

Minecraft: conejo

minecraft:caballo

Minecraft: llama

Minecraft:aldeano

minecraft:loro

minecraft:salmón

minecraft:peces tropicales

minecraft:pintura

Minecraft: gato

minecraft:rana

minecraft:lobo

minecraft:cerdo

Se ha eliminado el color del campo del subpredicado minecraft:sheep

Paquete de recursos versión 48

Se agregó un nuevo tipo de capa de activos de equipo para cerdos y zancudos, y se movieron las texturas de la silla de montar.

Se modificó el tamaño de la textura pig_saddle

Activos de equipo

Los activos de equipo ahora pueden definir nuevos tipos de capas:

pig_saddle - capa de equipamiento para sillas de montar Pig

strider_saddle - capa de equipamiento para sillines Strider

camel_saddle - capa de equipamiento para sillas de montar Camel

horse_saddle - capa de equipamiento para sillas de montar para caballos

donkey_saddle - capa de equipamiento para sillas de montar Donkey

mule_saddle - capa de equipamiento para sillas de montar de mula

skeleton_horse_saddle : capa de equipamiento para sillas de montar Skeleton Horse

zombie_horse_saddle - capa de equipamiento para las sillas de montar de Zombie Horse

Se han movido las siguientes texturas para admitir el uso de recursos de equipo para sillines:

entidad/cerdo/silla_de_cerdo.png -> entidad/equipo/silla_de_cerdo/silla.png

entidad/strider/strider_saddle.png -> entidad/equipo/strider_saddle/saddle.png

Las siguientes texturas se han separado de su textura de entidad base para admitir el uso de recursos de equipo para sillines:

entidad/camello/camello.png -> entidad/equipo/silla_de_camello/silla_de_montar.png

entidad/caballo/caballo_<variante>.png -> entidad/equipo/silla_de_caballo/silla_de_montar.png

entidad/caballo/burro.png -> entidad/equipo/burro_silla/silla.png

entidad/caballo/mula.png -> entidad/equipo/mula_silla/silla.png

entidad/caballo/esqueleto_de_caballo.png -> entidad/equipo/esqueleto_de_caballo_silla/silla.png

entidad/caballo/caballo_zombie.png -> entidad/equipo/silla_de_caballo_zombie/silla_de_montar.png

Modelos de artículos

minecraft:componentSeleccionar propiedad

Se ha añadido una nueva fuente de datos para seleccionar el modelo de artículo: componente

Devuelve el valor del componente en el artículo, si lo hay

Campos:

componente - ID del tipo de componente con espacio de nombres

Valores posibles: depende del tipo de componente

Ejemplo: si el componente se establece en minecraft:wolf/collar , la lista de casos aceptará colores de tinte, como lima

Errores corregidos en 25w03a

MC-13738 - Silla de montar invisible al usar poción de invisibilidad en un caballo, burro o mula

MC-80243 - Las sillas de montar no aplican modificadores de atributos cuando las usan entidades

MC-189525 - Las entidades blindadas de mundos anteriores a la versión 1.9 se actualizan a armaduras de doble empuñadura

MC-190000 - Las sillas de montar equipadas en los caballos no se pueden reemplazar sin quitarlas primero

MC-256469 - Los camellos invisibles no muestran sus monturas

MC-266912 - Los sonidos de equipamiento de silla de montar no se reproducen cuando se equipan sillas de montar en caballos, burros, mulas o camellos poco después de que se invoca dicha entidad.

MC-269637 - Los caballos pueden usar varias sillas de montar, pero no varias armaduras.

MC-270192 - Las sillas de montar de algunas entidades permanecen visibles durante su animación de muerte.

MC-270197 - La silla de montar de los cerdos y los zancudos permanece visible durante su animación de muerte.

MC-272100 - Píxeles de paleta sin usar en texturas de caballos (horse_[brown/chestnut/creamy/white].png)

MC-272790 - Las cajas Shulker y otros bloques en el portal de salida final cuando cambia de estado no se eliminan como elementos

MC-274258 - Todas las texturas de caballos contienen una textura de bolsa de pecho sin usar

MC-278673 - La rotación x de /teleport está limitada a ±90 grados en relación con el ángulo original de la entidad

MC-279208 - Los jugadores ya no pueden comenzar a correr al presionar primero una tecla de movimiento lateral

MC-279211 - Las cajas Shulker conservan y dejan caer su contenido al romperse mediante ciertos métodos, lo que provoca la duplicación de elementos.

MC-279213 - Los bloques de hongos no pueden reemplazar la hojarasca

MC-279221 - La hojarasca reemplaza las hojas en el mundo gen

MC-279224 - El uso de harina de huesos en praderas no genera flores silvestres

MC-279226 - Los orbes de experiencia de cualquier valor se representan como el valor más pequeño.

MC-279233 - Las cajas Shulker dejan caer su contenido cuando se rompen

MC-279234 - El sonido minecraft:entity.generic.execute_fire no se reproduce cuando se extingue el fuego de una entidad

MC-279238 - Morir a causa de un carro minero con TNT encendido por una bola de fuego no cuenta como muerte por incendio.

MC-279239 - El movimiento del TNT preparado es entrecortado y tembloroso.

MC-279245 - La mayoría de los mobs hostiles no aparecen ni siquiera en las condiciones adecuadas

MC-279248 - La colisión de lava es demasiado alta

MC-279281 - Se produce daño por caída al saltar desde 2 bloques hacia arriba.

MC-279282 - Los loros con UUID de propietario que no es jugador provocan un bloqueo al aparecer

MC-279285 - Los orbes de experiencia aceleran abruptamente hacia el suelo muy rápido

MC-279301 - El jugador muere al caer desde 22.00001 bloques en lugar de 23 bloques

MC-279313 - El movimiento de las entidades de los elementos es entrecortado y tembloroso en determinadas circunstancias

MC-279314 - Los proyectiles se mueven hacia arriba y hacia abajo ligeramente mientras vuelan por el aire.

MC-279316 - El movimiento de los flotadores de pesca es entrecortado y nervioso.

MC-279339 - El orden de actualización de los rieles inclinados es incorrecto

MC-279340 - Los osos polares bebés son demasiado pequeños

MC-279345 - Los pétalos rosados ​​y las flores silvestres ya no se pueden cultivar con harina de huesos.

MC-279357 - El jugador puede caerse de los bordes mientras se escabulle

MC-279434 - Estar de pie sobre nieve en polvo y fuego al mismo tiempo genera un sonido de extinción de incendios.

MC-279459 - /setblock y otros rellenos no actualizan correctamente las entidades de bloque

Comentarios