跳到主要内容

📦️ 数据包

信息

访问 https://misode.github.io/ 获取最佳数据包开发体验。

译者注:网站的右上角的地球图案点击拉到最下面可以切换为简体中文。

方块状态提供器

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 功能强大,但其原生机制并未在所有场景下都适配自定义标识符。目前,仅有通过 CraftEngine 直接注册的特性类型能自动解析自定义ID。若您遇到因硬编码限制而不支持直接使用 CraftEngine 的命名空间ID的情况,请改用其内部对应的真实方块的命名空间ID,例如 craftengine:custom_0

点击这里了解如何获取自定义方块的真实方块命名空间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"
}