• Productos
  • Características
  • Mod Master
  • Descargar
  • Juegos
  • Blog
  • Precios

MoonstormSharedUtils

Autor:TeamMoonstormÚltima actualización:2021-09-11 03:40:242.6M530KB

Risk of Rain 2 MoonstormSharedUtils-1-Maestro de modificaciones de Lagofast

Pre-dependencias

Introducción al mod

MSU es una API modular diseñada para trabajar en un entorno de editor con ThunderKit, diseñada para ser fácil de usar y sencilla.

Utilidad compartida de Moonstorm: carga de contenido y marco de utilidad genérico para módulos de contenido grande.

MoonstormSharedUtils, también conocido como MSU, es una API diseñada para crear módulos de contenido alrededor del sistema ThunderKit.

Inicialmente parte de una API y un marco construido para la actualización Starstorm2 Para una mejor experiencia de desarrollo, la configuración de ThunderKit se ha multiplicado para convertirse en su propia biblioteca independiente, por lo que está disponible para cualquiera que desee crear grandes módulos de contenido con ThunderKit.

Objetivos de la API

La MSU lucha por los siguientes objetivos con respecto al desarrollo y la gestión del Departamento de Defensa.

  • Sistema sencillo pero potente para gestionar y cargar contenido de juego de forma asíncrona.
  • Un poderoso marco construido sobre módulos que le permite automatizar partes de su flujo de trabajo de modding, como la ejecución de dispositivos, monstruos y spawns interactivos, entre muchos más.
  • Simplifique el flujo de trabajo de ThunderKit proporcionando un conjunto de objetos computables personalizados para administrar inventarios, rutas y canalizaciones.
  • Se hace mucho hincapié en utilizar los sistemas proporcionados por el juego tanto como sea posible, como los delegados proporcionados por defecto, el comportamiento básico del proyecto, etc.
  • Aproveche el marco R2API existente para potenciar el sistema, como la modificación del controlador.
  • Haga hincapié en trabajar en el editor en lugar de trabajar en el código para crear activos.

Características clave

IContentPiece, IContentPieceProvider y el marco de módulos

Aunque solo los mods de código crean su contenido (presets, ScriptableObjects, etc.) en tiempo de ejecución y generalmente cuando están despiertos, esto causa un problema conocido como "pantalla negra para siempre", donde el sistema de la mayoría de estos mods se inicializa antes de que comience la pantalla de carga del juego. Esto da la idea de que el juego está congelado y no responde a los usuarios olvidadizos. Aunque esto es cierto, es difícil administrar la carga y la interacción entre el contenido personalizado de Assetbundles y el sistema de juego.

MSU resuelve este problema a través de una trinidad de contenidos, proveedores de contenidos y marcos de módulos. Este triple se utiliza para permitir que los mods carguen sus activos de forma asíncrona durante la pantalla de carga y para que funcionen correctamente con el sistema del juego base.

Piezas de contenido

  • Indica alguna forma de contenido que el mod está agregando
  • Cada ContentPiece está vinculado a un módulo específico que maneja la carga e implementación del contenido.
  • ContentPieces tiene un sistema de disponibilidad que el módulo utiliza para saber qué se va a cargar e inicializar.
  • ContentPiece tiene un método de carga asincrónica que el módulo utiliza durante la inicialización para cargar asincrónicamente los activos del contenido.
  • Como interfaz, la API proporciona implementaciones adicionales:
    • , que significa vincular a un particular UnityEngine.Object.
      • La MSU incluye interfaces para las siguientes implementaciones Piezas de contenido<T>
        • IArtifactContentPiece, para ArtifactDefs
        • IEequipmentContenidoPieza DEFINICIÓN DEL
          • IEliteContentPiece Gestión Definición de élite Asociado a un dispositivo específico.
        • IItemContenidoPieza DEFINICIÓN DEL.
          • Una subinterfaz denominada IVoidItemContentPiece Gestiona los elementos añadidos en Void Survivor para dañar el sistema.
        • IItemTierContentPiecePara ItemTierDefs
        • ISceneContentPiece Definición de escenario.
    • , indica que está vinculado a un tipo específico UnityEngine.MonoBehaviour
      • La MSU incluye interfaces para las siguientes implementaciones IGameObjectContentPiece<TComponent>
        • ICaracterContentPiece Para Personajes
          • IMonsterContentPiece Se puede utilizar contra monstruos hostiles
          • Subinterfaz llamada ISurvivorContenidoPiezaPuede ser utilizado para gestionar nuevos supervivientes.
        • Contenido interactivo Para Interactivo.
    • IVanillaSobreviventeContenidoPieza, que representa una modificación de Vanilla Survivor.
  • Las clases también se pueden implementar IContentPackModifier, para la interfaz directa con el ContentPack de su mod.

