Vamos a aprender como crear bloques nuevos en Minecraft con Fabric.
Registrar un bloque
Para crear un bloque en Minecraft, vamos a empezar por crear una clase que la vamos a llamar ModBlocks
, para tener el proyecto más organizado.
Dentro de esta clase haremos lo que ya llevamos haciendo dos episodios y es crear un método privado estático que nos ayudará con el registro de bloques y un método público para registrar los bloques.
Tranquilo que no es tan fácil, piensa que hemos de registrar el bloque y el ítem del bloque, con lo cual hemos de modificar nuestro método registerBlock
para aceptar registrar un ítem.
El
Pair
es una clase de utilidad que trae Minecraft, que nos permite devolver dos instancias de dos objetos diferentes o iguales con una simple variable.
Ahora ya sí que sí, podemos declarar nuestro bloque. En este caso, como estamos basando en una temática radioactiva y de uranio, voy a crear el bloque de uranio.
Si te encuentras en la 1.20.4 y hacia abajo, habrás de usar la clase
FabricBlockSettings
en vez deBlock.Settings
.
En las opciones del bloque podemos pasarle diferentes cosas como la dureza. En este caso, como es un bloque de metal o duro, voy a copiar las variables del bloque de hierro y así no he de configurar tanta cosa.
Si ahora registramos los bloques e iniciamos el juego, veremos que el bloque existe pero se ve negro y morado.
¿Cómo solucionamos esto?
Añadir texturas a un bloque
Para que nuestro bloque tenga texturas y tenemos cuatro archivos:
- La declaración del blockstate
- El modelo del bloque (blockmodel)
- El modelo del item del bloque (itemmodel)
- La textura del bloque
Vamos a ir paso por paso viendo dónde colocar cada archivo y qué poner dentro.
Block State
El block state es básicamente el estado del bloque. Nuestro bloque puede tener diferentes estados, lo que significa que puede mostrarse de diferentes maneras, como diferentes texturas, etc. En este caso, nuestro bloque es un simple bloque sin estados, con lo cual utilizaremos un archivo básico, el cual dirá que no tiene estados.
Este archivo lo debemos de colocar en la carpeta assets de nuestro mod, dentro de la carpeta block states y poniéndole el path del bloque .json. En este caso es uranium_block.json
.
Modelo del bloque
Un bloque puede tener un modelo complejo, el cual sea 3D y se puede ver diferente desde diferentes partes. Nosotros vamos a complicar. Vamos a usar una única textura para las 6 caras del bloque. Con lo cual declararemos un modelo de bloque simple.
Este lo pondremos dentro de la carpeta models
y dentro de la carpeta block
. Y el archivo se tendrá que llamar el ID de nuestro bloque ".json". En este caso sería uranium_block.json
.
Modelo del ítem
Para declarar el modelo del ítem ya nos lo conocemos. Como queremos que el ítem se parezca al bloque, usaremos también un modelo base y ya está. Esto lo tenemos que meter dentro de la carpeta Models, a la carpeta Items y ahí con el id del bloque ".json".
Textura
La textura la tenemos que añadir dentro de la carpeta Textures, dentro de una carpeta Block y ahí dentro con el nombre del ID del bloque.
Traducción
Tendremos que añadir el nombre del bloque dentro de nuestro archivo lang.
Comprobar bloque
Si hemos seguido todos los pasos correctamente y entramos dentro del juego, veremos como ahora el bloque si que tiene textura, el ítem se ve correctamente en la mano y bueno, que está todo correcto.