跳转至

Go:方块

函数

Block

Go
func Block(dim, x, y, z int32) BlockAt

维度 dim 里 x、y、z 处的那一格。

  • 参数:
    • dim : int32
    • x : int32
    • y : int32
    • z : int32
  • 返回值类型:BlockAt

BlockAt

Go
1
2
3
4
type BlockAt struct {
    Dim     int32
    X, Y, Z int32
}

一个维度里的一个方块格。

BlockAt.Info

Go
func (b BlockAt) Info() (BlockInfo, error)

读取这个方块:它的类型名和状态。

  • 返回值类型:(BlockInfo, error)
  • 对应槽位:get_block

BlockAt.Set

Go
func (b BlockAt) Set(blockSpec string) error

按方块描述放置一个方块,描述的写法和 /setblock 读的一样。

  • 参数:
    • blockSpec : string
  • 返回值类型:error
  • 对应槽位:set_block

BlockAt.State

Go
func (b BlockAt) State(name string) (string, error)

按名字读取一个方块状态。

  • 参数:
    • name : string
  • 返回值类型:(string, error)
  • 对应槽位:block_get_state

BlockAt.SetState

Go
func (b BlockAt) SetState(name, value string) error

按名字写入一个方块状态。

  • 参数:
    • name : string
    • value : string
  • 返回值类型:error
  • 对应槽位:block_set_state

BlockAt.EntitySNBT

Go
func (b BlockAt) EntitySNBT() (string, error)

这一格的方块实体(比如箱子里的东西),以 SNBT 给出。

BlockAt.Biome

Go
func (b BlockAt) Biome() (string, error)

这一格的生物群系。

BlockAt.Container

Go
func (b BlockAt) Container() Container

这一格的方块容器,比如箱子。

  • 返回值类型:Container

BlockAt.IsAir

Go
func (b BlockAt) IsAir() (bool, error)

读取 PIER_BPROP_IS_AIR:取自 Block::isAir

BlockAt.Data

Go
func (b BlockAt) Data() (float64, error)

读取 PIER_BPROP_DATA:取自 Block::getData(旧版的数据值)

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.BlockItemId

Go
func (b BlockAt) BlockItemId() (float64, error)

读取 PIER_BPROP_BLOCK_ITEM_ID:取自 Block::getBlockItemId

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.IsCraftingBlock

Go
func (b BlockAt) IsCraftingBlock() (bool, error)

读取 PIER_BPROP_IS_CRAFTING_BLOCK:取自 Block::isCraftingBlock

BlockAt.IsInteractiveBlock

Go
func (b BlockAt) IsInteractiveBlock() (bool, error)

读取 PIER_BPROP_IS_INTERACTIVE_BLOCK:取自 Block::isInteractiveBlock

BlockAt.HasBlockEntity

Go
func (b BlockAt) HasBlockEntity() (bool, error)

读取 PIER_BPROP_HAS_BLOCK_ENTITY:BlockSource::getBlockEntity(pos) != null

BlockAt.Light

Go
func (b BlockAt) Light() (float64, error)

读取 PIER_BPROP_LIGHT:取自 Block::getLight

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.LightEmission

Go
func (b BlockAt) LightEmission() (float64, error)

读取 PIER_BPROP_LIGHT_EMISSION:取自 Block::getLightEmission

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.DestroySpeed

Go
func (b BlockAt) DestroySpeed() (float64, error)

读取 PIER_BPROP_DESTROY_SPEED:取自 Block::getDestroySpeed

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.ExplosionResistance

Go
func (b BlockAt) ExplosionResistance() (float64, error)

读取 PIER_BPROP_EXPLOSION_RESISTANCE:取自 Block::getExplosionResistance

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.Friction

Go
func (b BlockAt) Friction() (float64, error)

读取 PIER_BPROP_FRICTION:取自 Block::getFriction

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.IsContainer

Go
func (b BlockAt) IsContainer() (bool, error)

读取 PIER_BPROP_IS_CONTAINER:取自 Block::isContainerBlock

BlockAt.IsDoor

Go
func (b BlockAt) IsDoor() (bool, error)

读取 PIER_BPROP_IS_DOOR:从 BDS 1.26.40 起不再支持:BlockType::isDoorBlock 已被移除

