作者:TeamMoonstorm最后更新:2021-09-11 03:40:24257.0万530KB

R2API_ArtifactCode

R2API_Addressables
加载ScreenSpriteFix

R2API_Colors
MoonstormSharedUtils,也称为MSU,是一个API,旨在围绕ThunderKit系统创建内容模块。
![]()
最初是为更新而构建的API和框架的一部分 Starstorm2 为了获得更好的开发体验,ThunderKit设置已经成倍增长,成为自己独立的库,因此任何希望使用ThunderKit创建大型内容模块的人都可以使用它。
MSU为以下关于国防部发展和管理的目标而奋斗。
虽然只有代码的mod在运行时并且通常是在清醒时创建它们的内容(预设、ScriptableObjects等),但这会导致被称为“永远黑屏”的问题,其中大多数mod的系统在游戏的加载屏幕开始之前就被初始化了。这给人一种游戏被冻结了,对健忘的用户没有反应的想法。虽然这是真的,但管理来自Assetbundles的定制内容和游戏系统之间的加载和交互是很困难的。
MSU通过内容件、内容件提供者和模块框架的三位一体解决了这个问题。这个三元组用于允许mod在加载屏幕期间异步加载他们的资产,并让他们与基础游戏的系统正常工作。
,它表示绑定到特定 UnityEngine.Object.
内容件<T>
IArtifactContentPiece,对于 ArtifactDefsIEquipmentContentPiece 设备定义
IEliteContentPiece 管理 精英定义 与特定设备相关联。IItemContentPiece 项目定义.
IVoidItemContentPiece 管理虚空幸存者中添加的物品损坏系统。IItemTierContentPiece为了 ItemTierDefsISceneContentPiece 场景定义.,表示绑定到特定类型的 UnityEngine.MonoBehaviour
IGameObjectContentPiece<TComponent>
ICaracterContentPiece 为了 人物
IMonsterContentPiece 可以用来对付敌对的怪物ISurvivorContentPiece可用于管理新的幸存者。交互内容件 为了 可互动的.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的新标签!)
立即下载模组
下载客户端搜索雨中冒险2后使用Mod大师工具。