• Prodotti
  • Funzionalità
  • Mod Master
  • Scaricare
  • Giochi
  • Blog
  • Prezzi

Tempesta di luna sharedutils

Autore:TeamMoonstormUltimo aggiornamento:2021-09-11 03:40:242.6M530KB

Risk of Rain 2 Tempesta di luna sharedutils-1-lagofast mod master

Pre-dipendenze

Introduzione alla mod

Focalizzato con l'intenzione di lavorare in un ambiente editor utilizzando thunderkit, msu è un sistema api modulare progettato per la facilità d'uso e la semplicità.

Moonstorm condiviso utils- caricamento di contenuti e framework di utilità generale per mod di contenuti di grandi dimensioni.

MoonstormSharedUtils, altrimenti noto come msu, è un'API progettata per funzionare intorno al sistema thunderkit per creare mod di contenuti.

Originariamente parte dell'API e del framework costruiti per l'aggiornamento Starstorm2 A una configurazione thunderkit per un'esperienza di sviluppo migliore, è cresciuta esponenzialmente in una propria libreria separata in modo che chiunque abbia il desiderio di creare mod di contenuti grandi con thunderkit possa usarlo.

Gli obiettivi dell'API

Msu si impegna per i seguenti obiettivi per quanto riguarda lo sviluppo e la gestione di mod.

  • Semplici ma potenti sistemi per gestire e caricare contenuti per il gioco in modo asincrono.
  • Un robusto framework costruito su moduli che consente di automatizzare varie parti del flusso di lavoro di modificazione, come l'esecuzione delle apparecchiature, il mostro e lo spawning interattabile, e altro ancora.
  • Semplificazione del flusso di lavoro thunderkit fornendo un set personalizzato di composableobjects per la gestione di manifesti, percorsi e pipelines.
  • Un'alta concentrazione sull'utilizzo dei sistemi forniti dal gioco sopra i ganci ogni volta possibile, come i delegati forniti predefinitamente, i comportamenti dell'elemento di base, e altro ancora.
  • L'utilizzo del framework r2api esistente per i sistemi di alimentazione come le modifiche del direttore.
  • L'enfasi sul lavoro all'interno dell'editor invece di lavorare sul codice per la creazione di asset.

Caratteristiche chiave

Il componente, il provider del componente e il framework del modulo

Mentre solo i mod creano il loro contenuto(prefabb, ScriptableObjects, ecc.) in fase di esecuzione e di solito in fase di sveglio, questo causa i problemi noti come"Forever Black Screen ", dove la maggior parte dei sistemi del mod vengono inizializzati prima dell'inizio della schermata di caricamento del gioco. Questo dà l'idea che il gioco sia congelato e non risponde agli utenti inosservati. E anche se questo è vero, gestire il caricamento e le interazioni tra contenuti personalizzati da assetbundles e i sistemi del gioco è difficile.

Msu risolve questo tramite la triade del contentpiece, del provider del contentpiece e del framework del modulo. Questa triade viene utilizzata per consentire ai mod di caricare le proprie attività in modo asincrono durante lo schermo di caricamento, e farle funzionare correttamente con i sistemi del gioco di base.

Pezzi di icone

  • Rappresenta qualche forma di contenuto che un mod sta aggiungendo
  • Ciascun contenuto è legato a un modulo specifico che gestisce il caricamento e l'implementazione del contenuto.
  • Contentpiece ha un sistema di disponibilità, che il modulo utilizza per sapere quale contenuto caricare e inizializzare.
  • Un contentpiece ha un metodo di caricamento asincrono che il modulo utilizza durante l'inizializzazione, che viene utilizzato per caricare asincronamente le risorse per il contenuto.
  • Essendo un'interfaccia, l'api fornisce ulteriori implementazioni:
    • Che rappresenta un contenuto legato a uno specifico Unityengine.oggetto.
      • Msu include le seguenti interfacce che implementano Pezzi di icone<T>
        • IArtifatt Contentpezzo, per Artefatti defs
        • Contenuto dell'attrezzatura Defs attrezzature
          • Pezzi di contatto ielite Gestire il Definizione d'élite Associati a una specifica apparecchiatura.
        • I pezzi di contenuto Definizione del progetto.
          • Un'interfaccia secondaria chiamata Ivoidi itemcontentpezzo Gestisce il sistema di corruzione dell'oggetto aggiunto nei sopravvissuti del vuoto.
        • Iitemtier ContentpezzoPer il ItemTierDefs
        • Alcuni pezzi di connessione SceneDefs.
    • Che rappresenta un contenuto legato a un tipo specifico di Unityengine.monocomportamento
      • Msu include le seguenti interfacce che implementano IgameoggettoContentpezzo<TComponent>
        • Icharactercontentpezzo Per il Corpo delle caratteristiche
          • Pezzi di contenuto imonsterpezzo Può essere utilizzato per gestire mostri ostili
          • La sottointerfaccia chiamata Contenuto di sopravvivenzaPuò essere utilizzato per gestire i nuovi sopravvissuti.
        • IInterattabile Content Pezzo Per il Interattabili.
    • IvanillasurvivorContentpezzoChe rappresenta modifiche per un sopravvissuto alla vaniglia.
  • Le classi possono anche implementare IContentPackModifierChe viene utilizzato per l'interfaccia diretta con il contentpack del tuo mod.

