# 方块状态与附加值

# GetBlockAuxValueFromStates

服务端

method in mod.server.component.blockStateCompServer.BlockStateComponentServer

  • 描述

    根据方块名称和方块状态获取方块附加值AuxValue

  • 参数

    参数名
    数据类型
    说明
    blockName str 方块名称
    states dict 方块状态
  • 返回值

    数据类型
    说明
    int 方块附加值AuxValue,异常时为-1
  • 备注

    • 基岩版1.19更新后,部分包含多个种类的方块(例如,羊毛类,珊瑚类,栅栏类等类型的方块)被拆分成单独的方块identifier及方块附加值,因此原来的方块附加值及方块状态不再适用。请注意尽量使用新的方块identifier,被拆分出来的这些单独的方块可能不会包含任何方块状态,例如橙色羊毛(minecraft:orange_wool)不会包含"color"的方块状态。因此无法使用"color"状态进行查询获取附加值。
    • 截止至基岩版1.20.10,被拆分的方块种类包含:
      1. 羊毛类方块。根据羊毛颜色拆分成独立方块
      2. 原木类方块。根据原木种类拆分成独立方块
      3. 栅栏类方块。根据栅栏种类拆分成独立方块
      4. 珊瑚类方块。根据珊瑚颜色拆分成独立方块
      5. 地毯类方块。根据地毯颜色拆分成独立方块
      6. 潜影盒类方块。根据潜影盒颜色拆分成独立方块
      7. 混凝土类方块。根据混凝土颜色拆分成独立方块
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateBlockState(levelId)
states = comp.GetBlockAuxValueFromStates("minecraft:hopper", {"facing_direction": 0, "toggle_bit": 0})

# GetBlockStates

服务端

method in mod.server.component.blockStateCompServer.BlockStateComponentServer

  • 描述

    获取方块状态

  • 参数

    参数名
    数据类型
    说明
    pos tuple(float,float,float) 方块位置
    dimensionId int 方块所在维度
  • 返回值

    数据类型
    说明
    dict 方块状态,异常时为None
  • 备注

    • 仅可获取到已加载区块内的方块状态,支持获取对应维度的常加载区块内方块状态
    • 基岩版1.19更新后,部分包含多个种类的方块(例如,羊毛类,珊瑚类,栅栏类等类型的方块)被拆分成单独的方块identifier及方块附加值,因此原来的方块附加值及方块状态不再适用。请注意尽量使用新的方块identifier,被拆分出来的这些单独的方块可能不会包含任何方块状态,例如橙色羊毛(minecraft:orange_wool)不会包含"color"的方块状态。因此会返回空的状态。
    • 截止至基岩版1.20.10,被拆分的方块种类包含:
      1. 羊毛类方块。根据羊毛颜色拆分成独立方块
      2. 原木类方块。根据原木种类拆分成独立方块
      3. 栅栏类方块。根据栅栏种类拆分成独立方块
      4. 珊瑚类方块。根据珊瑚颜色拆分成独立方块
      5. 地毯类方块。根据地毯颜色拆分成独立方块
      6. 潜影盒类方块。根据潜影盒颜色拆分成独立方块
      7. 混凝土类方块。根据混凝土颜色拆分成独立方块
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateBlockState(levelId)
comp.GetBlockStates((4,4,3), 0)

# GetBlockStatesFromAuxValue

服务端

method in mod.server.component.blockStateCompServer.BlockStateComponentServer

  • 描述

    根据方块名称和方块附加值AuxValue获取方块状态

  • 参数

    参数名
    数据类型
    说明
    blockName str 方块名称
    auxValue int 方块附加值AuxValue
  • 返回值

    数据类型
    说明
    dict 方块状态,异常时为None
  • 备注

    • 基岩版1.19更新后,部分包含多个种类的方块(例如,羊毛类,珊瑚类,栅栏类等类型的方块)被拆分成单独的方块identifier及方块附加值,因此原来的方块附加值及方块状态不再适用。请注意尽量使用新的方块identifier,被拆分出来的这些单独的方块可能不会包含任何方块状态,例如橙色羊毛(minecraft:orange_wool)不会包含”color"的方块状态。因此查询橙色羊毛时会返回空的状态。
    • 截止至基岩版1.20.10,被拆分的方块种类包含:
      1. 羊毛类方块。根据羊毛颜色拆分成独立方块
      2. 原木类方块。根据原木种类拆分成独立方块
      3. 栅栏类方块。根据栅栏种类拆分成独立方块
      4. 珊瑚类方块。根据珊瑚颜色拆分成独立方块
      5. 地毯类方块。根据地毯颜色拆分成独立方块
      6. 潜影盒类方块。根据潜影盒颜色拆分成独立方块
      7. 混凝土类方块。根据混凝土颜色拆分成独立方块
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateBlockState(levelId)
states = comp.GetBlockStatesFromAuxValue('minecraft:sapling', 9)

# SetBlockStates

服务端

method in mod.server.component.blockStateCompServer.BlockStateComponentServer

  • 描述

    设置方块状态

  • 参数

    参数名
    数据类型
    说明
    pos tuple(float,float,float) 方块位置
    data dict 方块状态
    dimensionId int 方块所在维度
  • 返回值

    数据类型
    说明
    bool 设置是否成功
  • 备注

    • 仅可设置已加载区块内的方块状态,支持设置对应维度的常加载区块内方块状态
    • 基岩版1.19更新后,部分包含多个种类的方块(例如,羊毛类,珊瑚类,栅栏类等类型的方块)被拆分成单独的方块identifier及方块附加值,因此原来的方块附加值及方块状态不再适用。请注意尽量使用新的方块identifier,被拆分出来的这些单独的方块可能不会包含任何方块状态,例如橙色羊毛(minecraft:orange_wool)不会包含"color"的方块状态。因此无法设置"color"状态。
    • 截止至基岩版1.20.10,被拆分的方块种类包含:
      1. 羊毛类方块。根据羊毛颜色拆分成独立方块
      2. 原木类方块。根据原木种类拆分成独立方块
      3. 栅栏类方块。根据栅栏种类拆分成独立方块
      4. 珊瑚类方块。根据珊瑚颜色拆分成独立方块
      5. 地毯类方块。根据地毯颜色拆分成独立方块
      6. 潜影盒类方块。根据潜影盒颜色拆分成独立方块
      7. 混凝土类方块。根据混凝土颜色拆分成独立方块
  • 示例

# 将白色羊毛设置为橙色羊毛
pos = (4,4,3)
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateBlockState(levelId)
state = comp.GetBlockStates(pos, 0) # state = { 'color': 'white' }
state['color'] = 'orange'
comp.SetBlockStates(pos, state, 0)