"> Foro - [DMForge] I. Clase base y archivos de inicio en Desarrollo de Mods - Page 1 of 1
Marzo 29, 2024, 07:29:32 am
Visitante


Autor Tema:  [DMForge] I. Clase base y archivos de inicio  (Leído 5751 veces)

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

Marzo 28, 2017, 11:13:01 pm

Alfomega




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

En esta primera parte explicaré como crear o modificar todos los archivos y ficheros básicos del mod.
Antes de empezar:
Tener todo lo de la introducción hecho y el Eclipse abierto.

Clase base
Lo primero y más importante es crear la clase base del mod, para ello en el explorador de paquetes del Eclipse (por defecto a la izquierda) creamos un nuevo paquete dentro de la carpeta src/main/java cuyo nombre sería o bien el nombre del mod, vuestro nombre, etc. punto y, por establecer un nombre significativo, common, por tanto quedaría, algo como (para mi mod) celtech.common.
Luego creamos una nueva clase java dentro de ese paquete haciendo clic con el botón secundario encima del paquete New->Class y le ponemos el nombre del mod, en mi caso CeltechEternalKnot quedando algo como esto:

Constantes del mod
Una vez creada la clase, hay que estipular las constantes básicas del mod que son su identificador y la versión:
A mayores, y para futuras operaciones, es bueno agregar una variable instancia del propio mod, que son las dos últimas líneas. La anotación @Instance se encarga de crear la propia instancia, así que no tenéis que poner nada más.
El identificador MODID es recomendable que sea significativo del mod.

Establecer clase base como mod
Una vez tenemos las constantes ya podemos decirle a Forge que nuestra clase base es un mod y eso se consigue con una anotación encima de la clase:
Esto es bastante autoexplicativo, primero va el identificador, luego la versión y por último el nombre del mod que se le mostrará a los jugadores.

Métodos de carga
Por último, hay tres métodos que toda clase base debe tener, los de inicialización. No todos son obligatorios, depende de que se vaya a utilizar y si quieres hacerlo todo correctamente.
La anotación @EventHandler es la encargada de decirle al Forge que ese método es un evento inicializador y el primer parámetro del método que tipo de inicializador es. Nuevamente, los nombres de los métodos no tienen que ser así pero es recomendable que sean significativos.
En el preInit se suelen registrar los bloques y las entidades, así como los materiales de las herramientas y armas o todo aquello que sea necesario que esté antes de utilizarlo.
En el Init es donde se inician la mayoría de las cosas, desde los renderizados (JSON) hasta las recetas.
Por último, en el postInit se realizan las operaciones que necesitan que todo lo demás del mod esté cargado.

Dos visiones de la clase base
Como en todo, hay varias formas de ver una clase base:
Por un lado están los que tienen la clase base vacía, sin más atributos ni métodos, la usan para cargar cosas desde otras clases, por lo que tienen una clase para los bloques, otra para las recetas, otras para los objetos, etc. Así tienen todo separado y organizado.
Por otro, (me incluyo) está la clase base megalítica, donde están todos los objetos, recetas, etc. Es bastante enrevesada si no separas y documentas correctamente, pero de esta forma tienes todo centralizado.
Pero bueno, no os preocupéis, veremos esto con más calma cuando explique como añadir bloques.

Archivo mcmod.info
El archivo mcmod.info es, por así decirlo, la carta de presentación del mod, la información que se muestra en la ventana de mods del Minecraft, por lo que es recomendable tenerlo.
Dicho archivo está en src/main/resources y por defecto el Forge crea uno que usaremos de base pasa modificar.
Los parámetros son bastante autoexplicativos, los únicos "raros" son el version y el mcversion, que están puestos con un pequeño comando que hará que el Forge cambie eso por el valor que tenemos puesto en nuestro mod de forma automática.

En la guía del forge de mcmod tenéis la explicación de todos los parámetros que podéis poner.

Carpeta asserts
Una vez tenemos esto, toca crear las carpetas donde van a estar nuestros recursos, es decir, las texturas, las gui (interfaces gráficas) y los archivos de idioma, entre otros.
Dentro de resources creamos (si no está ya) la carpeta asserts, dentro una con el id de nuestro mod, en mi caso celtech_knot y dentro:
blockstates
Aquí van los json que controlan los metadatos de los bloques (ya lo veremos más adelante).
lang
Aquí, como su nombre indica, van los archivos de idioma. De forma básica podéis crear dos, el en_US.lang y el es_ES.lang (creando un .txt y cambiando el .txt por .lang) para el inglés y el español de españa respectivamente.
Podéis crear los que queráis tal como los tiene el Minecraft en su carpeta.
models
Aquí van los modelos (JSON) que representan los bloques colocados en el mundo y los objetos.
Dentro de esta tiene que haber dos carpetas más, block e item
textures
Aquí van todas las texturas de todo lo que queramos representar. Las carpetas básicas son blocks, items y gui.

Ojo, todos los nombres con minúscula.

Y listo, con esto ya tenéis los archivos básicos del mod.

Linkback: https://minecraftmin.net/index.php?topic=14509.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] VII.- Archivos de lenguaje, recetas, cocinar/fundir, OreDictionary

Iniciado por Alfomega

0 Respuestas
2479 Vistas
Último mensaje Abril 16, 2017, 07:59:27 pm
por Alfomega
xx
[DMForge] VIII.- Pestañas de creativo

Iniciado por Alfomega

0 Respuestas
2725 Vistas
Último mensaje Abril 16, 2017, 08:17:52 pm
por Alfomega
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] X.- Añadir objetos a los cofres de las estructuras.

Iniciado por Alfomega

0 Respuestas
2722 Vistas
Último mensaje Enero 07, 2018, 02:54:49 pm
por Alfomega