"> Foro - [DMForge] XI.- Bloque translúcido (GenericBlockTranslucent.java) en Desarrollo de Mods - Page 1 of 1
Abril 19, 2024, 06:40:30 am
Visitante


Autor Tema:  [DMForge] XI.- Bloque translúcido (GenericBlockTranslucent.java)  (Leído 2185 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Mayo 07, 2017, 06:14:22 pm

Alfomega




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Ingeniero informático
  • Actividad

  • 0%
  • Logros

Más información

En este capítulo os enseñaré a crear un bloque translúcido, es decir, que no es entero (por ejemplo un escalón, la antorcha...) o alguna de sus texturas son semitransparentes.
Antes de empezar:
Habrá que tener la clase GenericBlock.java del capítulo II de este tutorial creada.

Clase GenericBlockTranslucent
Dentro del paquete donde tenemos las clases de los bloques genéricos creamos la clase GenericBlockTranslucent que extienda la clase GenericBlock del segundo tutorial.
En mi caso, está en el paquete celtech.generic.block, de ahí esa ruta.
Una vez creada la clase, añadimos un atributo para guardar el tipo de transparencia:
Ya que en un futuro es posible que heredemos esta clase, nos interesa ponerle protected en vez de private.
El tipo puede tomar cuatro valores especificados en el enumerado EnumWorldBlockLayer
El primero, el cual no nos interesa, es el de un bloque normal y corriente, los dos siguientes son para aquellos bloques que no están completos, como un slab y el último para aquellos con transparencias como un bloque de cristal tintado.
En todas las pruebas que he realizado, CUTOUT_MIPPED y CUTOUT han dado el mismo resultado, por lo que supongo que la diferencia será interna, así que siempre uso el CUTOUT_MIPPED.

Constructor
Lo importante, el constructor:
Puesto que heredamos de la clase GenericBlock, sus atributos no los usamos aquí, los mandamos a su constructor con el super. Lo único que hacemos aquí es guardar el tipo.
Como siempre, una vez tenemos el constructor básico podemos crear otros obviando atributos.

Modificar renderizador
Para que el bloque se renderice de la forma que queremos, es decir, que se vea transparente o cortado, tenemos que añadir tres métodos bastante simples:
El primero es el que dice de que tipo es, el segundo que el bloque no es opaco y el último que no es un bloque completo.
Si no ponemos alguno de estos, los bloques transparentes se verán opacos y los cortados se renderizarán mal y se verá a través del suelo y las paredes.

Con esto ya tenemos la clase terminada.

Linkback: https://minecraftmin.net/index.php?topic=14693.0
https://i.imgur.com/cFX0ssZ.png






Share via delicious Share via digg Share via facebook Share via furl Share via linkedin Share via myspace Share via reddit Share via stumble Share via technorati Share via twitter

xx
[DMForge] II. Bloque genérico (GenericBlock.java)

Iniciado por Alfomega

3 Respuestas
4642 Vistas
Último mensaje Abril 11, 2017, 01:19:46 pm
por Alfomega
xx
[DMForge] XII.- Bloque que suelta objeto al minarlo (GenericBlockDrop.java)

Iniciado por Alfomega

1 Respuestas
2364 Vistas
Último mensaje Agosto 23, 2017, 03:00:58 pm
por DarkKalik
xx
[DMForge] IV.- Objeto genérico (GenericItem.java)

Iniciado por Alfomega

2 Respuestas
3454 Vistas
Último mensaje Enero 14, 2018, 06:49:31 pm
por zahkruin
xx
[DMForge] III.- Añadir un bloque. Registro y modelado

Iniciado por Alfomega

2 Respuestas
4863 Vistas
Último mensaje Enero 18, 2018, 12:06:52 pm
por Alfomega