Rimworld Mod教程 清单Recipe篇 第三讲:用WorkGiver使工作台正常工作

本讲讲的是WorkGiver,一个用于给殖民者分配工作的东西,也是让工作台正常工作不必可少的东西。许多小伙伴在制作一个新的工作台后,会出现小人完全无法与其互动的情况,也无法强制小人进行工作台的操作,这就是缺少WorkGiver

如上图所示,下面的“医生”、“修养”、“保育”等等的均为工作类型,把光标放在上面可以看见该类型下对应的所有的WorkGiver

原版所有的WorkGiver在这个文件:Core\Defs\WorkGiverDefs\WorkGivers.xml当然WorkGiver与多种工作都有关系,本期仅讲述与工作台相关的

本期以炉灶相关的WorkGiver为例,也就是上图中“烹饪”类型下的第一个WorkGiver“在炉灶烹饪食物”。看到文件的第490行至506行

<WorkGiverDef>

    <defName>DoBillsCook</defName>

    <label>cook meals at stove</label>

    <giverClass>WorkGiver_DoBill</giverClass>

    <workType>Cooking</workType>

    <priorityInType>100</priorityInType>

    <fixedBillGiverDefs>

      <li>ElectricStove</li>

      <li>FueledStove</li>

    </fixedBillGiverDefs>

    <verb>cook</verb>

    <gerund>cooking at</gerund>

    <requiredCapacities>

      <li>Manipulation</li>

    </requiredCapacities>

    <prioritizeSustains>true</prioritizeSustains>

  </WorkGiverDef>

defName与label是def基本功,不再讲述。这里的label会显示在“工作一栏”,本文第一张图片的“在炉灶烹饪食物”、“屠宰尸体”就是label了

giverClass:WorkGiver_DoBill是与工作台相关的class,直接使用即可

workType:工作类型,也就是上文提到的工作类型。原版给出了20种工作类型,与工作台相关的工作类型直接给出给大家:Cooking烹饪,Smithing锻造,Tailoring缝制,Art艺术,Crafting制作,注意区分大小写。

priorityInType:优先度,指的是同一个工作类型下不同WorkGiver的优先度。优先度越高,小人越会优先去执行该工作,同时该工作label显示也越靠前。

fixedBillGiverDefs:是一个List,在工作台这里,把相关的所有工作台defName塞进去

verb:填文本,例子中原版翻译是“烹饪”

gerund:填文本,例子中原版翻译是“烹饪于”

requiredCapacities:需求的小人健康状态,例子中的Manipulation指的是小人的“操作能力”,如果对应的需求无法满足,就不会给这个小人分配任务。

prioritizeSustains:小人会把该任务作为优先任务,不会被打断。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值