低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载导读在 MCreator 的基岩版物品Bedrock Item编辑器中「挖掘条目Digger entries」是一组用于定义工具挖掘能力的核心配置它声明了该工具会受到影响的方块或方块标签并为每一项指定对应的挖掘速度。本文围绕 digger_entries.md 的官方说明展开结合仓库中的 GUI 实现、数据模型与代码生成模板完整讲解挖掘条目的含义、配置方式、源码级工作原理以及它与效率附魔Efficiency的联动机制帮助你在创作基岩版 Add-On 时精确控制工具的开采行为。一、挖掘条目的官方定义逐句解读原文档 digger_entries.md 的全文如下英文原文它是理解该功能的第一手依据The following list declares all possible blocks and tags that will be affected by this tool. Each entry can define the speed at which this tool will break the selected block/blocks from the tag.If a block (as a standalone block or part of a tag) is not present inside this list, the block will keep the normal behavior.将这段话拆解为三条核心规则作用域声明挖掘条目列表声明了该工具会受到影响的所有方块与标签。列表中的每一项既可以是一个独立方块如minecraft:stone也可以是一整类方块构成的标签如minecraft:logs。逐项速度控制每个条目都可以为该条目选中的方块或标签下的所有方块单独定义挖掘速度从而实现对不同方块有不同破坏速率的差异化工具效果。默认回退行为如果一个方块无论它是独立方块还是某个标签的一部分没有出现在此列表中它将保持 Minecraft 的正常行为——即该工具对它没有特殊挖掘加成破坏速度遵循游戏原有的计算逻辑。简而言之挖掘条目就是一张工具能力白名单只有被明确列出的方块/标签才会享受到你指定的挖掘速度列表之外的一切都维持原状。二、挖掘条目的数据模型一个条目由什么组成在仓库的源码中每个挖掘条目的数据结构定义在 src/main/java/net/mcreator/element/types/bedrock/BEItem.java 的DiggerEntry内部类中public static class DiggerEntry { ModElementReference public MItemBlock block; Numeric(init 1, min 0, max Integer.MAX_VALUE, step 1) public int speed; public DiggerEntry(MItemBlock block, int speed) { this.block block; this.speed speed; } }这里可以明确两个字段的语义与约束字段类型含义取值范围blockMItemBlock受影响的方块或标签带ModElementReference注解支持引用自定义方块方块 ID 或TAG:开头的标签speedint整数该工具对目标方块/标签的挖掘速度min 0max Integer.MAX_VALUE默认值1步长1注意speed是整数这是 MCreator 对原版 Bedrock 组件模型的具体化它没有上限最大值是 Java 的Integer.MAX_VALUE意味着理论上可以做出瞬间破坏的极端工具。而block字段同时接受独立方块与标签这与文档中blocks and tags的表述完全一致。同时BEItem的数据类在 同一文件的 76-77 行 声明了物品层面的两个相关属性public boolean diggerUseEfficiency; ModElementReference public ListDiggerEntry diggerEntries;diggerUseEfficiency布尔值是否让效率附魔影响挖掘速度对应下文第五节。diggerEntries挖掘条目列表新建物品时在 构造函数中初始化为空列表即默认一个条目都没有——按文档规则此时该工具对所有方块都保持正常行为。三、UI 操作在哪里配置挖掘条目挖掘条目的编辑界面位于基岩版物品编辑器BEItem的 GUI 中实现类是 src/main/java/net/mcreator/ui/modgui/bedrock/BEItemGUI.java。3.1 列表的挂载位置从源码看该列表被组织在工具属性tool properties面板之下。在 BEItemGUI.java 的 293-318 行 中toolProperties是一个 3 行 2 列的网格面板依次包含附魔槽位enchantment slot与可附魔开关附魔等级值enchantability value效率附魔开关diggerUseEfficiency对应帮助文档 tool_use_efficiency.md以及下方挂载的挖掘条目列表diggerEntries。列表标签通过HelpUtils.wrapWithHelpButton(this.withEntry(beitem/digger_entries), ...)关联到本文所述的帮助文档也就是说你在界面上点击这个列表标题旁的帮助按钮看到的正是 digger_entries.md 的内容。3.2 条目编辑器 JDiggerEntry每个条目由 src/main/java/net/mcreator/ui/minecraft/bedrock/digger/JDiggerEntry.java 渲染布局为一行三个部分影响方块/标签选择器MCItemHolder block该组件通过ElementUtil::loadBlocks加载方块列表并传入true参数以允许选择标签tag。选择器还挂载了MCItemHolderValidator校验器空值会触发校验失败提示。挖掘速度数值框JSpinner speed通过ComponentFromAnnotation.spinner(...)根据Numeric注解自动生成即上文提到的整数区间[0, Integer.MAX_VALUE]默认 1。两个控件各带一个帮助按钮分别关联帮助文档 digger_block.md 与 digger_speed.md。条目的读写通过getEntry()/setEntry()完成保存时调用new BEItem.DiggerEntry(block.getBlock(), (Integer) speed.getValue())组装数据。列表中添加条目按钮的文案来自国际化键elementgui.beitem.add_digger_entry添加挖掘条目。3.3 列表容器 JDiggerList列表本体由 src/main/java/net/mcreator/ui/minecraft/bedrock/digger/JDiggerList.java 实现它继承JSimpleEntriesListJDiggerEntry, BEItem.DiggerEntry支持动态增删多个条目。其校验逻辑会聚合所有子条目的校验结果AggregatedValidationResult确保保存前每个条目都选择了有效的方块/标签。3.4 数据流转GUI 与数据模型的绑定发生在 BEItemGUI.java 的 428-475 行打开元素时diggerEntries.setEntries(item.diggerEntries)将已保存的条目回填到界面保存元素时item.diggerEntries diggerEntries.getEntries()与item.diggerUseEfficiency diggerUseEfficiency.isSelected()将界面状态写回数据模型。从源码结构看挖掘条目使用ModElementReference引用方块意味着引用其他 MCreator 元素时需重新映射remap依赖这与一般的方块引用机制一致。四、代码生成挖掘条目如何写入 Add-On JSON挖掘条目的最终产物是基岩版物品定义 JSON 中的minecraft:digger组件。生成模板位于 plugins/generator-addon-26.5x/addon-26.5x/templates/item.json.ftl#if data.diggerEntries?? !data.diggerEntries.isEmpty() minecraft:digger: { use_efficiency: ${data.diggerUseEfficiency}, destroy_speeds: [ #list data.diggerEntries as entry { block: ${mappedMCItemToRegistryNameOrTag(entry.block)}, speed: ${entry.speed} }#sep, /#list ] }, /#if该模板揭示了几点实现细节条件输出只有当diggerEntries非空时minecraft:digger组件才会被写入 JSON。列表为空则整个组件不生成——这正是文档未列入则保持正常行为的底层保证。use_efficiency直接输出布尔值data.diggerUseEfficiency控制效率附魔是否作用于destroy_speeds。条目序列化每个条目输出一个{ block: ..., speed: ... }对象多个条目用逗号分隔FreeMarker 的#sep指令。其中block字段的序列化由宏 mappedMCItemToRegistryNameOrTag 完成#function mappedMCItemToRegistryNameOrTag mappedBlock #if mappedBlock.getUnmappedValue().startsWith(TAG:) #return {\tags\: \q.any_tag(\ mappedBlock.asTagEntry() \)\ } #else #return \ mappedMCItemToRegistryNameNoTags(mappedBlock) \ /#if /#function可见标签与独立方块在 JSON 中的表达方式不同标签以TAG:开头的映射值输出为{ tags: q.any_tag(标签名) }即 Bedrock 的q.any_tag查询语法表示该条目匹配标签下的所有方块独立方块输出为带引号的注册名如minecraft:stone。同时可以对照宏 mappedMCItemToRegistryNameNoTags若传入的是CUSTOM:MCreator 自定义元素会解析为${modid}:registryname形式若传入的是无命名空间的标签或TAG:标签则回退为minecraft:air该宏本身不直接用于 digger 输出但说明了方块引用归一化的完整规则。最终生成的minecraft:digger组件是 Bedrock 原生物品组件由基岩版运行时解释执行因此挖掘条目的实际游戏效果由 Minecraft Bedrock 的组件机制保证。五、两个强关联的配套设置挖掘条目不是孤立功能它与另外两个帮助文档描述的设置紧密配合建议一起配置5.1 挖掘速度Digging speed对应文档 digger_speed.md控制方块被开采的速度The speed at which the block will be mined. If you set this value to0, the item will not be able to destroy the block.要点速度值越大破坏方块越快设置为0时该工具将完全无法破坏对应的方块——这在数据模型中由Numeric(min 0)注解保证BEItem.java不可破坏是一个合法的显式声明而非错误状态该值以整数形式写入destroy_speeds的speed字段属于 Bedrock 组件语义中的破坏速度系数。5.2 效率附魔开关Tool use efficiency对应文档 tool_use_efficiency.mdIf true, the Efficiency enchantment will affect the destroy speeds of the diggeable blocks.勾选后效率附魔会作用于挖掘条目中声明的方块即附魔等级越高destroy_speeds中列出的方块破坏越快未勾选时效率附魔对这些方块无效其布尔值在生成时被直接写入minecraft:digger组件的use_efficiency字段item.json.ftl与挖掘条目一同生效。六、选块与选标签的辅助说明挖掘条目中的影响方块/标签选择器对应帮助文档 digger_block.mdThis is the block or the tag that will be affected by the chosen speed. For all vanilla block tags, check this page选择器中可填入独立方块或方块标签官方文档建议查阅 Minecraft Wiki 的Bedrock 版方块标签Block tag页面以确认原版标签的准确名称例如原版的minecraft:logs、minecraft:planks等木材类标签便于让工具批量影响某一类方块标签选择方式在代码中体现为MCItemHolder的 tag 支持new MCItemHolder(mcreator, ElementUtil::loadBlocks, true)第三个参数即允许标签并在生成时通过q.any_tag语法输出见第四节。七、实战配置示例综合以上内容一个典型配置流程如下在 MCreator 中创建或打开一个基岩版物品元素切到物品编辑器的工具属性区点击挖掘条目列表的添加挖掘条目按钮对应源码elementgui.beitem.add_digger_entry的添加挖掘条目文案在条目中选择一个方块或标签如minecraft:stone或TAG:minecraft:logs设置对应的挖掘速度如2、3或更快的值设为0表示无法破坏重复上述步骤为不同方块/标签添加多个条目实现差异化挖掘若希望效率附魔加成勾选效率附魔影响挖掘速度开关diggerUseEfficiency生成 Add-On编译产物中会得到带minecraft:digger组件的物品 JSON。例如添加两个条目后生成的 JSON 片段形如minecraft:digger: { use_efficiency: true, destroy_speeds: [ { block: minecraft:stone, speed: 3 }, { block: { tags: q.any_tag(minecraft:logs) }, speed: 4 } ] }上述输出形式依据 item.json.ftl 与 mcitems.ftl 的序列化逻辑推演。八、完整链路小结把本文涉及的源码串联起来挖掘条目的完整生命周期是环节仓库文件职责帮助文档digger_entries.md定义条目语义白名单机制、逐项速度、默认回退数据模型BEItem.javaDiggerEntryblock speed与diggerEntries列表编辑 UIBEItemGUI.java、JDiggerList.java、JDiggerEntry.java条目的增删改查、校验与帮助按钮代码生成item.json.ftl、mcitems.ftl输出minecraft:digger组件区分方块与标签序列化九、常见问题与注意事项列表为空时会发生什么按文档规则与模板逻辑#if data.diggerEntries?? !data.diggerEntries.isEmpty()minecraft:digger组件不会被生成工具对所有方块保持正常行为。速度可以设为 0 吗可以且语义明确该工具无法破坏对应方块见 digger_speed.md 与Numeric(min 0)约束。同一个方块既在标签中又被单独列出怎么办文档说明标签下的方块同样受白名单规则约束——只要方块无论以何种形式出现在列表中就应用对应条目的速度MCreator 允许为独立方块与标签分别建立条目实际以生成的destroy_speeds数组为准。标签与独立方块的 JSON 写法不同标签使用q.any_tag查询表达式独立方块使用注册名字符串二者不可混用写法由 mcitems.ftl 自动区分处理。效率附魔联动只有勾选Tool use efficiency后效率附魔才会提升白名单内方块的破坏速度。通过本文的配置说明与源码级解析你可以准确地在 MCreator 中为基岩版工具类物品设计按方块/标签差异化的挖掘能力并理解其最终落到minecraft:digger组件上的完整实现原理。赞分享低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载相关推荐MCreator 基岩版物品BEItem挖掘条目配置指南Digger Entries 的方块标签、挖掘速度与效率附魔行为MCreator 基岩版物品BEItem挖掘条目配置指南Digger Entries 的方块标签、挖掘速度与效率附魔行为 导读 在 MCreator 中制低代码代码生成桌面应用游戏开发MCreator 基岩版物品BEItem挖掘目标配置指南digger_block 方块/标签详解MCreator 基岩版物品BEItem挖掘目标配置指南digger_block 方块/标签详解 导读 在 MCreator 的基岩版 Add On 开发低代码代码生成桌面应用游戏开发MCreator 基岩版 Add-On 物品「挖掘速度」Digging Speed参数详解含义、取值规则与 item.json 生成机制MCreator 基岩版 Add On 物品「挖掘速度」Digging Speed参数详解含义、取值规则与 item.json 生成机制 导读 本文围绕低代码代码生成桌面应用游戏开发上一篇Plate Slate v2 编辑器运行时 API 形态设计read/update 生命周期、tx 变换与扩展命名空间下一篇VeleroArkrestore 命令完全指南Kubernetes 集群恢复的 CLI 操作手册创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考