作者:TeamMoonstorm最後更新:2021-09-11 03:40:242.6M530KB
MoonstormSharedUtils,也稱為MSU,是一個API,旨在圍繞ThunderKit系統創建內容模塊。
![]()
最初是為更新而構建的API和框架的一部分 Starstorm2 為了獲得更好的開發體驗,ThunderKit設置已經成倍增長,成為自己獨立的庫,因此任何希望使用ThunderKit創建大型內容模塊的人都可以使用它。
MSU為以下關於國防部發展和管理的目標而奮鬥。
雖然只有代碼的mod在運行時並且通常是在清醒時創建它們的內容(預設、ScriptableObjects等),但這會導致被稱為“永遠黑屏”的問題,其中大多數mod的系統在遊戲的加載屏幕開始之前就被初始化了。 這給人一種遊戲被凍結了,對健忘的用戶沒有反應的想法。 雖然這是真的,但管理來自Assetbundles的定製內容和遊戲系統之間的加載和交互是很困難的。
MSU通過內容件、內容件提供者和模塊框架的三位一體解決了這個問題。 這個三元組用於允許mod在加載屏幕期間異步加載他們的資產,並讓他們與基礎遊戲的系統正常工作。
,它表示綁定到特定 UnityEngine.Object.
內容件<T>
IArtifactContentPiece,對於 ArtifactDefsIEquipmentContentPiece 設備定義
IEliteContentPiece 管理 精英定義 與特定設備相關聯。IItemContentPiece 項目定義.
IVoidItemContentPiece 管理虛空倖存者中添加的物品損壞系統。IItemTierContentPiecefor ItemTierDefsISceneContentPiece 場景定義.,表示綁定到特定類型的 UnityEngine.MonoBehaviour
IGameObjectContentPiece<TComponent>
ICaracterContentPiece for 人物
IMonsterContentPiece 可以用來對付敵對的怪物ISurvivorContentPiece可用於管理新的倖存者。交互內容件 for 可互動的.IVanillaSurvivorContentPiece,它代表了對香草倖存者的修改。 類還可以實現 IContentPackModifier,用於直接與您的mod的ContentPack接口。內容件 有基本遊戲的課程。 系統。IContentProvider對於一個模塊,您可以將其稱為 初始化 方法來獲取一個協程,該協程將以異步方式初始化您的內容。工件模塊 IArtifactContentPieces,ArtifactModule與 R2API.ArtifactCode 給遊戲添加新的神器代碼。 它還將處理工件的正確掛鈎和脫鈎,因此只有當工件被啟用時,它的掛鈎才被啟用。字符模塊,管理 ICaracterContentPiece, ISurvivorContentPiece IMonsterContentPiece,模塊與 R2API.Director 在遊戲的各個階段處理怪物的產卵。設備模塊 IEquipmentContentPiece和 IEliteContentPiece該模塊利用單個鈎子來管理設備的執行調用。交互模塊,管理 交互內容件,模塊與 R2API.Director 為遊戲的各個階段處理可交互的生成。項目模塊 IItemContentPiece 和 IVoidItemContentPiece.它自動處理項目損壞。項目模塊 IItemTierContentPiece,它會在運行開始時自動為該層創建可用下拉列表的集合。場景模塊,管理 ISceneContentPiece,它與 R2API.階段 來處理在遊戲中添加一個階段。香草倖存者模塊,管理 IVanillaSurvivorContentPiece.用於為基礎遊戲的倖存者添加新內容(皮膚、技能等) 提供 內容件s到模塊。
IContentPieceProvider 管理可用性方案的接口,MSU的 內容有用 類包含只需分析程序集即可從頭創建它們的方法。MSU的一個關鍵目標是與Rain 2系統的風險一起工作,製作與它一起工作的內容,而不是強迫基礎遊戲的系統與我們的系統一起工作。 因此,MSU提供了一個強大的系統來與遊戲的關鍵系統(如裝備、buffs、物品等)進行交互。
為了避免對常用類型進行不必要的掛鈎,MSU提供了可在以下系統的組件內部使用的接口:
IOnIncomingDamageOtherServerReciever,它作為TakeDamage上的鈎子,可以用來修改受害者的傷害。統計項目行為,作為重新計算統計信息的掛機接口,包含在統計信息重新計算之前和之後運行的方法。iBodyStatArg修改器,一個接口,它作為 R2API.重新計算統計數據的GetStatCoefficient委託。BaseItemMasterBehaviour,很像它的Body對應物(基本身體行為)用於創建在獲得指定項目時添加到CharacterMaster的行為。
BaseBuffBehaviour是一個可用於管理Buff效果的組件。 出於性能原因,當buff被移除時,BaseBuffBehaviours不會被破壞,相反,當buff第一次被主體獲得時,會添加該行為,當buff堆棧耗盡時,該行為是 殘疾人之後,當身體再次接收buff時,行為是 已啟用這減少了垃圾收集器的工作量,總體上提高了系統的性能。
由於MSU的目標圍繞着在編輯器中工作,MSU捆綁了大量關於為遊戲創建內容的實用程序。
MSU提供了一個自定義ImportExtension,可用於將遊戲中的WWise程序集列入黑名單,允許您在項目中使用WWise集成系統。
MSU提供了以下ScriptableObjects,允許在編輯時創建“僅運行時”內容。
可實現解鎖定義,作為UnlockableDef和AchievementDef系統的抽象,它的 解鎖定義 這是通過成就解鎖的。點BuffDef,作為DotDef的抽象,並自動將DotDef分配給其指定的BuffDef。擴展刪除定義,作為 精英定義 類,支持自動添加到基礎遊戲層,精英坡道,覆蓋材料,等等。交互卡提供程序一個ScriptableObject,它包含分階段生成可交互性所需的元數據,多個階段可以分配給單個卡。MonsterCardProvider,一個ScriptableObject,包含分階段產卵怪物所需的元數據,多個階段可以分配給一張卡。項目顯示字典一個ScriptableObject,其工作方式類似於 R2API.項目的ItemDisplayDictionary系統,它可用於將多個規則組添加到現有的 ItemDisplayRuleSets,關鍵資產和顯示預設由 NamedItemDisplayRuleSet、ScriptableObject,可用於創建完整的 ItemDisplayRuleSet 對於角色模型。 關鍵資產和顯示預設由 ItemDisplayCatalogMSU內部的系統。SerializableEliteTierDef,作為 精英DEF 系統內的遊戲,可以分配一個成本乘數,可尋址參考基本遊戲精英層和模式。UberSkinDef,作為SkinDefs的一個包羅萬象的實用程序,實現了對R2API的SkinVFX系統的支持,並向普通角色添加皮膚由於MSU的創建考慮到了thunderkit,MSU為您的項目提供了以下ComposableObjects:
清單 用必要的 艙單日期 用於聲明您的mod路徑引用這是用於乾淨的構建和發布你的mod使用默認的BepInEx實現,為你的mod創建配置可能會非常冗長,MSU在BepInEx之上實現了一個配置系統,允許你輕鬆地配置任何東西。
MSU提供了BepInEx配置系統的以下抽象:
配置字段
配置部分 和 外號 不需要實現,MSU默認使用 會員信息 配置Name,以及 聲明類型的名稱為 配置部分配置變量
將配置更改綁定到令牌值是使用代碼創建令牌的最佳部分之一,但是,這些令牌的翻譯可能很難管理,因為它需要翻譯人員將翻譯直接編碼到C#源文件中。
MSU提供 格式令牌 系統,您現在可以利用C#的字符串格式化系統編寫令牌的值。 有了這個,您可以正確地引導JSON語言文件,只要保持正確的索引順序,翻譯人員就可以輕鬆地使用這些文件進行翻譯。
MSU是TeamMoonstorm成員之一Nebby的一個激情項目。 因此,他在空閑時間致力於此,讓社區的其他人創造出令人驚嘆和敬畏的內容。
MSU將永遠免費使用,永遠不會被封閉在付費牆後面,然而,捐贈是令人難以置信的感謝。
(注意:點擊圖標打開Mod的新標籤!)

立即下载模组
安裝 LagoFast,啟動 Risk of Rain 2 並暢玩你喜愛的模組。