"> Foro - [DMForge] VII.- Archivos de lenguaje, recetas, cocinar/fundir, OreDictionary en Desarrollo de Mods - Page 1 of 1
Abril 18, 2024, 05:43:55 pm
Visitante


Autor Tema:  [DMForge] VII.- Archivos de lenguaje, recetas, cocinar/fundir, OreDictionary  (Leído 2494 veces)

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

Abril 16, 2017, 07:59:27 pm

Alfomega




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Una vez tenemos algunos bloques y objetos básicos es el turno de añadirle nombres legibles para los jugadores, recetas, añadir productos de horneado y registrar estos bloques y objetos en el OreDictionary del Forge para establecer equivalencias y compatibilidad entre los materiales de los mods.

Antes de empezar:
Habrá que tener los archivos de lenguaje creados tal como indiqué en la introducción de la guía y, por supuesto, tener algún objeto o bloque ya creado.

Añadir nombre legible
Como habréis notado si habéis probado el mod hasta ahora, los nombres de los objetos y bloques será del estilo "ModId_nombre". Para ponerles un nombre normal, abrimos los archivos de idiomas que queramos y añadimos una línea por cada bloque y objeto en cada archivo de lenguaje de la siguiente forma:
Bloque
Código: [Seleccionar]
tile.modId_nombre_en_el_código.name=Nombre legiblePor ejemplo:
en_US.lang (inglés)
tile.celtech_knot_bauxite=Bauxite
es_ES.lang (castellano)
tile.celtech_knot_bauxite=Bauxita

Objetos
Código: [Seleccionar]
item.modId_nombre_en_el_código.name=Nombre legiblePor ejemplo:
en_US.lang (inglés)
item.celtech_knot_aluminum=Aluminum
es_ES.lang (castellano)
item.celtech_knot_aluminum=Aluminio

Añadir recetas
Las recetas o crafteos tienen se añaden mediante una utilidad propia del Forge, pero tienen su pequeño lío.
Lo primero es crear un nuevo método para las recetas, algo tipo addRecipes() o uno para cada tipo de producto, por ejemplo, para los materiales, addRecipesMats().
Como véis hay dos tipos, las normales y las shapeless y cada una se crea de una forma distinta, aunque parecida:

Recetas básicas
En estas se define un orden en el que tienen que estar los objetos en la cuadrícula.
Aunque ahí se vea algo enrevesado, la estructura siempre es igual, usamos el método GameRegistry.addRecipe cuyo primer parámetro es el stack resultado y luego la estructura.
Este stack se representa por la clase ItemStack(objeto/bloque, cantidad), en este caso un bloque de aluminio.
La estructura es un array de objetos de la clase Object[] donde primero van las filas y luego los materiales. Para estipular es mejor empezar pensando los materiales que vamos a poner y asignarle una letra a cada uno para luego poner la estructura. En este caso solo aluminio y le ponemos la letra A (ojo, respetar mayúsculas y minúsculas).
Si ponemos más materiales, cada uno en una línea, primero la letra entre comillas simples, una coma, el material y otra coma (menos en el último material) tal como puede verse en este otro ejemplo más largo:
Una vez tenemos la lista de materiales, estipulamos la estructura o cuadrícula justo encima de la lista, mediante trios de letras, cada una se corresponde con un material de la lista.
En el ejemplo anterior sería, en la primera fila titanio, acu, titanio; en la segunda, grafeno, máquina, grafeno y en la tercera, titanio, cpu, titanio.
No es necesario poner las tres filas, por ejemplo, para hacer un slab solo hace falta poner tres de madera en una misma fila, por lo que solo ponemos un trio.

Recetas shapeless
Estas son las que no necesitan colocarse de una forma determinada, por ejemplo los bloques de hierro se deshacen al ponerlos en cualquier parte de la cuadrícula.
La forma de hacerlas es más sencilla, mediante el método GameRegistry.addShapelessRecipe siendo el primer parámetro el stack resultante, en este caso nueve de aluminio y luego un array de Object que son los objetos, en este caso un bloque de aluminio. Si queremos poner más, basta con separarlos por una coma.

Una vez tenemos el método, lo llamamos desde nuestro método Init de la clase base.

Productos de horneado
Para crear productos resultantes de hornear / fundir objetos o bloques creamos un nuevo método como addSmelts() y lo llamamos desde el método Init de la clase base.
Para crear una tan solo tenemos que llamar al método GameRegistry.addSmelting el cual tiene tres parámetros:
1.- El objeto o bloque a introducir.
2.- El stack resultante. Aunque en Minecraft vanilla todo se derrite en un stack de una unidad, puede derretirse un objeto en dos de oro, por ejemplo.
3.- La experiencia que da el procesar.

OreDictionary
Como ya comenté, el ore dictionary es para interconectar materiales de mods. Como siempre, cread un método y llamadlo desde el Init de la clase base.
La estructura es simple, OreDictionary.registerOre, el código y el objeto o bloque.
El código es algo establecido entre creadores de mods, primero va el tipo (ore, ingot, dust, block...) y luego el nombre del elemento en inglés. Por ejemplo, yo he añadido que el ore (mena) del aluminio es el bloque bauxite, que el ingot (lingote) es el objeto aluminum y que el block (bloque de 9 lingotes) es el bloque aluminumBlock.

Linkback: https://minecraftmin.net/index.php?topic=14604.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] I. Clase base y archivos de inicio

Iniciado por Alfomega

0 Respuestas
5789 Vistas
Último mensaje Marzo 28, 2017, 11:13:01 pm
por Alfomega
xx
[DMForge] VIII.- Pestañas de creativo

Iniciado por Alfomega

0 Respuestas
2749 Vistas
Último mensaje Abril 16, 2017, 08:17:52 pm
por Alfomega
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
xx
[DMForge] XI.- Bloque translúcido (GenericBlockTranslucent.java)

Iniciado por Alfomega

0 Respuestas
2182 Vistas
Último mensaje Mayo 07, 2017, 06:14:22 pm
por Alfomega