En esta guía vas a hacer una manzana de rubí: un tentempié que llena buena parte de la barra de hambre, se puede comer aunque estés lleno y da un pequeño impulso de velocidad. Aprenderás cómo funcionan el hambre y la saturación, y cuánto se tarda en comer.
Esta guía parte de Tu primer objeto personalizado. Si todavía no has hecho ningún objeto, empieza por ahí: los pasos del icono, la textura y el nombre son exactamente los mismos.
La forma rápida: GodCraft
GodCraft tiene un objeto Comida con controles deslizantes para todo lo que verás a continuación, y escribe el script de efectos por ti.
- Abre el Taller y añade una Comida a tu complemento.
- Dibuja el icono en el editor de píxeles.
- Ajusta los puntos de hambre, la saturación y los efectos que quieras.
- Toca Exportar y cómetela en el juego.
¿Quieres ver los archivos que crea? Aquí los tienes.
A mano
Usamos el espacio de nombres myname. Cámbialo por el tuyo en todas partes.
Paso 1: el objeto de comida
Crea este archivo en tu paquete de comportamiento:
{
"format_version": "1.26.30",
"minecraft:item": {
"description": {
"identifier": "myname:ruby_apple",
"menu_category": {
"category": "items"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "myname_ruby_apple"
}
},
"minecraft:display_name": {
"value": "item.myname:ruby_apple.name"
},
"minecraft:max_stack_size": 16,
"minecraft:food": {
"nutrition": 6,
"saturation_modifier": 0.8,
"can_always_eat": true
},
"minecraft:use_modifiers": {
"use_duration": 1.6,
"movement_modifier": 0.35
},
"minecraft:use_animation": "eat",
"minecraft:tags": {
"tags": ["minecraft:is_food"]
}
}
}
}Lo nuevo son los últimos cuatro componentes. Vamos a ver cada uno.
El componente de comida
minecraft:food hace que el objeto se pueda comer.
nutritiones cuántos puntos de hambre recupera. Cada muslo de la barra de hambre son 2 puntos, así que6llena tres muslos. Una manzana normal da 4 y un filete da 8.saturation_modifiercontrola la "saciedad" oculta que evita que baje tu barra de hambre. El juego añadenutrition x saturation_modifier x 2de saturación. Los valores bajos (entre 0.1 y 0.3, más o menos) son como un tentempié, 0.6 es lo normal y 0.8 o más es una comida que llena mucho.can_always_eatpermite comerlo aunque la barra de hambre esté llena. Omítelo (por defecto esfalse) para la comida normal.
Hay un campo más que te puede gustar: using_converts_to. Le da al jugador otro objeto después de comer, como el cuenco que queda tras la sopa:
"using_converts_to": "minecraft:bowl"Cuánto se tarda en comer
La comida necesita minecraft:use_modifiers; si no, el jugador no puede mantener pulsado el botón de usar para comérsela.
use_durationes el tiempo que se tarda en comer, en segundos. La comida del juego base tarda 1.6 segundos. Las algas secas tardan más o menos la mitad.movement_modifierralentiza al jugador mientras come.0.35es el valor del juego base, y1significa que no se ralentiza nada.
Animación y etiquetas
minecraft:use_animationcon el valor"eat"muestra la animación de masticar y las partículas de migas. Usa"drink"para algo como una poción o un batido.minecraft:tagsconminecraft:is_foodlo marca como comida, igual que se marcan las comidas del juego base.
Paso 2: textura y nombre
Funcionan igual que en la primera guía. Añade la textura a tu item_texture.json (dentro de texture_data, junto a tus otras entradas):
"myname_ruby_apple": {
"textures": "textures/items/ruby_apple"
}Guarda un PNG de 16x16 en RP/textures/items/ruby_apple.png y luego añade el nombre:
item.myname:ruby_apple.name=Ruby AppleAhora usa /give @s myname:ruby_apple y dale un mordisco. Mira /give si necesitas un repaso.
Añadir efectos al comer
Los complementos antiguos daban efectos a la comida con una lista effects dentro de minecraft:food. Ese campo ya no forma parte del formato actual de los objetos. Si lo añades a un archivo con un format_version moderno, el juego lo ignora y muestra un aviso en el registro de contenido.
Hoy en día se hace con un componente personalizado: tu objeto nombra un componente que te inventas, y un pequeño script decide lo que hace. Suena difícil, pero son unas 15 líneas.
Paso 1: añade el componente al objeto
Añade esto a los components de ruby_apple.json. El nombre lo eliges tú, y el objeto contiene tus propios ajustes:
"myname:eat_effect": {
"effect": "speed",
"seconds": 10,
"amplifier": 1
}Paso 2: escribe el script
Para esto, tu paquete de comportamiento necesita un módulo de script en su manifiesto. En Configurar el proyecto se explica cómo añadirlo. Después crea el script:
import { system } from "@minecraft/server";
system.beforeEvents.startup.subscribe(({ itemComponentRegistry }) => {
itemComponentRegistry.registerCustomComponent("myname:eat_effect", {
onConsume(event, { params }) {
event.source.addEffect(params.effect, params.seconds * 20, {
amplifier: params.amplifier,
});
},
});
});Cómo funciona:
- Cuando arranca el mundo, el script le dice al juego qué significa
myname:eat_effect. onConsumese ejecuta cada vez que un jugador termina de comerse un objeto que tiene el componente.paramses el objeto que escribiste en el archivo del objeto, así que puedes reutilizar este mismo script para muchas comidas con efectos distintos.- En los scripts, la duración de los efectos va en ticks, y un segundo tiene 20 ticks. Por eso
secondsse multiplica por 20. - Un
amplifierde 0 es el nivel I, 1 es el nivel II, y así sucesivamente.
Nombres de los efectos
Usa los mismos ID de efecto que el comando /effect, como speed, regeneration, night_vision, absorption o fire_resistance.
GodCraft hace toda esta parte por ti: elige los efectos en el editor de Comida y, al exportar, añade el componente y el script.
Consejos para una comida equilibrada
- Imita al juego base. Un tentempié tiene entre 2 y 4 de nutrición, y una comida completa entre 6 y 8. Los números muy altos hacen que el resto de comidas no sirvan para nada.
- Los efectos deberían costar algo. Un efecto potente es divertido en una comida rara, no en una que puedas fabricar con tierra. Átalo a una receta difícil (mira Recetas de fabricación y de horno).
- Reserva
can_always_eatpara algo especial. El juego base solo lo usa en cosas como las manzanas doradas, para que se sienta como una recompensa. - El tamaño de la pila importa. Las pilas pequeñas (16) hacen que sea más difícil acumular comida potente.
Cuando algo falla
| Lo que ves | Causa más probable |
|---|---|
| No te lo puedes comer de ninguna forma | Falta minecraft:use_modifiers o use_duration vale 0 |
| Te lo puedes comer, pero solo con hambre | Es lo normal. Añade can_always_eat para cambiarlo |
| No hay efecto después de comer | El módulo de script no está en el manifiesto, o el nombre del componente no coincide entre el objeto y el script |
Un aviso sobre effects | Has usado el campo antiguo: cámbialo por el componente personalizado de arriba |
Tienes más ayuda en Solución de problemas. Lo siguiente: Armas y herramientas.