Módulos

  • Un módulo es una clase que gestiona Piezas de contenido Clases con juegos básicos.
  • Cada módulo maneja un tipo específico de interfaz, así como posiblemente subinterfaces.
  • El módulo sabe utilizar Sistema.
  • Una vez que haya proporcionado IContentProviderPara un módulo, se puede llamar Inicialización Método para obtener una corutina que inicializará su contenido de manera asíncrona.
  • MSU ofrece los siguientes módulos:
    • Módulo de pieza de trabajo IArtifactContentPieces, ArtifactModule con R2API.ArtifactCode Agregue nuevos códigos de artefacto al juego. También manejará el enganche y desenganche adecuados de la pieza de trabajo, de modo que su enganche solo esté habilitado cuando la pieza de trabajo está habilitada.
    • Módulo de carácter, Gestión ICaracterContentPiece, ISurvivorContenidoPieza IMonsterContentPiece, módulo con R2API.Director Lidiar con el desove de los monstruos en todas las etapas del juego.
    • Módulos de dispositivos IEequipmentContenidoPiezaY IEliteContentPieceEl módulo utiliza un único gancho para gestionar las llamadas de ejecución del dispositivo.
    • Módulo interactivo, Gestión Contenido interactivo, módulo con R2API.Director Maneja generaciones interactivas para las diversas etapas del juego.
    • Módulos de proyectos IItemContenidoPieza Y IVoidItemContentPiece. Se ocupa automáticamente del daño del artículo.
    • Módulos de proyectos IItemTierContentPiece, crea automáticamente una colección de listas desplegables disponibles para la capa al comienzo de la ejecución.
    • Módulo de escena, Gestión ISceneContentPiece, que se relaciona con R2API. Etapas Para manejar la adición de una etapa en el juego.
    • El módulo Vanilla Survivor, Gestión IVanillaSobreviventeContenidoPieza. Se utiliza para añadir nuevo contenido a los sobrevivientes del juego base (pieles, habilidades, etc.)

  • Deje que el módulo sepa qué fragmentos de contenido crear, cargar e inicializar. Utilización de MSU Proporcionar Piezas de contenidos al módulo.
    • Aunque puedes crear tu propio IContentPieceProvider Interfaz para gestionar escenarios de disponibilidad, MSU Contenido útil Las clases contienen métodos que pueden crearlos desde cero simplemente analizando el ensamblaje.

Sistema amigable RoR2

Uno de los objetivos clave de MSU es trabajar con el riesgo del sistema Rain 2, produciendo contenido que funcione con él, en lugar de forzar el sistema del juego base a trabajar con el nuestro. Por lo tanto, MSU proporciona un poderoso sistema para interactuar con los sistemas clave del juego, tales como equipos, buffs, artículos, etc.

Interfaz de los componentes

Para evitar enganchos innecesarios a tipos comunes, MSU proporciona interfaces que se pueden usar dentro de los componentes de los siguientes sistemas:

  • IOnIncomingDamageOtherServerReciever, que actúa como un gancho en TakeDamage y se puede utilizar para modificar el daño de la víctima.
  • Comportamiento del proyecto estadístico, como una interfaz colgada para el recalculo de las estadísticas, que contiene métodos que se ejecutan antes y después del recalculo de las estadísticas.
  • Modificador iBodyStatArg, una interfaz que actúa como R2API. Recalcular estadísticasDelegado por GetStatCoefficient.

BaseItemMasterComportamiento

BaseItemMasterBehaviour, mucho como su contraparte Body (Comportamiento físico básico) Se utiliza para crear un comportamiento que se añade al CharacterMaster cuando se obtiene el elemento especificado.

