Skip to content

方块模块管理接口 Block

具体函数名及描述如下:

序号函数名函数描述
1IsSolidBlock(...)判断是否为固体方块
2IsLiquidBlock(...)判断是否为液体方块
3IsAirBlock(...)判断是否为空气方块
4GetBlockID(...)获取方块类型ID
5DestroyBlock(...)摧毁方块
6PlaceBlock(...)放置方块
7ReplaceBlock(...)替换方块
8SetBlockData(...)设置方块数据
9GetBlockData(...)获取方块数据
10GetBlockDir(...)获取方块朝向
11PlayAnim(...)播放方块动作
12SetBlockSettingAttState(...)设置方块属性状态
13GetBlockSettingAttState(...)获取方块属性状态
14GetBlockSwitchStatus(...)获取功能方块开关状态
15SetBlockSwitchStatus(...)设置功能方块开关状态
16GetBlockPowerStatus(...)获取方块通电状态
17RandomBlockID(...)随机获取方块ID
18GetBlockDefName(...)获取方块名称
19GetBlockDefDesc(...)获取方块描述
20ReplaceBluePrint(...)放置蓝图
21PlayCrackEffect(...)播放方块裂纹特效
22PlayDestroyEffect(...)播放方块损毁特效
23GetBlockDropItemType(...)获取方块掉落物信息
24GetBlockDropExp(...)获取方块采集经验
25SetBlockColor(...)设置方块颜色
26SetBlockDir(...)设置方块方向
27GetFacade(...)获取方块类型外观
28SetBlockTextureColor(...)设置方块纹理颜色

IsSolidBlock

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 判断指定位置的方块是否为固体方块
  • 具体使用案例如下:
lua
    local isSolidBlock = Block:IsSolidBlock(x, y, z, WorldId)

IsLiquidBlock

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 判断指定位置的方块是否为液体方块
  • 具体使用案例如下:
lua
    local isLiquidBlock = Block:IsLiquidBlock(x, y, z, WorldId)

IsAirBlock

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 判断指定位置的方块是否为空气方块
  • 具体使用案例如下:
lua
    local isAirBlock = Block:IsAirBlock(x, y, z, WorldId)

GetBlockID

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取指定位置的方块类型ID
  • 具体使用案例如下:
lua
    local blockID = Block:GetBlockID(x, y, z, WorldId)

DestroyBlock

  • 参数及类型:
    • x:number位置X坐标
    • y:number位置Y坐标
    • z:number位置Z坐标
    • dropitem:boolean是否掉落物品(默认false)
    • worldId:number星球id(默认当前主机所在星球)
    • btrigger:boolean是否触发全局事件(默认true)
  • 返回值及类型:
  • 该方法的其他说明: 摧毁指定位置的方块
  • 具体使用案例如下:
lua
    -- 删除方块,没有掉落物

    local success = Block:DestroyBlock(x, y, z, false, WorldId)

PlaceBlock

  • 参数及类型:
    • blockid:number,string方块类型ID
    • x:number位置X坐标
    • y:number位置Y坐标
    • z:number位置Z坐标
    • face:number朝向(默认0)
    • color:number,string十六进制颜色值(0XFFFFFF 颜色方块类型才生效,默认-1)
    • worldId:number星球id(默认当前主机所在星球)
    • btrigger:boolean是否触发全局事件(默认true)
  • 返回值及类型:
  • 该方法的其他说明: 在指定位置放置方块(支持颜色方块)
  • 具体使用案例如下:
lua
    -- 摆放方块,376 是方块ID,x, y, z 是位置,FaceDir.PosX 是方向,0XFFFFFF 是颜色

    local success2 = Block:PlaceBlock(376, x, y, z, FaceDir.PosX, nil, WorldId)

     -- 创建颜色方块

     local success = Block:PlaceBlock(605, x + 1, y, z, FaceDir.PosX, 0XFFFFFF, WorldId)

ReplaceBlock

  • 参数及类型:
    • blockid:number,string方块类型ID
    • x:number位置X坐标
    • y:number位置Y坐标
    • z:number位置Z坐标
    • face:number朝向(默认0)
    • color:number,string十六进制颜色值(0XFFFFFF 颜色方块类型才生效,默认-1)
    • worldId:number星球id(默认当前主机所在星球)
    • btrigger:boolean是否触发全局事件(默认true)
  • 返回值及类型:
  • 该方法的其他说明: 替换指定位置的方块(支持颜色方块)
  • 具体使用案例如下:
lua
    local success = Block:ReplaceBlock(105, x, y, z, nil, nil, WorldId)

SetBlockData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定位置方块的data数据(更新当前位置方块)
  • 具体使用案例如下:
lua
local bool = Block:SetBlockData(x, y, z, data, worldId)

GetBlockData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取指定位置方块的data数据
  • 具体使用案例如下:
lua
    local blockData = Block:GetBlockData(x, y, z, WorldId)

GetBlockDir

  • 参数及类型:
  • 返回值及类型:
    • num:number方块朝向(FaceDir枚举)
  • 该方法的其他说明: 获取指定位置方块的朝向
  • 具体使用案例如下:
lua
    local blockDir = Block:GetBlockDir(x, y, z, WorldId)

PlayAnim

  • 参数及类型:
    • pos:table位置坐标
    • animid:number,string动作ID
    • speed:number播放速度(默认1)
    • loop:number循环模式(AnimMode枚举)AnimMode
    • worldId:number星球id(默认当前主机所在星球)
  • 返回值及类型:
  • 该方法的其他说明: 播放指定位置方块的动作动画
  • 具体使用案例如下:
lua
    local success = Block:PlayAnim({x = x, y = y, z = z}, 100100, 1, AnimMode.Default, WorldId)

