MC1.12.2Forge制作盔甲




主要分為三個(gè)步驟:
制作ArmorBase,盔甲物品基類(lèi)。
在物品列表類(lèi)里添加盔甲質(zhì)地和盔甲物品。
提供對(duì)應(yīng)的貼圖,尤其是盔甲的貼圖。
基類(lèi)
盔甲物品基類(lèi)沒(méi)有太多好說(shuō)的。ItemArmorBase,繼承ItemArmor即可。
如常地繼承父類(lèi)最常用的構(gòu)造函數(shù),通過(guò)RegisterUtil的內(nèi)容實(shí)現(xiàn)自動(dòng)注冊(cè)。如果你不知道這個(gè)Util在干什么,可以通過(guò)鏈接來(lái)看我對(duì)應(yīng)的教程。
這里面我填給父類(lèi)的renderindex參數(shù)寫(xiě)死為5,實(shí)際上這個(gè)地方是亂填的,填什么都無(wú)所謂,沒(méi)有用。我在封裝的時(shí)候省掉了這個(gè)參數(shù),你不這樣做,繼續(xù)搞四個(gè)參數(shù)的構(gòu)造函數(shù)也可以。

構(gòu)造對(duì)象
然后是在ModItems里寫(xiě)盔甲質(zhì)地。雖說(shuō)寫(xiě)在別處也行,但我推薦寫(xiě)在ModItems。
盔甲質(zhì)地ArmorMaterial不能直接new,需要通過(guò)EnumHelper來(lái)構(gòu)造。
第一個(gè)參數(shù)是注冊(cè)名,為了防止和別人家撞,最好是在前面加入自己的modid,且以冒號(hào)鏈接。如:haha:admantite_armor。不叫armor也行,但我推薦叫一下,以免突然和什么沖突了。
第二個(gè)參數(shù)是材質(zhì)名。為了確保他去讀取你的modid下的資源而非minecraft這個(gè)大家隨時(shí)可能沖突的域,確保你這里的開(kāi)頭是你自己的modid加冒號(hào)。這個(gè)可以和前面一致,也可以不一致。你可能有好幾套盔甲有同一套貼圖,這時(shí)候他們就會(huì)具有不同的注冊(cè)名,但有相同的材質(zhì)名。
第三個(gè)100,是耐久度基礎(chǔ)值。你固然可以去itembase里強(qiáng)行覆蓋耐久值,但我不推薦這樣做,我建議維持原版的耐久比例。
第四個(gè)數(shù)組是頭、身、腿、鞋四個(gè)位置的盔甲值。注意,鉆石套是滿的,如果你的某個(gè)位置超過(guò)了鉆石套的數(shù)值,就會(huì)導(dǎo)致盔甲值溢出。溢出的護(hù)甲實(shí)際上沒(méi)有意義,盡管1.12.2里允許生物獲得最多30點(diǎn)護(hù)甲,但超過(guò)20的護(hù)甲就不參與計(jì)算了,你可以去參考wiki的護(hù)甲減傷公式。MC的護(hù)甲計(jì)算挺爛的,我只建議你最強(qiáng)的護(hù)甲提供和鉆石一樣的盔甲值。
第六個(gè)參數(shù)是附魔適應(yīng)性,越高越容易在附魔的時(shí)候獲得額外的附魔效果。你可以參考原版的數(shù)值——鐵9,鉆10,鎖子12,皮革15,黃金25
第七個(gè)參數(shù)是穿上去時(shí)候的音效套裝。如果你懶得做新的音效的話,就抄原版的音效就行。
第八個(gè)參數(shù)是盔甲韌性。參考鉆石甲。具體減傷機(jī)制參閱wiki的減傷公式,比較復(fù)雜我就不展開(kāi)了。
后面還有個(gè)setRepairMaterial,是設(shè)置它可以用什么維修,你可以不設(shè)置。注意,如果你要設(shè)置的話,對(duì)應(yīng)的物品必須定義在這個(gè)盔甲材質(zhì)的前面,也就是代碼里那個(gè)BOW_2的對(duì)象構(gòu)造必須在這一行的上面,否則這里會(huì)傳進(jìn)去一個(gè)null而設(shè)置失敗。維修這玩意可以強(qiáng)行覆寫(xiě)而搞的很復(fù)雜,但我推薦新手直接復(fù)用原版的這一套。
實(shí)際構(gòu)造物品的對(duì)象很容易。
分別定義四個(gè)物品對(duì)應(yīng)四個(gè)部位就行。
四個(gè)部位可以不齊,比如某個(gè)套裝只有頭盔,這是允許的。同理,一個(gè)套裝有多個(gè)頭盔也是允許的。原版其實(shí)并沒(méi)有特別強(qiáng)的套裝的概念,只有質(zhì)地的概念。這不是泰拉瑞亞那種穿齊一套會(huì)有額外效果的游戲。
我這里只有三個(gè)參數(shù),如果你在封裝的時(shí)候沒(méi)有省略renderIndex那個(gè)整數(shù),這里就要補(bǔ)一個(gè)整數(shù)進(jìn)去占位,內(nèi)容如前所述,隨便填就行。
關(guān)于材質(zhì)
道具圖標(biāo)我就不多說(shuō)了,視頻教程里有,和普通物品沒(méi)有區(qū)別。
身上渲染的盔甲材質(zhì)放到自己包的textures/models/armor下,路徑不能搞錯(cuò),一個(gè)s都不能多,也不能少。models有s,armor沒(méi)s,拼錯(cuò)了就等著紫黑塊吧。
貼圖有兩張,假設(shè)你的材質(zhì)名是haha:admantite_armor,那么兩張圖就分別叫
admantite_armor_layer_1.png? ?外層,腿甲以外用到
admantite_armor_layer_2.png??內(nèi)層,只有腿甲用到,只用腿部
不能拼錯(cuò),搞錯(cuò)了會(huì)紫黑塊。
順便一提,這玩意和皮膚其實(shí)不太一樣。雖然有兩層,但并不是都用了。頭盔(影響腦袋)、胸甲(影響身體和手臂)、鞋子(影響腿部)只有外層用了,護(hù)腿只有里層(影響)用了。如果你想通過(guò)雙層材質(zhì)搞點(diǎn)立體感,那只能通過(guò)鞋子和腿去搞下半身的。上半身的沒(méi)法立體,你就算畫(huà)了layer_2的身體部分也沒(méi)卵用,不會(huì)顯示的。