Modding:Content Patcher

De Stardew Valley Wiki
Saltar a: navegación, buscar

Creación de paquetes de Content Patcher SMAPI mascot.png

Modding:Índice

Nota: Todos los links que te lleven fuera de la wiki en español, estan en inglés
¿Desea crear paquetes de Content Patcher para Stardew Valley? ¡Esta página es para ti! Esta página pretende ser una introducción suave a la creación de paquetes de Content Patcher. Si no necesita una introducción, consulte el archivo readme de Content Patcher completo.

Para el uso de mods, consulte Modding: Guía del jugador.
Para crear mods SMAPI, consulte Modding: Guía del Modder.

Conceptos básicos

¿Qué es Content Patcher?

Content Patcher es un mod SMAPI que te permite cambiar los recursos del juego (imágenes, diálogos, datos y mapas) sin reemplazar los archivos del juego o escribir código. Lo usa creando un paquete de contenido (una carpeta) con un par de archivos JSON (básicamente texto). Simplemente editando un archivo JSON, puedes...

  • Reemplazar un archivo de imagen;
  • Hacer cambios estacionales;
  • Hacer un diálogo que cambie según el clima, la fecha, sus relaciones con otros PNJ, etc;
  • Hacer cambios muy específicos (como hacer que el café sea más caro los fines de semana de invierno cuando nieva después de haber completado el JojaMart);
  • Y mucho más.

Recursos

Un recurso es esencialmente un archivo en la carpeta Content del juego con el nombre de asset. El nombre del recurso nunca incluye la ruta de Content el idioma o la extensión del archivo (Puedes usar tokens para dirigirse a idiomas específicos). Por ejemplo:

Archivo Nombre del Asset
Content/Portraits/Abigail.xnb Portraits/Abigail
Content/Maps/spring_beach.xnb
Content/Maps/spring_beach.es-ES.xnb
Content/Maps/spring_beach.fr-FR.xnb
Maps/spring_beach

Un recurso puede contener varios imágenes o entradas de datos. Por ejemplo, esto es lo que contiene Portraits/Abigail si lo desempaquetas:

Modding - creating an XNB mod - example portraits.png

Así que si quisieras cambiar los retratos de Abigail, usarías Content Patcher para cargar o editar Portraits/Abigail.

Cargar vs Editar

Hay dos formas conceptuales de cambiar un recurso:

  • Cargar la versión inicial de un recurso. Cada recurso solo puede ser cargado por un mod al mismo tiempo. Esto es principalmente útil para los mods de reemplazo total (como un mod que cambia completamente los retratos de un PNJ), o para proporcionar archivos que no existen en la carpeta Content.
  • Editar un recurso después de cargarlo. Se puede aplicar cualquier cantidad de ediciones al mismo recurso.

Por ejemplo, digamos que el juego necesita los retratos de Abigail. Así es como se aplican los cambios:

                                          ┌────────────┐
                                          │ edit asset │
                         ┌───────────┐    ├────────────┤
get Portraits/Abigail ──>│ load file │───>│ edit asset │──> portrait asset
                         └───────────┘    ├────────────┤
                                          │ edit asset │
                                          └────────────┘

Esto se divide en cuatro tipos de acción diferentes (Load, EditData, EditImage, EditMap), que se explican con más detalle en el archivo readme de Content Patcher

Empezar

Crear un mod de ejemplo

Primero vamos a poner en marcha nuestro paquete de contenido básico:

  1. Instalar SMAPI y Content Patcher.
  2. Desempaquete la carpeta Content del juego para que pueda ver lo que contiene cada recurso (consulte ¿Como desempaquetar archivos del juego?).
  3. Crear un paquete de contenido SMAPI.
  4. Crea un archivo content.json en la misma carpeta con este contenido:
    {
       "Format": "1.11.0",
       "Changes": [
       ]
    }
    
  5. Abre el juego.

Si hasta ahora ha hecho todo correctamente, debería ver el nuevo mod en "Loaded X content packs" en la consola SMAPI. (De lo contrario, revise los pasos anteriores o solicite ayuda.)

Formato de Content

El archivo content.json que creó anteriormente es lo que le dice a Content Patcher qué cambiar. Esto tiene dos campos principales:

  • Format: La versión de formato. Siempre debe usar la última versión (actualmente 1.11.0) para habilitar las funciones más recientes y evitar comportamientos obsoletos.
  • Changes: Los cambios que desea realizar. Cada entrada se denomina parche, y describe una acción específica a realizar: reemplazar este archivo, copiar esta imagen en el archivo, etc. Puede enumerar cualquier número de parches.

Puede enumerar cualquier número de parches en el campo Changes, cada uno rodeado por { y }. Consulte la siguiente sección para obtener más información, pero aquí hay un ejemplo rápido:

{
   "Format": "1.11.0",
   "Changes": [
      {
         "Action": "Load",
         "Target": "Animals/Dinosaur",
         "FromFile": "assets/dinosaur.png"
      },

      {
         "Action": "EditImage",
         "Target": "Maps/springobjects",
         "FromFile": "assets/fish-object.png"
      },
   ]
}

(Hay otros campos comoConfigSchema y DynamicTokens para un uso más avanzado; estos se tratan en el archivo readme completo.)

Próximos pasos

¡Has creado un paquete de Content Patcher!

Para obtener más ayuda, consulte...

(Próximamente tendremos un tutorial guiado aquí.)