En este segundo capítulo os voy a enseñar a hacer una clase para un bloque genérico, es decir, uno que no haga nada, como un bloque de tierra.
Esta clase es muy importante ya que es la base de prácticamente todas las demás clases de bloques y nos ahorra mucho trabajo.
Antes de empezar:Habrá que crear un nuevo paquete para agrupar las clases genéricas de bloques, algo como nombreMod.generic.block.
Clase GenericBlockDentro de este nuevo paquete creamos la clase GenericBlock que extienda la clase net.minecraft.block.Block.
Una vez creada la clase, añadimos un atributo para guardar el nombre del bloque:
Ya que vamos a heredar la clase en un futuro nos interesa ponerle protected en vez de private.
ConstructorAhora viene lo importante, el constructor:

- El atributo mat que se lo pasamos al constructor de Block con super(mat) es el material del bloque. Minecraft tiene unos materiales básicos como madera, metal, cristal, etc. que determinan si el bloque puede arder, por ejemplo.
- Lo siguiente es el nombre que queramos darle al bloque. Como véis lo establecemos como unlocalizedName, anteponiéndole el id del mod, eso es para que el Minecraft lo pueda identificar de forma que no se confunda con otros mods aunque añadan todos, por ejemplo un bloque de aluminio, ya que en mi caso se llamará celtech_knot_aluminio.
- hard es la dureza del bloque, determinará lo que tardaremos en romperlo.
- res es la resistencia a las explosiones.
- light es el nivel de luz que emite el bloque de 0 a 15, siendo 0 que no emite y 15 como el sol o la glowstone. Minecraft lo quiere de 0 a 1 pero para facilitar las cosas he puesto en el setLightLevel light / 15 de tal forma que nosotros lo ponemos de 0 a 15 y luego se pasa de 0 a 1.
- sound es el sonido que hace el bloque al pisarlo. El Minecraft tiene una lista de sonidos que se encuentran en la clase Block como el Block.soundTypeStone, Block.soundTypeWood, etc
- Por último, tab es la pestaña del modo creativo en la que aparecerá el bloque. Todas las del Minecraft se encuentran en la clase CreativeTabs. En una futura parte de la guía os explicaré como crear pestañas propias.
Una vez tenemos el constructor básico podemos crear otros que nos faciliten las cosas, por ejemplo, seguramente la mayoría de los bloques que creemos no emitirán luz, por lo que podemos crear el siguiente constructor que no tiene ese parámetro:
Con el this pasamos los valores al constructor previamente creado para evitarnos tener que reescribir todo.
Al igual que este podemos crear otros múltiples constructores que consideremos oportunos siempre que detectemos que ponemos el mismo valor en un parámetro muchas veces.
RegistroPara que el bloque se añada al Minecraft hay que agregarlo a lo denominado GameRegister y para facilitarnos esta tarea, ya que habría que ponerlo a mano para cada uno, creamos el método register:
Lo que eso hace es registrar el bloque (this) y cuyo nombre es el que tenemos guardado (this.name).
En la próxima parte de la guía veremos, entre otras cosas, la utilidad de esto.
OtrosUna vez tenemos lo demás, añadimos un get para el nombre para poder acceder al él en caso de necesitarlo:
Con esto ya tenemos la clase terminada.
Linkback: https://minecraftmin.net/index.php?topic=14513.0