在当前所有的引擎版本上,宿主读这一项都没有结果:从 BDS 1.26.40 起不再支持:BlockType::isDoorBlock 已被移除

BlockAt.IsFence

Go
func (b BlockAt) IsFence() (bool, error)

读取 PIER_BPROP_IS_FENCE:取自 Block::isFenceBlock

BlockAt.IsRail

Go
func (b BlockAt) IsRail() (bool, error)

读取 PIER_BPROP_IS_RAIL:取自 Block::isRailBlock

BlockAt.IsSlab

Go
func (b BlockAt) IsSlab() (bool, error)

读取 PIER_BPROP_IS_SLAB:取自 Block::isSlabBlock

BlockAt.IsStair

Go
func (b BlockAt) IsStair() (bool, error)

读取 PIER_BPROP_IS_STAIR:从 BDS 1.26.40 起不再支持:BlockType::isStairBlock 已被移除

在当前所有的引擎版本上,宿主读这一项都没有结果:从 BDS 1.26.40 起不再支持:BlockType::isStairBlock 已被移除

BlockAt.IsWall

Go
func (b BlockAt) IsWall() (bool, error)

读取 PIER_BPROP_IS_WALL:取自 Block::isWallBlock

BlockAt.IsCrop

Go
func (b BlockAt) IsCrop() (bool, error)

读取 PIER_BPROP_IS_CROP:取自 Block::isCropBlock

BlockAt.IsUnbreakable

Go
func (b BlockAt) IsUnbreakable() (bool, error)

读取 PIER_BPROP_IS_UNBREAKABLE:取自 Block::isUnbreakable

BlockAt.RedstoneSignal

Go
func (b BlockAt) RedstoneSignal() (float64, error)

读取 PIER_BPROP_REDSTONE_SIGNAL:取自 Block::getDirectSignal

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.ComparatorSignal

Go
func (b BlockAt) ComparatorSignal() (float64, error)

读取 PIER_BPROP_COMPARATOR_SIGNAL:取自 Block::getComparatorSignal

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.IsSignalSource

Go
func (b BlockAt) IsSignalSource() (bool, error)

读取 PIER_BPROP_IS_SIGNAL_SOURCE:取自 Block::isSignalSource

BlockAt.Variant

Go
func (b BlockAt) Variant() (float64, error)

读取 PIER_BPROP_VARIANT:取自 Block::getVariant

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.BurnOdds

Go
func (b BlockAt) BurnOdds() (float64, error)

读取 PIER_BPROP_BURN_ODDS:取自 Block::getBurnOdds

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.FlameOdds

Go
func (b BlockAt) FlameOdds() (float64, error)

读取 PIER_BPROP_FLAME_ODDS:取自 Block::getFlameOdds

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.Bounciness

Go
func (b BlockAt) Bounciness() (float64, error)

读取 PIER_BPROP_BOUNCINESS:取自 Block::getBounciness

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.IsSolid

Go
func (b BlockAt) IsSolid() (bool, error)

读取 PIER_BPROP_IS_SOLID:取自 Block::isSolid

BlockAt.RequiresTool

Go
func (b BlockAt) RequiresTool() (float64, error)

读取 PIER_BPROP_REQUIRES_TOOL:取自 Block::requiresCorrectToolForDrops

  • 返回值类型:(float64, error)
  • 对应槽位:block_get_num

BlockAt.TypeName

Go
func (b BlockAt) TypeName() (string, error)

读取 PIER_BSTR_TYPE_NAME:取自 Block::getTypeName

BlockAt.Snbt

Go
func (b BlockAt) Snbt() (string, error)

读取 PIER_BSTR_SNBT:取自 Block::mSerializationId,以 SNBT {name,states,version} 给出

BlockAt.DescriptionId

Go
func (b BlockAt) DescriptionId() (string, error)

读取 PIER_BSTR_DESCRIPTION_ID:取自 Block::getDescriptionId

BlockAt.DebugString

Go
func (b BlockAt) DebugString() (string, error)

读取 PIER_BSTR_DEBUG_STRING:取自 Block::toDebugString

BlockAt.Tags