I moduli

  • Un modulo è una classe che gestisce il caricamento e l'interazione di Pezzi di icone Lezioni con il gioco di base.
  • Ogni modulo gestisce un tipo specifico di interfaccia, accanto a possibili sotto-interfacce.
  • Il modulo sa quali classi istanziare e inizializzare utilizzando Il sistema.
  • Una volta che fornirai uno Provider di icontiA un modulo, puoi chiamarlo Inizializzazione e inizializzazione Metodo per recuperare una coroutine che inizializzerà il tuo contenuto in modo asincrono.
  • Msu fornisce i seguenti moduli:
    • Modulo di artefatti IArtifatt Contentpezzos, l'interfaccia artifactmodule con R2api. artifactcode Per aggiungere nuovi codici di artefatti al gioco. Eseguirà anche il corretto aggancio e sgancio dell'artefatto, in modo che solo quando l'artefatto è abilitato, i ganci sono abilitati.
    • Modulo caratteristicoGestire, gestire Icharactercontentpezzo, Contenuto di sopravvivenza Pezzi di contenuto imonsterpezzo, il modulo interfaccia con R2api. Direttore Per gestire la riproduzione di mostri per le fasi del gioco.
    • Modulo apparecchiature Contenuto dell'attrezzaturaE. Pezzi di contatto ieliteIl modulo utilizza un unico gancio per gestire le chiamate di esecuzione per le apparecchiature.
    • Emodulo interattivoGestire, gestire IInterattabile Content Pezzo, il modulo si interfaccia con R2api. Direttore Per gestire lo spawning di interattabili per le fasi del gioco.
    • Modulo del progetto I pezzi di contenuto E. Ivoidi itemcontentpezzo. gestisce automaticamente le corrotture degli elementi.
    • Modulo del progetto Iitemtier ContentpezzoCrea automaticamente all'inizio delle raccolte dell'elenco di drop disponibile per il livello.
    • Modulo scenarioGestire, gestire Alcuni pezzi di connessione, si interfaccia con R2api. stage Per gestire l'aggiunta di un palcoscenico al gioco.
    • VanillasurvivormoduloGestire, gestire IvanillasurvivorContentpezzo. che viene utilizzato per aggiungere nuovi contenuti ai sopravvissuti del gioco di base (skin, abilità, ecc.)

  • Un modulo per sapere quali pezzi di contenuto creare, caricare e inizializzare. Msu utilizza Per fornire Pezzi di iconeS ai moduli.
    • Mentre è possibile creare le proprie implementazioni Provider di elementi iconici Interfaccia per gestire gli scenari di disponibilità, MSU Contenuto utile Contiene metodi per crearli da zero, analizzando solo il vostro assembly.

Sistemi amichevoli di ror2

Uno degli obiettivi chiave di msu è lavorare accanto al rischio di Rain 2 sistemi, creando contenuti che funzionano con esso invece di costringere i sistemi del gioco di base a lavorare con i nostri. In quanto tale, msu fornisce un sistema robusto per interagire insieme ai sistemi chiave del gioco come attrezzature, buffs, oggetti, e altro ancora.

Interfacce per componenti

Per evitare un aggancio unecesario per tipi comunemente usati, msu fornisce interfacce che possono essere utilizzate all'interno dei componenti per i seguenti sistemi:

  • IoncomingdamageotherserverdestinatarioFunziona come un gancio su takedamage, che può essere utilizzato per modificare il danno in arrivo per una vittima.
  • Comportamento staticoUn'interfaccia che funziona come un on hook per il ricalcolo delle statistiche, contenente metodi per l'esecuzione prima e dopo i ricalcoli delle statistiche.
  • Modificatore iBodyStatArgUn'interfaccia che funziona come un'implementazione di R2API. RicalcolatestatsIl delegato getstatcoefficient.

