"> Foro - [DMForge] IV.- Objeto genérico (GenericItem.java) en Desarrollo de Mods - Page 1 of 1
Marzo 29, 2024, 05:41:16 am
Visitante


Autor Tema:  [DMForge] IV.- Objeto genérico (GenericItem.java)  (Leído 3432 veces)

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

Abril 11, 2017, 04:11:01 pm

Alfomega




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Tras los bloques, llega la hora de hacer un objeto y, por tanto, la clase genérica para crearlos.
Esta clase es muy sencilla, tanto para crearla como para utilizarla, ya que los objetos en Minecraft no tienen casi opciones y, además, tiene muchas similitudes con la de los bloques.
Antes de empezar:
Habrá que crear un nuevo paquete para agrupar las clases genéricas de objetos, algo como nombreMod.generic.item.

Clase GenericItem
Dentro de este nuevo paquete creamos la clase GenericItem que extienda la clase net.minecraft.item.Item.
Una vez creada la clase, añadimos un atributo para guardar el nombre del objeto:
Ya que es una clase genérica y posiblemente vayamos a heredar la clase en un futuro, le ponemos protected en vez de private.

Constructor
Ahora viene crear el constructor:
El método es parecido al de la clase GenericBlock de la segunda parte de este tutorial, solo que en este caso solo tiene los atributos name y tab, para establecer el nombre y la pestaña del modo creativo respectivamente.
La única diferencia con respecto a los bloques es que con los objetos puedes añadirlos al registro directamente en el constructor, así que nos ahorramos el método register().

Rareza e información / descripción (opcional)
En caso de querer establecerle a un objeto una rareza en particular (color de nombre) y / o una información adicional / descripción (texto debajo), podemos hacerlo añadiendo un par de cosas más a la clase.
Lo primero es añadir dos atributos más que almacenarán esta información:
La primera guarda la rareza del objeto. En el Minecraft hay cuatro guardadas en la clase EnumRarity, EnumRarity.COMMON = blanco (por defecto), EnumRarity.UNCOMMON = amarillo, EnumRarity.RARE = aqua and EnumRarity.EPIC = morado claro
La segunda es un array de Strings, donde cada elemento es una línea de texto a mostrar. Mediante la clase EnumChatFormatting podemos ponerle color al texto tal como se hace con los libros y demás, solo hay que poner EnumChatFormatting.<color>.toString() donde <color> es el color o el comando que queremos:
Una vez tenemos los atributos, tenemos que crear un nuevo constructor que admita establecer estos dos valores nuevos:
Por último, tendremos que sobreescribir dos métodos que son los encargados de que esto funcione.
El primero es un getter normal y corriente, pero el segundo añade línea a línea la descripción del objeto, siempre que exista.
La anotación @SideOnly(Side.CLIENT) indica que solo será ejecutado del lado cliente, ya que es algo meramente visual y al servidor no le interesa.

Otros
Una vez tenemos lo demás, añadimos un get para el nombre para poder acceder al él en caso de necesitarlo:

Y con esto, ya tenemos nuestra clase genérica para los objetos.

Linkback: https://minecraftmin.net/index.php?topic=14571.0
« Última modificación: Mayo 07, 2017, 05:38:25 pm por Alfomega »
https://i.imgur.com/cFX0ssZ.png



Respuesta #1 Mayo 07, 2017, 05:39:10 pm

Alfomega




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Acabo de corregir la segunda imagen que no estaba actualizada con respecto al código.




Respuesta #2 Enero 14, 2018, 06:49:31 pm

zahkruin


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

Otro apartado añadido al mod. Poco a poco va tomando forma. Muchas gracias por el tutorial   :) :)





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
4594 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
2350 Vistas
Último mensaje Agosto 23, 2017, 03:00:58 pm
por DarkKalik
xx
[DMForge] IX.- Generador de mundo genérico y añadir un mineral al mundo

Iniciado por Alfomega

0 Respuestas
2437 Vistas
Último mensaje Agosto 23, 2017, 04:01:37 pm
por Alfomega
xx
[DMForge] V.- Añadir un objeto básico. Registro y modelado

Iniciado por Alfomega

0 Respuestas
2393 Vistas
Último mensaje Abril 16, 2017, 06:17:30 pm
por Alfomega