BlockBuilder

预计阅读时间: 6 分钟

用于方块注册

属性

方法

.displayName(value: TextComponent)

设置方块的显示名称。

.material(value: string)

(1.20+ 中不再支持,请参见下面的 mapColorsoundType!)

将物品的材质设置为材质列表中可用的材质:

材质列表:

  • 'air'
  • 'amethyst'
  • 'bamboo'
  • 'bamboo_sapling'
  • 'barrier'
  • 'bubble_column'
  • 'buildable_glass'
  • 'cactus'
  • 'cake'
  • 'clay'
  • 'cloth_decoration'
  • 'decoration'
  • 'dirt'
  • 'egg'
  • 'explosive'
  • 'fire'
  • 'froglight'
  • 'frogspawn'
  • 'glass'
  • 'grass'
  • 'heavy_metal'
  • 'ice'
  • 'ice_solid'
  • 'lava'
  • 'leaves'
  • 'metal'
  • 'moss'
  • 'nether_wood'
  • 'piston'
  • 'plant'
  • 'portal'
  • 'powder_snow'
  • 'replaceable_fireproof_plant'
  • 'replaceable_plant'
  • 'replaceable_water_plant'
  • 'sand'
  • 'sculk'
  • 'shulker_shell'
  • 'snow'
  • 'sponge'
  • 'stone'
  • 'structural_air'
  • 'top_snow'
  • 'vegetable'
  • 'water'
  • 'water_plant'
  • 'web'
  • 'wood'
  • 'wool'

.mapColor(value: MapColor)

(仅适用于 1.20.1+)

设置方块地图颜色。

.soundType(value: SoundType)

(仅适用于 1.20.1+)

设置方块声音类型。您还可以使用以下快捷方法之一:

  • .noSoundType()
  • .woodSoundType()
  • .stoneSoundType()
  • .gravelSoundType()
  • .grassSoundType()
  • .sandSoundType()
  • .cropSoundType()
  • .glassSoundType()

.property(value: BlockProperty)

向方块添加更多方块状态,例如可防水或面向特定方向。

.tagBlock(value: ID)

向方块添加标签,例如 'namespace:tag_name'

.tagItem(value: ID)

向方块的物品添加标签(如果有的话),例如 'forge:storage_blocks/iron'

.tagBoth(value: ID)

尽可能添加方块和物品标签,例如 'minecraft:planks'

.hardness(value: float)

设置方块的硬度值。用于计算方块被破坏所需的时间。

.resistance(value: float)

设置方块抵抗爆炸等的能力

.unbreakable()

将阻力设置为 MAX_VALUE 并将硬度设置为 -1 的快捷方式(如基岩)

.lightLevel(value: float)

设置方块的光照等级(0 - 1)。

.opaque(value: boolean)

设置方块是否不透明。完整的不透明方块不会让光线穿过。

.fullBlock(value: boolean)

设置方块是否渲染为完整方块。完整方块会对其应用某些优化,例如不渲染其后面的地形。如果您使用 .box() 制作自定义碰撞箱,请将其设置为 false

.requiresTool(value: boolean)

如果为 true,方块将使用某些方块标签来确定挖掘时是否应掉落物品。例如,标记为 #minecraft:mineable/axe#minecraft:mineable/pickaxe#minecraft:needs_iron_tool 的方块除非用至少铁级的斧头或镐子挖掘,否则不会掉落任何东西。

.renderType(value: RenderType)

设置渲染类型。

.color(tintIndex: int, color: Color)

将方块重新着色为特定颜色

.textureAll(value: ID)

将方块的所有 6 面纹理化到相同的纹理。

路径必须像 kubejs:block/texture_name(将包含在 kubejs/assets/kubejs/textures/block/texture_name.png 下)。

默认为 kubejs:block/<block_name>

.texture(side: Direction, texture: ID)

单独为一面添加纹理。

.model(value: ID)

指定自定义模型。

路径必须像 'kubejs:block/texture_name'(将包含在 kubejs/assets/kubejs/models/block/texture_name.png 下)。

默认为 'kubejs:block/<block_name>'

.noItem()

移除关联的物品。Minecraft 默认对一些方块这样做,例如下界传送门方块。如果玩家永远不能持有或放置该方块,请使用此方法。

.box(x0: float, y0: float, z0: float, x1: float, y1: float, z1: float, scale16?: boolean)

scale16 布尔值默认为 true。

设置方块的自定义碰撞箱,影响碰撞。您可以多次使用它来定义由多个箱子组成的复杂形状。

每个箱子都是一个长方体,角落位于 (x0, y0, z0) 和 (x1, y1, z1)

您可能需要设置一个与您在这里定义的形状匹配的自定义方块模型。

最后一个布尔值确定箱子的坐标比例。传入 true 将使用 0-16 的数字,而传入 false 将使用 0 到 1 范围内的坐标

.noCollision()

移除默认的完整方块碰撞箱,允许您穿过方块掉落。

.notSolid()

告诉渲染器该方块不是实心的。

.waterlogged()

允许方块可防水。

.noDrops()

即使用精准采集挖掘,方块也不会掉落自身。

.slipperiness(value: float)

设置方块的滑度。影响实体在其上移动时滑动的程度。原版中几乎每个方块的滑度值都是 0.6,除了史莱姆(0.8)和冰(0.98)。

.speedFactor(value: float)

影响玩家在方块上行走速度的修改器。

.jumpFactor(value: float)

影响玩家能从方块上跳多高的修改器。

.randomTick(callback: Consumer<RandomTickEvent>)

方块收到随机tick时运行的函数。

.item(item: Consumer<ItemBuilder>)

修改方块物品的某些属性。

有关更多信息,请参见物品注册

.setLootTableJson(value: json)

直接传入自定义战利品表 JSON

.setBlockstateJson(value: json)

直接传入自定义方块状态 JSON

.setModelJson(value: json)

直接传入自定义模型 JSON

.noValidSpawns(value: boolean)

如果为 true,则该方块不计为实体的有效生成点

.suffocating(value: boolean)

方块是否会让头部在其中的实体窒息

.viewBlocking(value: boolean)

方块是否算阻碍玩家的视野。

.redstoneConductor(value: boolean)

设置方块是否传导红石。默认情况下为 true。

.transparent(value: boolean)

设置方块是否透明

.defaultCutout()

将一堆方法组合在一起,制作像玻璃这样的方块

.defaultTranslucent()

类似于 .defaultCutout(),但使用半透明层代替