BaseItemMasterComportamento

Il comportamento di base del master, proprio come la controparte del corpo (Comportamento fondamentale) viene utilizzato per creare un comportamento che viene aggiunto a un carattermaster quando viene ottenuto un elemento specificato.

Comportamento del buffer di base

Basebuffbehavior è un componente che può essere utilizzato per gestire gli effetti di un buff. Basebuffbehaviours non vengono distrutti quando il buff viene rimosso, invece, quando il buff viene ottenuto per la prima volta da un corpo, il comportamento viene aggiunto, quando le pile di buff vengono esaurite, il comportamento viene aggiunto La disabilitazioneIn seguito, quando il corpo riceve di nuovo il buff, il comportamento è Abilita.. questo riduce il carico di lavoro del raccogliente rifiuti e migliora complessivamente le prestazioni del sistema.

Miglioramento del flusso di lavoro thunderkit:

Poiché gli obiettivi di msu ruotano attorno al lavoro nell'editor, msu viene confezionato con una moltitudine di utilità per quanto riguarda la creazione di contenuti per il gioco.

Supporto wwise

Msu fornisce un'estensione di importazione personalizzata che può essere utilizzata per elencare gli assembly wwise dal gioco, consentendo di utilizzare il sistema di integrazione wwise per il tuo progetto.

Oggetti scriptabili

Msu fornisce i seguenti scriptableobjects che consentono la creazione di contenuti "solo per il runtime" in tempo di editor.

  • Realizzabile sbloccabile def, funziona come un'astrazione del sistema def e realizzazione def sbloccabile, è un Sbloccabile def Che è sbloccato attraverso un risultato.
  • Punto BuffDefFunziona come un'astrazione del dotdef e assegna automaticamente un dotdef al suo buffdef specificato.
  • Definizione di rimozione, funziona come estensione di Definizione d'élite Supportando l'aggiunta automatica ai livelli di base del gioco, rampe d'élite, materiali di sovrapposizione e altro ancora.
  • Fornitore di carte interattiveUno scriptableobject che contiene i metadati necessari per generare interattabili in fasi, più fasi possono essere assegnate a una singola scheda.
  • Fornitore di carte monstruoseUno scriptableobject che contiene i metadati necessari per generare mostri in fasi, più fasi possono essere assegnate a una singola scheda.
  • Dizionario di visualizzazione dell'articoloUno scriptableobject che funziona simile a R2api. articoliIl sistema itemdisplayditionary, può essere utilizzato per aggiungere più gruppi di regole all'esistente Set di regole di visualizzazione degli articoliLe risorse chiave e i prefabbricati di display sono alimentati da
  • Set di regole di visualizzazione del nomeUno scriptableobject che può essere utilizzato per creare un oggetto completo Set di regole di visualizzazione degli articoli Per modelli di personaggi. Le risorse chiave e i prefabbricati di display sono alimentati da Catalogo di visualizzazione articoliSistema all'interno di msu.
  • Serializzabile elitetierdef, funziona come un'astrazione di Elite DEF Sistema all'interno del gioco, può assegnare un moltiplicatore di costo, riferimenti indirizzabili ai livelli di elite del gioco base e alla modalità.
  • UberSkinDefFunziona come un'utilità catch-all per skindefs, implementando il supporto per il sistema skinvfx di r2api e aggiungendo skin al carattere vaniglia

Oggetti compossibili precostruiti

Poiché msu è stato creato con thunderkit in mente, msu fornisce i seguenti composableobjects al tuo progetto:

  • Un semplice La manifestazione Con il necessario Data del manifesto Per dichiarare il tuo mod
  • Una configurazione di La conferenza del paeseUtilizzato per la costruzione pulita e il rilascio del tuo mod
  • Un sistema di tubazioni altamente configurabile:
    • Una pipeline di rilascio che crea automaticamente un file zip pronto per il rilascio del tuo mod.
    • Pipeline generici, che possono essere utilizzati per creare il vostro assembly, creare i vostri assetbundles compressi o non compressi, e staging streamingasset del vostro mod.
    • Una configurazione di pipeline dei contributori, che i contributori possono utilizzare per configurare facilmente una pipeline per la costruzione del vostro mod.

Gestione di configurazioni e token

