百合文库
首页 > 网文

Rimworld的MOD教程#2#Defs文件说明

2023-03-09MOD教程环世界Rimworld 来源:百合文库
不管是简单的设计还是负责的设计,Defs是99%都会用到的,这里我会用多个例子来讲解
开发工具
这里先说个题外话,作为MOD开发者,参考原设计是很重要的一环
比如我想自己做个发光的墙,需要复制参考原本的数据,一个一个文件的去翻或者靠记忆是很傻的行为,我们需要一个可以搜索文件内容的工具
我个人是使用IntelliJ IDEA,演示一下几秒内找到数据
先把Core复制到Mod里,只保留Defs和LanguagesChineseSimplified文件夹方便随时参考
然后开始操作
搜索”墙“
根据翻译标准,一般都是<物体ID.label>写的是翻译结果
我找到墙的ID是Wall
(其中可以看到搜索结果非常少)
然后搜索Wall
根据Defs标准,ID都是写为<defName>物体ID</defName>
可以很快锁定到文件
(其中如果双击中间的结果条目,可以直接打开文件并锁定到匹配到的那行)
找到了
Defs的结构
言归正传,先要了解Defs的结构
Defs的结构
如图,1,2,8这3行代码是固定的,直接对着Core参考就行,以后不再说明
定义类型
是决定要定义的东西是什么玩意
比如常见在物体ThingDef,天赋TraitDef...等等
各种类型Defs定义
Name
这个结构体可以作为模板提供给其他定义参考,搭配ParentName来使用的
ParentName
这个结构体参考于哪个定义,搭配Name使用,这叫做继承
这2个属性主要是减少重复定义的工作
简单来说,我复制了一个定义1内容,取名叫A
在这个定义1上写Name=“A”
然后把这个内容复制给另一个定义2
在另个定义2上写ParentName=“A”
然后定义2会先填充定义1的内容,然后把自己定义2的内容覆盖进去
继承效果,游戏会把定义的东西解析为右边
Abstract
这个属性表示该定义是抽象的,并不会被游戏加载,只作用于定义的时候提供模板数据
一般这个东西是搭配上边的Name,ParentName来使用
猜你喜欢