🔧 方块设置
概览
settings 配置部分定义了方块的基础属性,例如硬度、音效、熔岩可燃性、亮度、合适挖掘工具等,其次这与🕹️ 方块行为不在同一个配置部分。此外所有设置项均为可选(省略时使用默认值),并能通过变体按状态覆盖。以下是包含所有可用设置类型的示例:
blocks:
custom:all_settings_block:
settings:
hardness: 0.5
resistance: 0.5
push_reaction: NORMAL
map_color: 36
burnable: false
fire_spread_chance: 0
burn_chance: 0
item: custom:all_settings_item
replaceable: false
is_redstone_conductor: true
is_suffocating: true
is_view_blocking: true
sounds:
break: minecraft:block.deepslate.break
step: minecraft:block.deepslate.step
place: minecraft:block.deepslate.place
hit: minecraft:block.deepslate.hit
fall: minecraft:block.deepslate.fall
require_correct_tools: true
respect_tool_component: false
correct_tools:
- minecraft:wooden_pickaxe
incorrect_tool_dig_speed: 0.3
tags:
- minecraft:mineable/pickaxe
instrument: basedrum
fluid_state: water
support_shape: minecraft:stone
luminance: 15
can_occlude: false
block_light: 0
propagate_skylight: false
jump_factor: 1.0
speed_factor: 1.0
friction: 0.7
bounce_restitution: 0.0
本页分两部分:稳定设置(完全支持)与不稳定设置(尽可能支持,可能出现服务端与客户端不同步的问题)。
稳定设置
硬度
决定了挖掘这个方块需要的挖掘时间。(默认值:2.0)
hardness: 0.5
爆炸抗性
决定了方块在爆炸中吸收和阻止爆炸破坏方块传播的强度。(默认值:2.0)
resistance: 0.5
活塞推动行为
决定方块在受到活塞推动时的反应。请注意,由于客户端视觉同步问题,某些反应可能与某些方块类型不兼容。这个问题将在未来版本中得到修复。(默认值:NORMAL)
- NORMAL 可推动,可拉动
- DESTROY 被推动破坏,不可拉动
- BLOCK 不可推动,不可拉动
- IGNORE 似乎像 PUSH_ONLY 一样工作,但可以粘附在粘性方块上
- PUSH_ONLY 可推动,不可拉动
push_reaction: NORMAL
地图颜色
决定了地图在表示此方块时会使用的颜色的基色。可用颜色可以在 https://zh.minecraft.wiki/w/地图存储格式#地图基色 查找。(默认值:0)
map_color: 36

熔岩可燃性
决定了熔岩是否可以在该方块上生成火。(默认值:false)
burnable: true

烧毁几率
影响火与其相邻时破坏该方块的几率和速率。方块烧毁几率为正数时,其所有表面均可燃烧,否则只有其完整的上表面可以燃烧。(默认值:0)
fire_spread_chance: 100 # 0-100
引燃几率
影响火在其附近时传播到该方块表面上的几率和速率。引燃几率为正数的方块被称为可燃方块。(默认值:0)
burn_chance: 30 # 0-100
物品
决定方块对应的物品是什么。通常在创造模式使用鼠标中键点击来获取方块。(默认值:null)
item: default:xxx_block_item
可替代
决定了方块是否可以被其他方块通过放置被直接替代掉,影响方块物品放置出方块的方式。(默认值:false)
replaceable: false
红石导体
决定了方块在红石信号传播中的影响。具有红石导体属性的方块被称为红石导体。(默认值:未定义)
is_redstone_conductor: true

窒息生物
决定了生物视平线处于其中时会发生窒息的方块。(默认值:未定义)
is_suffocating: true
视野阻挡
会使视平线处于其中的非旁观模式玩家渲染阻挡视线的效果。绝大多数窒息方块都是视野阻挡方块。但是,此选项对玩家毫无用处,但是它将影响服务器上的某些实体机制。(默认值:未定义)
is_view_blocking: true
音效
决定方块在各种情况下的音效。(默认值:null)
- fall 当玩家带有坠落伤害时坠落在方块上时
- hit 当玩家挖掘方块时
- break 当玩家破坏方块时
- step 当玩家在方块上行走时
- place 当玩家放置方块时
sounds:
break: minecraft:block.deepslate.break
step: minecraft:block.deepslate.step
place: minecraft:block.deepslate.place
hit: minecraft:block.deepslate.hit
fall: minecraft:block.deepslate.fall
您可以像这样配置以精确控制音量和音高
sounds:
break:
id: minecraft:block.deepslate.break
pitch: 0.5
volume: 0.25~0.3 # 范围值也支持
step: minecraft:block.deepslate.step
需要合适挖掘工具
决定了是否需要合适挖掘工具才能有效的挖掘这个方块(默认值:false)
require_correct_tools: false
尊重 tool 组件
决定 minecraft:tool 组件的 correct_for_drops 选项是否应像下面的 correct_tools 一样工作。(默认值:false)
respect_tool_component: false
合适挖掘工具
决定了什么物品可以有效地挖掘这个方块。(默认值:null)
correct_tools:
- minecraft:wooden_pickaxe
- minecraft:stone_pickaxe
- minecraft:iron_pickaxe
- minecraft:golden_pickaxe
- minecraft:diamond_pickaxe
- minecraft:netherite_pickaxe
如果设置了 correct_tools,那么 require_correct_tools 默认为 true。
挖掘惩罚
决定了如果不使用合适挖掘工具的挖掘速度是正常的多少倍(默认值:0.3)
incorrect_tool_dig_speed: 0.3 # 0~1
标签
标签决定了许多方块的属性。例如,使用 minecraft:mineable/axe 会让你的方块用斧挖掘时更快。(默认值:null)🏷️ 方块标签
tags:
- minecraft:mineable/axe
- minecraft:logs_that_burn
- minecraft:logs
- minecraft:completes_find_tree_tutorial
客户端侧标签
这只适用于原版方块
client_bound_tags:
- minecraft:beacon_base_blocks