BaseBuffBehaviour

BaseBuffBehaviour es un componente que se puede utilizar para administrar efectos Buff. Por razones de rendimiento, BaseBuffBehaviours no se rompe cuando se elimina el buff, sino que el comportamiento se agrega cuando el buff es adquirido por primera vez por el cuerpo, y cuando la pila de buffs se agota, el comportamiento es Personas con discapacidadDespués, cuando el cuerpo vuelve a recibir el buff, el comportamiento es HabilitadoEsto reduce la carga de trabajo del recolector de basura y mejora el rendimiento del sistema en general.

Flujo de trabajo mejorado de Thunderkit:

Debido a que el objetivo de MSU gira en torno al trabajo en un editor, MSU incluye una gran cantidad de utilidades para crear contenido para el juego.

Soporte WWise

MSU ofrece una ImportExtension personalizada que se puede utilizar para incluir en la lista negra los ensamblajes de WWise en el juego, lo que le permite utilizar el sistema de integración de WWise en su proyecto.

Objeto scriptable

MSU proporciona los siguientes ScriptableObjects que permiten crear contenido "solo en tiempo de ejecución" en el momento de la edición.

  • Significado de desbloqueo implementable, como una abstracción de los sistemas UnlockableDef y AchievementDef, su Desbloquear significado Esto se desbloquea a través de logros.
  • Punto BuffDef, como una abstracción de DotDef y asigna automáticamente DotDef a su BuffDef especificado.
  • Extender Eliminar Definición, como Definición de élite Clases, soporte para la adición automática a las capas de juego base, rampas de élite, materiales de cobertura, y más.
  • Proveedor de tarjetas interactivasUn ScriptableObject que contiene los metadatos necesarios para generar interactividad en fases, múltiples fases que se pueden asignar a una sola tarjeta.
  • MonsterCardProvider, un ScriptableObject que contiene los metadatos necesarios para desovar monstruos en etapas, múltiples etapas se pueden asignar a una sola tarjeta.
  • Diccionario de visualización de proyectosUn ScriptableObject que funciona de manera similar a R2API. ProyectoEl sistema ItemDisplayDictionary, que se puede utilizar para agregar múltiples grupos de reglas a los existentes ItemDisplayRuleSets, los activos clave y los preajustes de visualización son determinados por
  • NombreItemDisplayRuleSet, ScriptableObject, se puede utilizar para crear un completo ItemDisplayRuleSet Para modelos de personajes. Los activos clave y los preajustes de visualización son establecidos ArtículoDisplayCatalogSistemas dentro de la MSU.
  • SerializableEliteTierDef, como Elite DEF Los juegos dentro del sistema pueden asignarse a un multiplicador de costo, direccionable con referencia a la capa y el modo de élite del juego básico.
  • UberSkinDef, como una utilidad todo incluido para SkinDefs, implementa soporte para el sistema SkinVFX de R2API y agrega pieles a los personajes normales

Objetos combinables preconstruidos

Dado que MSU fue creado con thunderkit en mente, MSU ofrece los siguientes ComposableObjects para su proyecto:

  • Sencillo Inventario Utilice lo necesario Fecha del manifiesto Utilizado para declarar su mod
  • Configuración de Referencia de rutaEsto es para la construcción limpia y el lanzamiento de sus mods
  • Sistema de tubería altamente configurable:
    • Un canal de lanzamiento que construye automáticamente un archivo zip para preparar su mod para su lanzamiento.
    • Una tubería genérica que se puede utilizar para construir sus ensamblajes, crear paquetes de activos comprimidos o no comprimidos y transmitir activos para almacenar temporalmente sus mods.
    • Configuración de pipeline de colaboradores, que los colaboradores pueden usar para configurar fácilmente una pipeline para construir sus mods.

Gestión de configuración y tokens

Con la implementación predeterminada de BepInEx, crear una configuración para tu mod puede ser muy extenso, y MSU implementa un sistema de configuración encima de BepInEx que le permite configurar cualquier cosa fácilmente.

ConfigureField, ConfiguredVariable y Opción Riesgo

