我的世界Minecraft 1.19 Mod開發(fā)教程分享-08-blockstate方塊狀態(tài)。
看一下原版的紅石礦的代碼
雙擊shift,會(huì)打開一個(gè)搜索欄,輸入redstoneoreblock打開

可以看到紅石礦繼承與Block,具有一個(gè)LIT的boolean屬性,該屬性表示了紅石礦是否點(diǎn)亮

在該類中有這樣的一個(gè)方法,第一個(gè)參數(shù)表示方塊的狀態(tài),方塊所在的世界,以及方塊的位置。

第一個(gè)方法spawnParicles是在方塊的周圍產(chǎn)生粒子效果。
通過getvalue判斷是否處于激活狀態(tài)
若沒處于激活狀態(tài)那么就將LIT設(shè)置為激活狀態(tài)。
可以看到,當(dāng)玩家攻擊,走過,以及use時(shí)候都會(huì)調(diào)用該方法點(diǎn)亮紅石礦。


我們來自己做一個(gè)具有不同狀態(tài)的方塊
創(chuàng)建如下的目錄和文件

該類繼承Block

我們首先創(chuàng)建一個(gè)Boolean的屬性用于表示燈光的開啟和關(guān)閉,

在該類中加入如下的代碼:

注冊(cè)自定義的方塊

其中的lightLevel是根據(jù)state的LIT的狀態(tài)返回是15亮度還是0亮度。

創(chuàng)建JSON
創(chuàng)建如下的JSON,描述該方塊的變體和model的位置,具有亮和不亮兩個(gè)變體

語言文件加入內(nèi)容。

在model/block中加入json

on.json
off.json
models/item中加入JSON

在加入貼圖即可。貼圖的下載地址:
https://url.kaupenjoe.net/yt351/assets


?測(cè)試
啟動(dòng)游戲

放下來后是亮的

右鍵后熄滅


小結(jié)
介紹了方塊的狀態(tài),以及如何加入狀態(tài),如何寫變體的配置model和textures