乐器
决定了方块被放在音符盒下时,音符盒使用的乐器类型。(默认值:harp)
译者注:全部的乐器名称可以在这里查到
instrument: basedrum

流体状态
决定了方块状态的包含的流体状态。(默认值:empty)
fluid_state: water # empty/water

支撑形状
决定了方块提供的支撑形状。默认情况下,自定义方块会使用其对应视觉状态的支撑形状。但是,你可以在这里手动指定一个原版方块的支撑形状来代替。
support_shape: minecraft:stone

裂纹
决定了方块被挖掘时显示的裂纹。你可以指定若干自定义物品来替换原版的裂纹,并且可以自定义其偏移、旋转和缩放等变换。
destroy_stages:
items:
- minecraft:destroy_stage_0
- minecraft:destroy_stage_1
- minecraft:destroy_stage_2
# ... 任意数量的物品
destroy_stages:
translation: 0,0.5,0 # 偏移量 (x,y,z),推荐使用此方式调整位置
position: 0.5,0.5,0.5 # 相对位置 (x,y,z),默认方块中心
scale: 1,1,1 # 缩放 (x,y,z),也支持单个数字如 scale: 1.5
yaw: 0 # 绕 Y 轴旋转
pitch: 0 # 绕 X 轴旋转
rotation: 45 # 基于 Y 轴旋转
rotation: 45,45,0 # 欧拉角,见下方旋转工具
rotation: 0,0,0.707,0.707 # 四元数,见下方旋转工具
display_transform: none # 物品展示实体的模式,用于再次变换物品模型:
# none / third_person_left_hand / third_person_right_hand
# 不变换 / 第三人称视角左手变换 / 第三人称视角右手变换
# first_person_left_hand / first_person_right_hand
# 第一人称视角左手变换 / 第一人称视角右手变换
# head / gui / ground
# 放置在头部物品栏的变换 / 在图形界面中的变换 / 平铺在地面的变换
# fixed / on_shelf
# 默认变换 / 在展示架中的变换
billboard: fixed # fixed / vertical / horizontal / center
# 固定垂直和水平轴 / 固定垂直轴 / 固定水平轴 / 按照中心旋转跟随玩家视角
view_range: 1.0 # 可视距离系数
brightness: # 渲染亮度值,译者注:若需配置该选项则其子选项 `block_light` 和 `sky_light` 必填否则无效
block_light: 15
sky_light: 15

不稳定设置
接下来的方块设置只对非玩家实体生效
弹性碰撞系数(26.2+)
决定了生物下落到方块上后可以反弹多高。绝大多数方块的弹性碰撞系数为0,黏液块的弹性碰撞系数为1,床的弹性碰撞系数为0.75。如果是非生物实体下落导致的碰撞,则计算使用的弹性碰撞系数会额外乘上0.8。
bounce_restitution: 0.0
可通过⏏️ 弹跳方块强制为玩家实体同步
阻力系数
决定了方块与站在其上方的生物的“摩擦力”,影响生物的加速度并决定稳定移动速度。绝大多数方块的阻力系数为0.6,黏液块的阻力系数为0.8,冰、浮冰、霜冰的阻力系数为0.98,蓝冰的阻力系数为0.989。
friction: 0.6
跳跃乘数
jump_factor: 1.0
速度乘数
speed_factor: 1.0
剩余的方块设置都与光照系统有关。CraftEngine 已尽可能在不影响服务器性能的情况下实现了部分光照效果。客户端光照系统的视觉问题属于正常现象,在大多数情况下我也无法修复。
方块对天空光照的遮挡完全由客户端决定,无法通过服务器发送数据包来修复。因此,block_light 和 can_occlude 设置仅影响方块自身发出的光,不影响天空光照。
亮度
决定方块的光照等级。(默认值:0)
luminance: 15

阻挡光线
决定方块是否能阻挡光线。这也会决定该方块是否能将下方的方块转换为另一种类型(例如,草方块变为泥土)。(默认值:未定义)
can_occlude: false

can_occlude: true

can_occlude: false

can_occlude: false

can_occlude: true
散射光照
决定光线穿过此方块后降低的光照等级。(默认值:未定义)
block_light: 0

block_light: 15

block_light: 7

block_light: 0
传播天空光照
决定天空光照能否穿过该方块。
propagate_skylight: true