MSU proporciona las siguientes abstracciones del sistema de configuración BepInEx:

  • Campos de configuración

    • Se pueden aplicar a campos estáticos para configurar automáticamente sus propiedades personalizadas.
    • El proceso de configuración vincula la configuración al perfil con un ID de cadena único asignado al perfil personalizado.
    • El Sección de configuración Y Apodo No se requiere implementación, MSU utiliza por defecto Información de los miembros ConfiguraciónName, y Tipo de declaraciónEl nombre de Sección de configuración
    • Existe una versión "RiskofOptions" de ConfigureField, que utiliza la API de RiskofOptions para crear automáticamente opciones. Sin embargo, debido a las limitaciones de las propiedades, estas opciones no se pueden personalizar masivamente.
  • Variables de configuración

    • ConfiguredVariable es una clase que representa variables que se pueden configurar.
    • Se puede utilizar para crear escenarios de configuración complejos con riesgos de opciones.

El Sistema FormatToken

Vincular los cambios de configuración a los valores de los tokens es una de las mejores partes de crear tokens con código, sin embargo, la traducción de estos tokens puede ser difícil de administrar porque requiere que el traductor codifique la traducción directamente en el archivo fuente de C#.

Ofrecido por MSU Formato Token Sistema, ahora puede utilizar el sistema de formateo de cadenas de C # para escribir el valor del token. Con esto, usted puede guiar correctamente los archivos de lenguaje JSON que los traductores pueden usar fácilmente para traducir, siempre y cuando se mantiene el orden de índice correcto.

Documentación y código fuente

  • La documentación y el código fuente están disponibles en el repositorio de Github de MoonstormSharedUtil, donde se pueden encontrar Aquí

Contribuciones

MSU es un proyecto apasionado de Nebby, uno de los miembros de TeamMoonstorm. Por lo tanto, dedica su tiempo libre a esto, permitiendo que el resto de la comunidad cree contenido asombroso y asombroso.

MSU siempre será libre de usar y nunca estará encerrado detrás de un muro de pago, sin embargo, las donaciones son increíblemente agradecidas.

ko-fi

Aprovechando Mods de MSU

(¡Haz clic en mí!)

(Nota: ¡Haga clic en el icono para abrir una nueva pestaña del Mod!)

Icono/URL Name Descripción
StarstormIcon Starstorm2 La secuela de Starstorm 1. ¡Añade nuevos sobrevivientes, mecánicas, elementos, habilidades, enemigos y mucho más!
LostInTransitIcon Perdido en tránsito Lost in Transit es un mod que se centra en recuperar las características perdidas de Risk of Rain 1 y actualmente incluye artículos.
VarianceAPIIcon API de varianza VarianceAPI te permite crear variantes de tu personaje, las variantes pueden tener diferentes texturas, iluminaciones, habilidades y mucho más.
FortunesFromTheScrapyardIcon Para ser liberado-La riqueza del patio de chatarra Un mod de contenido estilo expansión en torno a una compañía espacial de terceros, basado visualmente en temas de junkyard y cyberpunk.
RulersOfTheRedPlaneIcon El gobernante del plano rojo Modo de contenido universal expandido en el plano rojo

Gracias y créditos

  • Twiner para crear ThunderKit.
  • IDeath y Harb ayudan con una variedad de problemas de codificación.
  • KingEnderBrine y RuneFox237 de RoR2SkinBuilder, utilizados como base para el sistema VanillaSkinDef.
  • GrooveSalad ayuda en la conceptualización del sistema de módulos y ofrece StubbedShaders.
  • Esmalte desconocido para el logotipo de MSU
  • El equipo Starstorm 2, quien primero sacó a nebby de la situación y creó MSU.
  • Una fortuna del equipo de chatarra porque creen en mis objetivos y utilizan la MSU para su Departamento de Defensa.
  • KevinFromHPCustomerService, para crear el sistema de módulos originales que finalmente se convirtió en MSU 2.0
  • Todos en la comunidad de Risk of Rain 2 aprecian mi trabajo.
Esta herramienta es proporcionada por terceros [bufftool]Icono de atención

Descargar Mods Ahora

Instala LagoFast, inicia Risk of Rain 2 y juega con los mods que te encantan.