Go
func (b BlockAt) Tags() (string, error)

读取 PIER_BSTR_TAGS:取自 Block::mTags,以 SNBT 字符串列表 ["a","b"] 给出

BlockAt.StateText

Go
func (b BlockAt) StateText() (string, error)

读取 PIER_BSTR_STATE:SNBT {state_name:value,…},全部方块状态

BlockAt.CollisionShape

Go
func (b BlockAt) CollisionShape() (string, error)

读取 PIER_BSTR_COLLISION_SHAPE:SNBT [{min:[x,y,z],max:[x,y,z]},…]

BlockAt.OutlineShape

Go
func (b BlockAt) OutlineShape() (string, error)

读取 PIER_BSTR_OUTLINE_SHAPE:SNBT [{min,max}],渲染用的轮廓

BlockAt.DisplayName

Go
func (b BlockAt) DisplayName() (string, error)

读取 PIER_BSTR_DISPLAY_NAME:取自 Block::getDisplayName

BlockAt.HasTag

Go
func (b BlockAt) HasTag(sarg string) (string, error)

执行 PIER_BACT_HAS_TAG:sarg 为标签,输出 "0" 或 "1",调用 Block::hasTag

这个动作有输出时,输出就是返回值;每个参数的含义写在 abi.h 里这个常量的注释中。

  • 参数:
    • sarg : string
  • 返回值类型:(string, error)
  • 对应槽位:block_action

BlockAt.GetState

Go
func (b BlockAt) GetState(sarg string) (string, error)

执行 PIER_BACT_GET_STATE:sarg 为状态名,输出状态值的字符串,调用 Block::getState

这个动作有输出时,输出就是返回值;每个参数的含义写在 abi.h 里这个常量的注释中。

  • 参数:
    • sarg : string
  • 返回值类型:(string, error)
  • 对应槽位:block_action

BlockAt.PopResource

Go
func (b BlockAt) PopResource(sarg string) (string, error)

执行 PIER_BACT_POP_RESOURCE:sarg 为物品 SNBT,在这个位置掉落该物品,调用 Block::popResource

这个动作有输出时,输出就是返回值;每个参数的含义写在 abi.h 里这个常量的注释中。

  • 参数:
    • sarg : string
  • 返回值类型:(string, error)
  • 对应槽位:block_action

BlockAt.AsItem

Go
func (b BlockAt) AsItem(sarg string) (string, error)

执行 PIER_BACT_AS_ITEM:输出物品 SNBT,调用 Block::asItemInstance

这个动作有输出时,输出就是返回值;每个参数的含义写在 abi.h 里这个常量的注释中。

  • 参数:
    • sarg : string
  • 返回值类型:(string, error)
  • 对应槽位:block_action

BlockInfo

Go
1
2
3
4
5
type BlockInfo struct {
    X, Y, Z int32
    Name    string
    SNBT    string
}

一个方块:它的格子、类型名,以及以 SNBT 表示的方块状态。

BProp*

