Minecraft Mod DevLog#2 創(chuàng)建Block,文件之間的關(guān)系
本次的Java內(nèi)容添加了一個(gè)新的BlockInit類,這個(gè)類主要負(fù)責(zé)對(duì)于Block對(duì)象的注冊(cè):
添加一個(gè)Block需要干兩件事
其實(shí)Block在Item欄目中也會(huì)出現(xiàn),所以要添加進(jìn)入Item
Block也需要注冊(cè)到Block的管理list,也就是DeferredRegistry中
所以核心在于這個(gè)方法:
注冊(cè)的regsiter方法中其實(shí)是維護(hù)了一個(gè)map結(jié)構(gòu):
register方法需要的Suppiler參數(shù)要返回一個(gè)RegistryEntry對(duì)象,Item,BlockItem都是這個(gè)對(duì)象的子類(或者說(shuō)實(shí)現(xiàn)了接口)。
然后說(shuō)一下Log#1沒(méi)有說(shuō)明的json文件結(jié)構(gòu),以及映射關(guān)系

對(duì)于Item,需要添加同名的json文件和同名的texture,具體的格式是這樣:
textures中指定了當(dāng)前的item的紋理是指定的png
對(duì)于block有點(diǎn)特殊,因?yàn)閎lock可能會(huì)根據(jù)狀態(tài)(破損程度)設(shè)置不同的紋理:
所以需要首先在blockstates下面添加一個(gè)同名的文件,然后在block文件夾下:
cube_all表示各個(gè)面都是一樣的紋理,all指定了紋理
最后加一個(gè)翻譯,不然就是默認(rèn)的key作為item的名字,比如"item.tutorialmod.titanium_ingot"