方塊接口:Block
?彼得兔
更新時間: 2024-08-27 11:04:56
具體函數名及描述如下:序號?? ?函數名?? ?函數描述
1?? ?isSolidBlock(...)?? ?是否是固體方塊
2?? ?isLiquidBlock(...)?? ?是否是液體方塊
3?? ?isAirBlock(...)?? ?是否是氣體方塊
4?? ?getBlockID(...)?? ?獲取block對應id
5?? ?setBlockAll(...)?? ?設置blockalldata 更新+通知
6?? ?getBlockData(...)?? ?獲得blockdata
7?? ?destroyBlock(...)?? ?摧毀方塊 dropitem:掉落道具(默認false,不掉落)
8?? ?placeBlock(...)?? ?放置方塊
9?? ?replaceBlock(...)?? ?替換方塊
10?? ?setBlockAllForUpdate(...)?? ?設置blockalldata 通知周圍方塊
11?? ?setBlockAllForNotify(...)?? ?設置blockalldata 更新當前位置方塊
12?? ?setBlockSettingAttState(...)?? ?設置方塊設置屬性狀態
13?? ?getBlockSettingAttState(...)?? ?獲取方塊設置屬性狀態
14?? ?getBlockSwitchStatus(...)?? ?獲取功能方塊的開關狀態
15?? ?setBlockSwitchStatus(...)?? ?設置功能方塊的開關狀態
16?? ?getBlockDataByDir(...)?? ?通過方向獲取方塊data值
17?? ?getBlockPowerStatus(...)?? ?獲取方塊的通電狀態
18?? ?randomBlockID(...)
獲取隨機方塊id
19?? ?GetBlockDefName(...)
獲取方塊名稱
20?? ?GetBlockDefDesc(...)
獲取方塊描述
21?? ?GetBlockFacade(...)
獲取方塊外觀
22?? ?PlayAct(...)
微縮方塊播放動作
23?? ?ReplaceBluePrint(...)
放置藍圖
?
isSolidBlock
參數及類型:x,y,z:number
返回值及類型:ErrorCode.OK
該方法的主要作用:是否為固體方塊具體使用案例如下:
--判斷(0,0)高度6的位置是不是固體方塊
local result=Block:isSolidBlock(0,6,0)
if result==0 then--是固體方塊
?? ?Chat:sendSystemMsg("坐標(0,0)高度6的位置是固體方塊")
else--不是固體方塊
?? ?Chat:sendSystemMsg("坐標(0,0)高度6的位置不是固體方塊")
end
Lua
isLiquidBlock
參數及類型:x,y,z:number
返回值及類型:ErrorCode.OK
該方法的主要作用:是否為液體方塊具體使用案例如下:
--判斷(0,0)高度6的位置是不是液體方塊
local result=Block:isLiquidBlock(0,6,0)
if result==0 then--是液體方塊
?? ?Chat:sendSystemMsg("坐標(0,0)高度6的位置是液體方塊")
else--不是液體方塊
?? ?Chat:sendSystemMsg("坐標(0,0)高度6的位置不是液體方塊")
end
Lua
isAirBlock
參數及類型:x,y,z:number
返回值及類型:ErrorCode.OK
該方法的主要作用:是否為氣體方塊具體使用案例如下:
--判斷(0,0)高度6的位置是不是氣體方塊
local result=Block:isAirBlock(0,6,0)
if result==0 then--是氣體方塊
?? ?Chat:sendSystemMsg("坐標(0,0)高度6的位置是氣體方塊")
else--不是氣體方塊
?? ?Chat:sendSystemMsg("坐標(0,0)高度6的位置不是氣體方塊")
end
Lua
getBlockID
參數及類型:x,y,z:number
返回值及類型:ErrorCode.OK
id:number
該方法的主要作用:獲取指定位置的方塊ID具體使用案例如下:
--獲取(0,0)高度6的位置的方塊id
local result,id=Block:getBlockID(0,6,0)
--在聊天框顯示
Chat:sendSystemMsg("(0,0)高度6的位置的方塊id是"..id)
Lua
setBlockAll
參數及類型:x,y,z:number
blockid:number
data:number
返回值及類型:ErrorCode.OK
該方法的主要作用:設置blockalldata 更新+通知具體使用案例如下:
--把(0,0)高度6的位置設置為基巖
--倒數第二個參數1為方塊id,最后一個參數0為方塊data
--data是方塊數據,比如硬砂塊的顏色、音樂方塊的音調等等,具體可以用getBlockData獲取
Block:setBlockAll(0,6,0,1,0)
--在聊天框顯示
Chat:sendSystemMsg("把(0,0)高度6的位置設置為基巖,data為0")
Lua
getBlockData
參數及類型:x,y,z:number
返回值及類型:ErrorCode.OK
data:number
該方法的主要作用:獲得blockdata具體使用案例如下:
--獲取(0,0)高度6的位置的方塊data
--data是方塊數據,比如硬砂塊的顏色、音樂方塊的音調等等
local result,data=Block:getBlockData(0,6,0)
--在聊天框顯示
Chat:sendSystemMsg("(0,0)高度6的位置的方塊data是"..data)
Lua
destroyBlock
參數及類型:x,y,z:number
dropitem:boolean
返回值及類型:ErrorCode.OK
該方法的主要作用:摧毀方塊 dropitem:掉落道具(默認false,不掉落)具體使用案例如下:
--破壞(0,0)高度6的方塊并掉落
--最后一個參數true為掉落,false為不掉落
Block:destroyBlock(0,6,0,true)
--在聊天框顯示
Chat:sendSystemMsg("破壞了(0,0)高度6的方塊并掉落")
Lua
placeBlock
參數及類型:blockid:number
x,y,z:number
face:number
color:number
返回值及類型:ErrorCode.OK
該方法的主要作用:放置方塊具體使用案例如下:
--在(0,0)高度7放置一個基巖,朝向西。如果這個位置已經有了方塊是無法放置的。
--第一個參數1為放置的方塊id
--中間三個參數0,7,0為放置坐標
--最后一個參數0為朝向參數:0西 1東 2南 3北 4下 5上
Block:placeBlock(1,0,7,0,0)
--在聊天框顯示
Chat:sendSystemMsg("在(0,0)高度7的位置放置了一個基巖,朝向西")
Lua
replaceBlock
參數及類型:blockid:number
x,y,z:number
face:number
color:number
返回值及類型:ErrorCode.OK
該方法的主要作用:替換方塊具體使用案例如下:
--把(0,0)高度6的位置替換為基巖,朝向西。
--第一個參數1為放置的方塊id
--中間三個參數0,6,0為替換坐標
--最后一個參數0為朝向參數:0西 1東 2南 3北 4下 5上
Block:replaceBlock(1,0,6,0,0)
--在聊天框顯示
Chat:sendSystemMsg("(0,0)高度6的位置被替換成了基巖,朝向西")
Lua
setBlockAllForUpdate
參數及類型:x,y,z:number
blockid:number
返回值及類型:ErrorCode.OK
該方法的主要作用:設置blockalldata 通知周圍方塊具體使用案例如下:
--把(0,0)高度6的位置設置為基巖(id:1)
--前三個參數0,6,0為坐標,最后一個參數1為方塊id
Block:setBlockAllForUpdate(0,6,0,1)
--在聊天框顯示
Chat:sendSystemMsg("(0,0)高度6的位置被設置為了基巖")
Lua
setBlockAllForNotify
參數及類型:x,y,z:number
blockid:number
返回值及類型:ErrorCode.OK
該方法的主要作用:設置blockalldata 更新當前位置方塊具體使用案例如下:
--把(0,0)高度6的位置設置為基巖(id:1)
--前三個參數0,6,0為坐標,最后一個參數1為方塊id
Block:setBlockAllForNotify(0,6,0,1)
--在聊天框顯示
Chat:sendSystemMsg("(0,0)高度6的位置被設置為了基巖")
Lua
setBlockSettingAttState
參數及類型:blockid:number
attrtype:BLOCKATTR_ENABLE
switch:boolean
返回值及類型:ErrorCode.OK
該方法的主要作用:設置方塊設置屬性狀態具體使用案例如下:
--把所有土塊設置為不可破壞
--第一個參數101為方塊id
--第二個參數1為方塊屬性:1破壞 2操作 4推拉 8掉落 16推拉掉落
--第三個參數false為“不可”,改為true表示“可以”
Block:setBlockSettingAttState(101,1,false)
--在聊天框顯示
Chat:sendSystemMsg("所有土塊被設置為了不可破壞!")
Lua
getBlockSettingAttState
參數及類型:blockid:number
attrtype:BLOCKATTR_ENABLE
返回值及類型:ErrorCode.OK
switch:boolean
該方法的主要作用:獲取方塊設置屬性狀態具體使用案例如下:
--獲取土塊是否可被破壞
--第一個參數101為方塊id
--第二個參數1為方塊屬性:1破壞 2操作 4推拉 8掉落 16推拉掉落
local result,switch=Block:getBlockSettingAttState(101,1)
if switch then--可以破壞
?? ?Chat:sendSystemMsg("土塊可以被破壞!")
else--不可破壞
?? ?Chat:sendSystemMsg("土塊無法被破壞!")
end
Lua
getBlockSwitchStatus
參數及類型:pos:table{x,y,z}
返回值及類型:ErrorCode.OK
isactive:boolean
該方法的主要作用:獲取功能方塊的開關狀態具體使用案例如下:
--判斷(0,0)高度7的位置的方塊(比如開關)是否被打開
local result,isactive=Block:getBlockSwitchStatus({x=0,y=7,z=0})
if isactive then--被打開
?? ?Chat:sendSystemMsg("(0,0)高度7的位置的方塊已被打開!")
else--沒有被打開
?? ?Chat:sendSystemMsg("(0,0)高度7的位置的方塊沒有被打開!")
end
Lua
setBlockSwitchStatus
參數及類型:pos:table{x,y,z}
isactive:boolean
返回值及類型:ErrorCode.OK
該方法的主要作用:設置功能方塊的開關狀態具體使用案例如下:
--打開(0,0)高度7位置的方塊(比如開關)
--最后一個參數true為打開,false為關閉
Block:setBlockSwitchStatus({x=0,y=7,z=0},true)
--在聊天框顯示
Chat:sendSystemMsg("打開了(0,0)高度7的位置的方塊!")
Lua
getBlockDataByDir
參數及類型:blockid:number
dir:number
返回值及類型:ErrorCode.OK
data:number
該方法的主要作用:通過方向獲取方塊data值具體使用案例如下:
--獲取朝向北的落葉松木的data
--第一個參數201為方塊id
--第二個參數3為朝向參數:0西 1東 2南 3北 4下 5上
local result,data=Block:getBlockDataByDir(201,3)
--在聊天框顯示
Chat:sendSystemMsg("落葉松木在朝向北的時候的data為:"..data)
Lua
getBlockPowerStatus
參數及類型:pos:table{x,y,z}
返回值及類型:ErrorCode.OK
isactive:boolean
該方法的主要作用:獲取方塊的通電狀態具體使用案例如下:
--判斷(0,0)高度7的位置的方塊有沒有通電
local result,isactive=Block:getBlockPowerStatus({x=0,y=7,z=0})
if isactive then--通電
?? ?Chat:sendSystemMsg("(0,0)高度7的位置的方塊已被通電!")
else--沒有通電
?? ?Chat:sendSystemMsg("(0,0)高度7的位置的方塊沒有通電!")
end
Lua
?randomBlockID
參數及類型:
無
返回值及類型:
ErrorCode.OK
blockid:number 獲取隨機方塊id
該方法的主要作用:獲取隨機方塊id
具體使用案例如下:
local result,blockid = Block:randomBlockID()
Lua
?GetBlockDefName
參數及類型:
blockid:number方塊類型ID
返回值及類型:
ErrorCode.OK
name:number 方塊名稱
該方法的主要作用:獲取方塊名稱
具體使用案例如下:
local result,name = Block:GetBlockDefName(blockid)
Lua
?GetBlockDefDesc
參數及類型:
blockid:number方塊類型ID
返回值及類型:
ErrorCode.OK
desc:number 方塊描述
該方法的主要作用:獲取方塊描述
具體使用案例如下:
local result,desc = Block:GetBlockDefDesc(blockid)
Lua
?GetBlockFacade
參數及類型:
blockid:number方塊類型ID
返回值及類型:
ErrorCode.OK
faced:number 方塊外觀名
該方法的主要作用:獲取方塊外觀
具體使用案例如下:
local result,faced = Block:GetBlockFacade(blockid)
Lua
?PlayAct
參數及類型:
x,y,z:number位置坐標
animid:number動作ID
playmode:number播放模式(ANIMMODE)
返回值及類型:
ErrorCode.OK
faced:number 方塊外觀名
該方法的主要作用:微縮方塊播放動作
具體使用案例如下:
local result = Block:PlayAct(0,8,0,12,ANIMMODE.ANIM_MODE_LOOP) --在坐標(0,8,0)的微縮方塊循環播放跑的動畫
Lua
?ReplaceBluePrint
參數及類型:
x,y,z:number位置坐標
blueprint:string藍圖資源ID
angle:number旋轉角度
mirror:boolean是否鏡像
placeMode:boolean是否放置
返回值及類型:
code:number成功(ErrorCode.OK)ErrorCode
該方法的主要作用: 放置藍圖
具體使用案例如下:
local code ?= Block:ReplaceBluePrint(x, y, z, blueprint, angle, mirror, placeMode)
if code == ErrorCode.OK then
?? ?print('執行成功' ?)
else
?? ?print('執行失敗')end