Rimworld Mod教程 基础篇 第六讲:Defs文件

该文件夹用于存放defs文件,每个文件内会有一个或多个def数据体,以数据库的形式被程序读取来形成mod的新内容。

Defs数据体有ThingDef,HediffDef,RecipeDef等的区分,不同的def对应不同的新内容,如刚才的三个分别对应新物品,新的健康状态和新的制作配方。

Def的内容依附游戏已有的庞大框架,学习他们就是本教程的主体部分,从此我们将用其不断创造新内容来完成我们的mod。不同def以后会分别详细讲解,此章节我先接收所有def共有的数据。

<?xml version="1.0" encoding="utf-8" ?>
<Defs>
  <DamageDef ParentName="Bomb">
    <defName>XFUnused_BombWithDirection</defName>
    <label>炸</label>
  </DamageDef>

  <DamageDef ParentName="Bomb">
    <defName>XFUnused_BombWithDirectionSecond</defName>
    <label>炸2</label>
    <workerClass>MParmorLibrary.Unused.DamageWorker_ExplosionWithDirection</workerClass>
  </DamageDef>
</Defs>

第一行是XML固定识别码,不可丢

第二行是Defs,我们所有的def都要被这个东西包住(看第二行与最后一行)

然后中间的就是每一个数据体了

<defName/>

该数据是一个def的基础,表示了一个def的识别名,就像身份证号一样,相同类型的def间defname必须不同,而不同类型间则可以相同。

请注意,这里的特异性不只适用于你的项目,拿thingdef举例,所有已启用的mod中的所有thingdef都不允许重复,当然也不允许与原版的重复——毕竟原版本身就被视为一个mod。

为了解决这种极易出现的bug,所有制作者均会在defname填写时加上一个独特的前缀,如游戏里“钢铁”的defname为”Steel”,那么我得项目里的新钢铁就可以这么写:

<defName>XFMLI_Steel<defName>

其中XF是“旋风”的缩写,MLI是“mod lesson instance”的缩写。

当然,只要你有自己解决重名的方法,如何命名是无所谓的,但整体必须遵循仅由:1.大小写英文(defName是大小写敏感的) 2.数字 3.下划线 组成,且最后一个字不能为数字。而除了程序的这些硬性要求之外,我们还有一些自己的规范:

由于不允许使用空格,在面对多个单词的时候有些人会选择使用下划线:

<defName>XFMLI_Beautiful_flower_for_you</defName>

其实显得过于冗长和散漫,我更推荐用“驼峰命名法”,而下划线应起到类似区分前缀后缀和本体的作用:

<defName>XFMLI_BeautifulFlowerForYou</defName>

将每个单词首字母大写,删去单词间的空格,就成了驼峰命名法。其中首字母大写的为:“大驼峰”,我们使用这种。

首字母小写的为“小驼峰”,大多数的数据名均为这种类型,若制作时报错请检查拼写问题。

<label>flower</label>

<description>A flower for someone you love</description>

以上数据中,label为显示名,description为介绍,两者的填写没有绝对要求,可以使用空格、汉字、特殊字符,但不允许使用{} [] <>。这类文本数据在使用翻译包时将可以被替换,我们会在后面学到。这两种数据允许重名,在部分def中他它们甚至不会被调用。而在需要调用它们的def中,缺少它们将会导致报错。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值