名称 值 说明
BPropIsAir 0 即 PIER_BPROP_IS_AIR:取自 Block::isAir
BPropData 1 即 PIER_BPROP_DATA:取自 Block::getData(旧版的数据值)
BPropBlockItemId 2 即 PIER_BPROP_BLOCK_ITEM_ID:取自 Block::getBlockItemId
BPropIsCraftingBlock 3 即 PIER_BPROP_IS_CRAFTING_BLOCK:取自 Block::isCraftingBlock
BPropIsInteractiveBlock 4 即 PIER_BPROP_IS_INTERACTIVE_BLOCK:取自 Block::isInteractiveBlock
BPropHasBlockEntity 5 即 PIER_BPROP_HAS_BLOCK_ENTITY:BlockSource::getBlockEntity(pos) != null
BPropLight 6 即 PIER_BPROP_LIGHT:取自 Block::getLight
BPropLightEmission 7 即 PIER_BPROP_LIGHT_EMISSION:取自 Block::getLightEmission
BPropDestroySpeed 8 即 PIER_BPROP_DESTROY_SPEED:取自 Block::getDestroySpeed
BPropExplosionResistance 9 即 PIER_BPROP_EXPLOSION_RESISTANCE:取自 Block::getExplosionResistance
BPropFriction 10 即 PIER_BPROP_FRICTION:取自 Block::getFriction
BPropIsContainer 11 即 PIER_BPROP_IS_CONTAINER:取自 Block::isContainerBlock
BPropIsDoor 12 这个常量在当前的引擎版本上取不到值:即 PIER_BPROP_IS_DOOR:从 BDS 1.26.40 起不再支持:BlockType::isDoorBlock 已被移除
BPropIsFence 13 即 PIER_BPROP_IS_FENCE:取自 Block::isFenceBlock
BPropIsRail 14 即 PIER_BPROP_IS_RAIL:取自 Block::isRailBlock
BPropIsSlab 15 即 PIER_BPROP_IS_SLAB:取自 Block::isSlabBlock
BPropIsStair 16 这个常量在当前的引擎版本上取不到值:即 PIER_BPROP_IS_STAIR:从 BDS 1.26.40 起不再支持:BlockType::isStairBlock 已被移除
BPropIsWall 17 即 PIER_BPROP_IS_WALL:取自 Block::isWallBlock
BPropIsCrop 18 即 PIER_BPROP_IS_CROP:取自 Block::isCropBlock
BPropIsUnbreakable 19 即 PIER_BPROP_IS_UNBREAKABLE:取自 Block::isUnbreakable
BPropRedstoneSignal 20 即 PIER_BPROP_REDSTONE_SIGNAL:取自 Block::getDirectSignal
BPropComparatorSignal 21 即 PIER_BPROP_COMPARATOR_SIGNAL:取自 Block::getComparatorSignal
BPropIsSignalSource 22 即 PIER_BPROP_IS_SIGNAL_SOURCE:取自 Block::isSignalSource
BPropVariant 23 即 PIER_BPROP_VARIANT:取自 Block::getVariant
BPropBurnOdds 24 即 PIER_BPROP_BURN_ODDS:取自 Block::getBurnOdds
BPropFlameOdds 25 即 PIER_BPROP_FLAME_ODDS:取自 Block::getFlameOdds
BPropBounciness 26 即 PIER_BPROP_BOUNCINESS:取自 Block::getBounciness
BPropIsSolid 27 即 PIER_BPROP_IS_SOLID:取自 Block::isSolid
BPropRequiresTool 28 即 PIER_BPROP_REQUIRES_TOOL:取自 Block::requiresCorrectToolForDrops

BStr*

名称 值 说明
BStrTypeName 0 即 PIER_BSTR_TYPE_NAME:取自 Block::getTypeName
BStrSnbt 1 即 PIER_BSTR_SNBT:取自 Block::mSerializationId,以 SNBT {name,states,version} 给出
BStrDescriptionId 2 即 PIER_BSTR_DESCRIPTION_ID:取自 Block::getDescriptionId
BStrDebugString 3 即 PIER_BSTR_DEBUG_STRING:取自 Block::toDebugString
BStrTags 4 即 PIER_BSTR_TAGS:取自 Block::mTags,以 SNBT 字符串列表 ["a","b"] 给出
BStrState 5 即 PIER_BSTR_STATE:SNBT {state_name:value,…},全部方块状态
BStrCollisionShape 6 即 PIER_BSTR_COLLISION_SHAPE:SNBT [{min:[x,y,z],max:[x,y,z]},…]
BStrOutlineShape 7 即 PIER_BSTR_OUTLINE_SHAPE:SNBT [{min,max}],渲染用的轮廓
BStrDisplayName 8 即 PIER_BSTR_DISPLAY_NAME:取自 Block::getDisplayName

BAct*

名称 值 说明
BActHasTag 0 即 PIER_BACT_HAS_TAG:sarg 为标签,输出 "0" 或 "1",调用 Block::hasTag
BActGetState 1 即 PIER_BACT_GET_STATE:sarg 为状态名,输出状态值的字符串,调用 Block::getState
BActPopResource 2 即 PIER_BACT_POP_RESOURCE:sarg 为物品 SNBT,在这个位置掉落该物品,调用 Block::popResource
BActAsItem 3 即 PIER_BACT_AS_ITEM:输出物品 SNBT,调用 Block::asItemInstance