跳到主要内容

📦️ 数据包

信息

推荐使用 Misode 数据包生成器辅助编写配置。点击网站右上角的语言图标,并在列表底部选择简体中文即可切换语言。

方块状态提供器

CraftEngine 支持在数据包中使用自定义方块,因此可以通过数据包生成地形、树木和矿脉等内容。

下面是一个适用于 Minecraft 1.21.4 的树木配置示例:

{
"type": "minecraft:tree",
"config": {
"ignore_vines": true,
"force_dirt": false,
"minimum_size": {
"type": "minecraft:two_layers_feature_size",
"min_clipped_height": 10,
"limit": 1,
"lower_size": 0,
"upper_size": 2
},
"dirt_provider": {
"type": "minecraft:simple_state_provider",
"state": {
"Name": "minecraft:sand"
}
},
"trunk_provider": {
"type": "craftengine:simple_state_provider",
"state": {
"Name": "default:palm_log",
"Properties": {
"axis": "y"
}
}
},
"foliage_provider": {
"type": "craftengine:simple_state_provider",
"state": {
"Name": "default:palm_leaves",
"Properties": {
"distance": "7",
"persistent": "false",
"waterlogged": "false"
}
}
},
"trunk_placer": {
"type": "minecraft:straight_trunk_placer",
"base_height": 6,
"height_rand_a": 5,
"height_rand_b": 0
},
"foliage_placer": {
"type": "minecraft:cherry_foliage_placer",
"radius": 5,
"offset": 0,
"height": 4,
"wide_bottom_layer_hole_chance": 0.8,
"corner_hole_chance": 1,
"hanging_leaves_chance": 0.8,
"hanging_leaves_extension_chance": 0.4
},
"decorators": []
}
}

提示

与 Minecraft 原版数据包相比,主要区别是命名空间 ID 从 minecraft 改为 craftengine,其余配置格式保持一致。目前,CraftEngine 支持以下方块状态类型:

  • craftengine:simple_state_provider
  • craftengine:weighted_state_provider
  • craftengine:rotated_block_provider
  • craftengine:randomized_int_state_provider

上述类型的用法和效果与 Minecraft 原版数据包中的同名类型一致。

提示

上面的示例使用完整结构指定方块状态:

"state": {
"Name": "default:palm_wood",
"Properties": {
"axis": "z"
}
}

也可以改用以下简写:

"state": "default:palm_wood[axis=z]"

已配置的地物

在放置双层植物或其他由多个状态组成的方块时,Minecraft 原生的放置逻辑存在硬编码问题,常导致仅生成下半部分等错误。为此,CraftEngine 引入了一种新的已配置地物类型 craftengine:simple_block,其用法与 minecraft:simple_block 类似,但针对 CraftEngine 中的多状态方块提供了更完善的兼容性处理。

{
"type": "minecraft:random_patch",
"config": {
"feature": {
"feature": {
"type": "craftengine:simple_block",
"config": {
"to_place": {
"type": "craftengine:simple_state_provider",
"state": {
"Name": "default:palm_door"
}
}
}
},
"placement": [
{
"type": "minecraft:block_predicate_filter",
"predicate": {
"type": "minecraft:matching_blocks",
"blocks": "minecraft:air"
}
}
]
},
"tries": 96,
"xz_spread": 7,
"y_spread": 3
}
}

警告

CraftEngine 并未在所有场景中适配自定义 ID。目前,只有由 CraftEngine 直接注册的地物类型能够自动解析自定义 ID。如果某项功能因硬编码限制而无法使用 CraftEngine 的命名空间 ID,请改用内部对应的真实方块 ID,例如 craftengine:custom_0

参阅获取方块内部 ID,了解如何查询自定义方块对应的真实方块 ID。

战利品

要在原版战利品表中使用 CraftEngine 物品,请按以下格式配置。这种写法适用于自然生成的容器、方块掉落物和钓鱼战利品等场景。

{
"type": "minecraft:fishing",
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "craftengine:item",
"name": "default:palm_log",
"weight": 60
},
{
"type": "craftengine:item",
"name": "default:chinese_lantern",
"weight": 25
},
{
"type": "minecraft:item",
"name": "minecraft:tropical_fish",
"weight": 2
},
{
"type": "minecraft:item",
"name": "minecraft:pufferfish",
"weight": 13
}
],
"rolls": 1.0
}
],
"random_sequence": "minecraft:gameplay/fishing/fish"
}