欢迎光临散文网 会员登陆 & 注册

MDT模组消耗器制作

2022-08-17 11:19 作者:NullPointerErr  | 我要投稿

消耗器在MDT很是常见,如消耗物品加工的工厂、使用和产生电能的建筑等等都会用到它。本教程不会放过多的源码(给路径),需自己去翻。

注:消耗器是给方块建筑用的,不要在其他不属于方块的类型的内容里加消耗器

消耗器 Consumer

在了解下面内容前,应该要知道他们的最后的归属类型 Consume,三个属性。方法就不用想了,那不是Json能写的

但是这个TODO意味着后期这个可能会改变,当前教程针对v137可用

  • optional: 是否为一个可选的消耗

  • booster: 是否为一个增益的消耗(也要 optional 为 true)

  • update: 是否自动更新(?

这是ContentPhaser里的一段代码,这个文件里的内容就是转换json模组的

第一行判断:有 consumes 字段且存储内容为 Object 类型({})

后面的循环:查找 consumes 的孩子,若有孩子不属于任何一个,抛出异常

物品 Item

item/单个物品

值作为一个字符串,添加一个物品的名称,例:

itemCharged/放电物品消耗过滤

值作为一个对象(world\consumers\ConsumeItemCharged.java),例:

  • minCharge: 消耗所需物品 charge 最低值

itemFlammable/燃烧物品消耗过滤

值作为一个对象(world\consumers\ConsumeItemFlammable.java)

  • minFlammability: 消耗物品 flammability 最低值

itemRadioactive/放射物品消耗过滤

作为一个对象(src\world\consumers\ConsumeItemRadioactive.java)

  • minRadioactivity: 消耗物品 radioactivity 最低值

itemExplosive/爆炸物品消耗过滤

作为对象(world\consumers\ConsumeItemExplosive.java)

  • minExplosiveness: 消耗物品 explosiveness 最低值

itemExplode/导致方块爆炸物品过滤

一般不要单独使用

作为对象(world\consumers\ConsumeItemExplode.java)

  • damage: 受到伤害时扣血量

  • threshold: 在物品 explosiveness 大于本值情况下,才会有几率扣血且越大扣血几率越大

  • baseChance: 基础扣血几率,扣血几率见下(前提是 反应堆爆炸 开启)Mathf.chance(build.delta()%20*%20baseChance%20*%20Mathf.clamp(item.explosiveness%20-%20threshold))

items/消耗物品堆

  • 值为数组: 消耗一堆东西,ItemStack[]类型

  • 值为对象(world\consumers\ConsumeItems.java):

  • items: 消耗的物品

液体 Liquid

每一个液体 消耗/过滤 器都有 amount 字段

liquidFlammable/可燃液体消耗过滤

值为对象(world\consumers\ConsumeLiquidFlammable.java)

  • minFlammability: 消耗液体 flammability 最小值

liquid/消耗液体

值为对象(world\consumers\ConsumeLiquid.java)

  • liquid: 消耗的液体

  • amount: 每帧消耗量(帧一般取 1/60 秒)

liquids/消耗液体组

  • 作为数组: 消耗一堆液体,LiquidStack[]类型

  • 作为对象(world\consumers\ConsumeLiquids.java)

coolant/冷却液体消耗过滤

作为对象(world\consumers\ConsumeCoolant.java)

  • maxTemp: 液体 temperature 最大值

  • maxFlammability: 液体 flammability 最大值。下方是条件%5Cleft(liquid.coolant%5Cright)%5Cland%5Cleft(%5Clnot%20liquid.gas%5Cright)%5Cland%5Cleft(liquid.temperatrue%5Cle%20maxTemp%5Cright)%5Cland%5Cleft(liquid.flammability%3CmaxFlammability%5Cright)

Power 电

power/电力消耗

  • 作为数值: float类型


powerBuffered/电力存储

作为数值: float类型

这个数值不作处理,是多少就是多少

属性分类

这个不是在游戏里的分类,而是教程相对游戏做的分类

Consume

  • boolean: optional, booster, update

item | items

拓展 Consume

  • ItemStack[]: items

itemCharged

拓展(ConsumeItemFilter 拓展 Consume)

  • float: minCharge

itemFlammable

拓展 ConsumeItemFilter

  • float: minFlammability

itemRadioactive

拓展 ConsumeItemFilter

  • float: minRadioactivity

itemExplosive

拓展 ConsumeItemFilter

  • float: minExplosiveness

itemExplode

拓展 ConsumeItemFilter

  • float: preshold, damage, baseChance

liquidFlammable

拓展[ConsumeLiquidFilter拓展 (ConsumeLiquidBase拓展Consume) ]

  • float: minFlammability

coolant

拓展 ConsumeLiquidFilter

  • float: maxTemp, maxFlammability

liquid

拓展 ConsumeLiquidBase

  • Liquid: liquid

liquids

拓展 Consume

  • LiquidStack[]: liquids

power|powerBuffered

拓展 Consume

  • float: usage, capacity

  • boolean: buffered

我这次使用的手机端网页版电脑版编写,虽然流畅了,但这个缩放弄得头晕,主要原因还是因为电脑卡,加个颜色或大小就卡一下,我实在受不了,字数多了以后敲完字还要等个几秒才能出字。9月后更新速度就会慢了开学了

MDT模组消耗器制作的评论 (共 条)

分享到微博请遵守国家法律