MDT模組消耗器制作

消耗器在MDT很是常見,如消耗物品加工的工廠、使用和產(chǎn)生電能的建筑等等都會用到它。本教程不會放過多的源碼(給路徑),需自己去翻。
注:消耗器是給方塊建筑用的,不要在其他不屬于方塊的類型的內(nèi)容里加消耗器

消耗器 Consumer
在了解下面內(nèi)容前,應(yīng)該要知道他們的最后的歸屬類型 Consume,三個屬性。方法就不用想了,那不是Json能寫的
但是這個TODO意味著后期這個可能會改變,當前教程針對v137可用
optional: 是否為一個可選的消耗
booster: 是否為一個增益的消耗(也要 optional 為 true)
update: 是否自動更新(?

這是ContentPhaser里的一段代碼,這個文件里的內(nèi)容就是轉(zhuǎn)換json模組的
第一行判斷:有 consumes 字段且存儲內(nèi)容為 Object 類型({})
后面的循環(huán):查找 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/導(dǎo)致方塊爆炸物品過濾
一般不要單獨使用
作為對象(world\consumers\ConsumeItemExplode.java)
damage: 受到傷害時扣血量
threshold: 在物品 explosiveness 大于本值情況下,才會有幾率扣血且越大扣血幾率越大
baseChance: 基礎(chǔ)扣血幾率,扣血幾率見下(前提是 反應(yīng)堆爆炸 開啟)

items/消耗物品堆
值為數(shù)組: 消耗一堆東西,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/消耗液體組
作為數(shù)組: 消耗一堆液體,LiquidStack[]類型
作為對象(world\consumers\ConsumeLiquids.java)

coolant/冷卻液體消耗過濾
作為對象(world\consumers\ConsumeCoolant.java)
maxTemp: 液體 temperature 最大值
maxFlammability: 液體 flammability 最大值。下方是條件

Power 電
power/電力消耗
作為數(shù)值: float類型

powerBuffered/電力存儲
作為數(shù)值: float類型
這個數(shù)值不作處理,是多少就是多少

屬性分類
這個不是在游戲里的分類,而是教程相對游戲做的分類
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

我這次使用的手機端網(wǎng)頁版電腦版編寫,雖然流暢了,但這個縮放弄得頭暈,主要原因還是因為電腦卡,加個顏色或大小就卡一下,我實在受不了,字數(shù)多了以后敲完字還要等個幾秒才能出字。9月后更新速度就會慢了開學(xué)了