Creare la configurazione per il tuo mod può essere estremamente verbosa utilizzando le implementazioni predefinite di bepinex, msu implementa un sistema di configurazione in cima a bepinex che ti consente di configurare facilmente qualsiasi cosa.

ConfigureField, ConfiguredVariable e rischio di opzioni

Msu fornisce la seguente astrazione del sistema di configurazione di bepinex:

  • Campo configurativo

    • Un attributo personalizzato che può essere applicato ai campi statici per configurarli automaticamente.
    • Il processo di configurazione utilizza un ID stringa unico che si assegna a un configfile personalizzato per collegare la configurazione al configfile.
    • Il... La sezione di configurazione E. Soprannome Non sono necessari per essere implementati, msu per impostazione predefinita utilizza INFORMAZIONI ConfigNameE... Tipo di dichiarazioneIl nome è La sezione di configurazione
    • Esiste una versione"RiskOfOptions "del campo di configurazione, che crea automaticamente opzioni utilizzando l'API RiskOfOptions. Queste opzioni tuttavia non possono essere fortemente personalizzate a causa della limitazione degli attributi.
  • Variabile configurata

    • La variabile configurata è una classe che rappresenta una variabile che può essere configurata.
    • Può essere utilizzato per creare scenari di configurazione complessi con rischio di opzioni.

Il sistema di formattoken

Legare le modifiche di configurazione ai valori di token è una delle parti migliori della creazione di token utilizzando il codice, tuttavia, la traduzione di questi token può essere difficile da gestire in quanto richiede ai traduttori di codificare le traduzioni direttamente nel file sorgente c#.

Msu fornisce Token di formato Ora puoi scrivere i valori del tuo token utilizzando il sistema di formattazione delle stringhe di c#. Con questo, si può adeguatamente levrage i file json langauge, che i traduttori possono facilmente utilizzare per le traduzioni purché mantengano l'ordine corretto di indicizzazione.

Documentazione e codice di origine

  • La documentazione e il codice di origine possono essere trovati nel repository github di moonstormsharedutil, che può essere trovato Qui...

Le donazioni

Msu è un progetto passionale di Nebby, uno dei membri di teammoonstorm. In quanto tale, lavora nel suo tempo libero su questo per consentire al resto della comunità di creare contenuti incredibili e stupefacenti.

Msu sarà per sempre libero di utilizzare e mai gated dietro paywall, tuttavia, le donazioni sono incredibilmente apprezzate.

ko-fi

Mod che utilizza msu

(Cliccami!)

(nota: clicca sull'icona per aprire una nuova scheda al mod!)

Icona/URL Il nome La descrizione
StarstormIcon Starstorm2 Un sequel di Starstorm 1. Aggiunge nuovi sopravvissuti, meccanica, oggetti, abilità, nemici e altro ancora!
LostInTransitIcon Perso durante il transito Perso in transito è un mod incentrato sul ripristino delle caratteristiche perse a causa del rischio di pioggia 1, attualmente inclusi oggetti.
VarianceAPIIcon API di varianza Varianceapi ti permette di creare varianti per i personaggi, le varianti possono avere diverse trame, luci, abilità e altro ancora.
FortunesFromTheScrapyardIcon Da rilasciare-fortune dalla rottatura Un mod di contenuti espansione-esque che ruota attorno a una società spaziale di terze parti, e visivamente basato su temi di spazzatura e cyberpunk.
RulersOfTheRedPlaneIcon Sovrani del piano rosso Un mod di contenuto generale che si espande sul piano rosso

Grazie e crediti

  • Twiner per la creazione di thunderkit.
  • Idee e harb per aiutare con varie domande di codifica.
  • Kingenderbrine e runefox237 per il ror2skinbuilder, che è stato utilizzato come base per il sistema vanillaskindef.
  • Groovesalad per aiutare durante la concettualizzazione del sistema modulare e fornire gli stubbedshader.
  • Inknownglaze per il logo di msu
  • Il team di Starstorm 2, per aver permesso a Nebby di andare fuori dall'estremità profonda e creare msu in primo luogo.
  • La fortuna del team di scrapyard, per credere nei miei obiettivi e utilizzare msu per il loro mod.
  • KevinFromHPCustomerService, per la creazione dei sistemi di moduli originali che alla fine divennero msu 2.0
  • Tutti del rischio di pioggia 2 comunità per aver apprezzato il mio lavoro.
Questo strumento è fornito da terze parti [bufftool]Icona di attenzione

Scarica subito le mod

Installa LagoFast, avvia Risk of Rain 2 e gioca con le mod che ami.