SetBlockSettingAttState

  • 参数及类型:
    • blockid:number,string方块类型ID
    • atttype:number属性枚举(BlockLimits)BlockLimits
    • switch:boolean是否开启
    • worldId:number星球id(默认当前主机所在星球)
  • 返回值及类型:
  • 该方法的其他说明: 设置方块类型的属性状态(全局设置)
  • 具体使用案例如下:
lua
    -- 设置爆炸抗性打开

    local success = Block:SetBlockSettingAttState(100, BlockAttr.ExplodeResistance, true, WorldId)

GetBlockSettingAttState

  • 参数及类型:
    • blockid:number,string方块类型ID
    • atttype:number属性枚举(BlockLimits)BlockLimits
    • worldId:number星球id(默认当前主机所在星球)
  • 返回值及类型:
  • 该方法的其他说明: 获取方块类型的属性状态(全局设置)
  • 具体使用案例如下:
lua
    local state = Block:GetBlockSettingAttState(100, BlockAttr.ExplodeResistance, WorldId)

GetBlockSwitchStatus

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取指定位置功能方块的开关状态
  • 具体使用案例如下:
lua
    local status = Block:GetBlockSwitchStatus(x, y, z, WorldId)

SetBlockSwitchStatus

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定位置功能方块的开关状态
  • 具体使用案例如下:
lua
local bool = Block:SetBlockSwitchStatus(x, y, z, isactive, worldId)

GetBlockPowerStatus

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取指定位置方块的通电状态
  • 具体使用案例如下:
lua
    local status = Block:GetBlockPowerStatus(x, y, z, WorldId)

RandomBlockID

  • 参数及类型: 无参数
  • 返回值及类型:
    • id:number随机的方块类型ID
  • 该方法的其他说明: 在资源库里随机获取一个方块类型ID
  • 具体使用案例如下:
lua
    local blockID = Block:RandomBlockID()

GetBlockDefName

  • 参数及类型:
    • blockid:number,string方块类型ID
  • 返回值及类型:
  • 该方法的其他说明: 获取方块类型的名称
  • 具体使用案例如下:
lua
    local blockDefName = Block:GetBlockDefName(100)

GetBlockDefDesc

  • 参数及类型:
    • blockid:number,string方块类型ID
  • 返回值及类型:
  • 该方法的其他说明: 获取方块类型的描述
  • 具体使用案例如下:
lua
    local blockDefDesc = Block:GetBlockDefDesc(100)

ReplaceBluePrint

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 在指定位置放置蓝图(未支持多星球)
  • 具体使用案例如下:
lua
    local success = Block:ReplaceBluePrint(x, y, z, [=[1,bp6666_1679897969_0_]=], 90, false, true)

PlayCrackEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 播放指定位置方块的裂纹特效
  • 具体使用案例如下:
lua
    local process = 10

    local success = Block:PlayCrackEffect(x, y, z,process, WorldId)

PlayDestroyEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 播放指定位置方块的损毁特效
  • 具体使用案例如下:
lua
    local success = Block:PlayDestroyEffect(x, y, z, WorldId)

GetBlockDropItemType

  • 参数及类型:
    • blockid:number,string方块ID
    • itype:number类型(1手持敲方块,2手持道具正确,3手持道具不正确)
  • 返回值及类型:
    • obj:table掉落道具信息{itemid,itemnum,odds} 道具ID、数量、概率
  • 该方法的其他说明: 获取方块掉落物信息
  • 具体使用案例如下:
lua
    -- 1手持敲方块,2手持道具正确,3手持道具不正确

    local tb = Block:GetBlockDropItemType(100,1)

    if tb then

        print("获取方块掉落物品类型", tb[1])

        print("获取方块掉落物品数量", tb[2])

        print("获取方块掉落物品概率", tb[3])

    end

GetBlockDropExp

  • 参数及类型:
    • blockid:number,string方块ID
  • 返回值及类型:
  • 该方法的其他说明: 获取方块的采集经验值
  • 具体使用案例如下:
lua
    local exp = Block:GetBlockDropExp(100,1)

SetBlockColor

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定位置方块的颜色(仅支持颜色方块)
  • 具体使用案例如下:
lua
    local success = Block:SetBlockColor(x, y, z, 0XFF0000, WorldId)

SetBlockDir

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定位置方块的方向
  • 具体使用案例如下:
lua
    local success = Block:SetBlockDir(x, y, z, FaceDir.PosZ, WorldId)

    -- self:ThreadWait(1)

GetFacade

  • 参数及类型:
    • blockid:number,string方块类型ID或方块预制ID
  • 返回值及类型:
    • value:string方块类型外观
  • 该方法的其他说明: 获取方块类型的外观
  • 具体使用案例如下:
lua
    -- 官方默认方块示例

    local facade1 = Block:GetFacade(100)

    if facade1 == nil then

        print("facade1 is nil")

    end

    -- 自定义方块示例

    local facade2 = Block:GetFacade('r0_7495946400275515402_23048')

    if facade2 == nil then

        print("facade2 is nil")

    end

SetBlockTextureColor

  • 参数及类型:
    • blockid:number方块ID
    • color:number:颜色值(0:还原默认颜色)
    • alpha:number混合比例(0-100)
    • slotindex:number材质槽索引(默认1)
  • 返回值及类型:
  • 该方法的其他说明: 设置方块纹理颜色(仅支持草块、土块、树叶、花草等方块,其它方块暂不支持;设置后不会存档;玩法转编辑后需要重进地图才可还原)
  • 具体使用案例如下:
lua
local bool = Block:SetBlockTextureColor(blockid, color, alpha, slotindex)