MCreator 特殊工具(Special)的 Blocks affected 参数:从 GUI 配置到代码生成原理
低代码代码生成桌面应用游戏开发【免费下载链接】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 中工具Tool元素的一个专用配置项Blocks affected受影响的方块展开它决定了一把特殊工具Special tool type能够以多快速度挖掘哪些方块。你将掌握该参数在 GUI 中的填写方式、它仅对 Special 工具类型生效的底层原因以及它在 NeoForge 代码生成模板中如何被翻译为getDestroySpeed判定逻辑的完整原理并附上仓库源码与集成测试的实证。1. 参数定义它控制什么MCreator 官方本地化帮助文档对Blocks affected给出了最精炼的定义德语版原文为Diese Liste legt fest, für welche Blöcke das Werkzeug verwendet werden kann.英文版plugins/mcreator-localization/help/en_GB/tool/blocks_affected.md则补充了一个关键前提This list defines what blocks the tool can be used on. This parameter is only used by the special tool type.即该列表定义工具可以作用于哪些方块且此参数仅由特殊工具类型使用。你可以在各语言版本的同一路径下找到对应帮助文件例如中文版位于 plugins/mcreator-localization/help/zh_CN/tool/blocks_affected.md。在 GUI 中该字段显示在工具元素属性页语言资源键为elementgui.tool.blocks_affected对应英文 Blocks affected: 见 plugins/mcreator-localization/lang/texts.properties德语为 Betroffene Blöcke: 。围绕它还有一批同属工具元素的相邻帮助文档可以对照阅读类型选择 type.md、挖掘效率 efficiency.md、方块掉落层级 blocks_drop_tier.md、修复材料 repair_items.md 以及方块破坏事件 when_block_destroyed.md。2. 数据模型blocksAffected 字段在 MCreator 源码中工具元素的数据模型定义于 src/main/java/net/mcreator/element/types/Tool.javaModElementReference public ListMItemBlock blocksAffected;要点说明类型为ListMItemBlock即一个可容纳多个方块或方块标签Tag的列表而非单个方块标注ModElementReference表示列表项是对工作区中其他 Mod 元素或原版资源的引用会参与跨元素的引用关系维护构造方法中初始化为空列表this.blocksAffected new ArrayList();见 Tool.java即新建工具时默认不限制任何方块。3. 适用前提为什么只有 Special 工具类型使用它工具类型字段在 Tool.java 中被限定为以下选项Pickaxe, Axe, Sword, Spade, Hoe, Shield, Shears, Fishing rod, Special, MultiTool而blocksAffectedPanel的可见性在 GUI 代码中被硬编码为仅当选中 Special 时显示见 src/main/java/net/mcreator/ui/modgui/ToolGUI.javaprivate void updateFields() { String selectedToolType (String) toolType.getSelectedItem(); if (selectedToolType ! null) { blockingModelPanel.setVisible(selectedToolType.equals(Shield)); blocksAffectedPanel.setVisible(selectedToolType.equals(Special)); ...这从 UI 层面印证了帮助文档该参数仅用于特殊工具类型的说明。原因从源码结构可以推断其他工具类型镐、斧、剑等的挖掘对象由原版的工具等级Tier与方块标签体系如MINEABLE_WITH_PICKAXE决定无需手工指定而 Special 类型没有内置的挖掘对象集合所以把哪些方块受本工具影响完全交给作者自定义。4. 界面配置如何填写方块与方块标签blocksAffected在 GUI 中由MCItemListField承载ToolGUI.javablocksAffected new MCItemListField(mcreator, ElementUtil::loadBlocksAndTags, false, true);其中ElementUtil::loadBlocksAndTags决定了列表候选来源为方块与方块标签与修复材料字段使用的loadBlocksAndItemsAndTags不同这里不含物品因此可以直接添加具体的原版方块或自定义方块如minecraft:dirt、工作区中自定义的方块元素也可以添加以TAG:开头的方块标签条目如TAG:walls、TAG:dirt从而一次性覆盖整类方块勾选/反选标记构造参数中的两个布尔值用于控制是否允许自由输入与多选行为。配置面板在属性页通过 ToolGUI.java 中的HelpUtils.wrapWithHelpButton(this.withEntry(tool/blocks_affected), ...)挂接帮助按钮点击即可弹出本篇所对应的帮助文档。5. 代码生成原理getDestroySpeed 与 containsAnyOfBlocks配置好的列表在生成 NeoForge 模组代码时会进入工具模板 plugins/generator-1.21.1/neoforge-1.21.1/templates/tool.java.ftl 中 Special 分支覆盖getDestroySpeed方法Override public float getDestroySpeed(ItemStack itemstack, BlockState blockstate) { return #if data.blocksAffected?has_content${containsAnyOfBlocks(data.blocksAffected blockstate)} ? ${data.efficiency}f : /#if1; }这里的语义是当列表非空时若目标方块命中列表或列表中的任一标签挖掘速度返回efficiency效率字段的值否则返回 1基础速度若列表为空则直接返回 1即不提供任何速度加成。相同的逻辑同样存在于下一代生成器 plugins/generator-26.3.x/neoforge-26.3/templates/tool.java.ftl两个受支持版本行为一致。实际生成的判定表达式由工具函数containsAnyOfBlocks拼装定义于 plugins/generator-1.21.1/neoforge-1.21.1/utils/mcitems.ftl。其核心处理分三类未映射的TAG:前缀条目→ 解析为方块标签映射后以#开头的条目→ 视为原版方块标签去掉#后解析普通方块条目→ 生成mappedBlockToBlock(block)的具体方块注册项。随后按内容拼装最终表达式仅含普通方块时List.of(BlockA, BlockB).contains(blockstate.getBlock())含标签时Stream.of(BlockTags.create(ResourceLocation.parse(tag名))).anyMatch(blockstate::is)两类混用时会用||连接多个标签之间也是||关系即命中任一即生效。这意味着添加多个方块/标签是按或逻辑生效的且普通方块与标签之间不互相排除可以自由混用。6. 与相邻参数及内置工具类型的对比理解 Blocks affected 后可以顺带厘清它与同页其他参数的分工参数作用与 Blocks affected 的关系efficiency效率工具的挖掘速度数值Blocks affected 决定对谁生效efficiency 决定生效时多快blocks_drop_tier掉落层级决定能否正确掉落对应等级的方块Special 类型下此面板被隐藏见 ToolGUI.java与 Blocks affected 互斥内置工具Pickaxe 等由Tier的getIncorrectBlocksForDrops与MINEABLE_WITH_*标签体系驱动不使用 Blocks affected见 tool.java.ftlMultiTool通过重写isCorrectToolForDrops综合多个MINEABLE_WITH_*标签判断同样不使用 Blocks affected此外Special 类型在 tool.definition.yaml 中被加入ITEMS:minecraft:pickaxes标签条件为toolType % Special使特殊工具在创造模式物品栏中归属于镐类标签便于与其他工具一并检索。7. 集成测试实证MCreator 的集成测试数据提供器 src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java 为 Special 工具准备了标准测试样本tool.blocksAffected new ArrayList(); if (!emptyLists Special.equals(toolType)) { ListMCItem blocksAndTags ElementUtil.loadBlocksAndTags(modElement.getWorkspace()); tool.blocksAffected.addAll( blocksAndTags.stream().map(e - new MItemBlock(modElement.getWorkspace(), e.getName())).toList()); tool.blocksAffected.add(new MItemBlock(modElement.getWorkspace(), TAG:walls)); tool.blocksAffected.add(new MItemBlock(modElement.getWorkspace(), TAG:dirt)); }该用例同时覆盖了普通方块条目与TAG:方块标签条目两种输入形式验证了模板对两类条目的解析与生成链路是完整的。这也从侧面提示只要工作区中存在任意方块/标签Special 工具就应当能生成对应的getDestroySpeed判定代码。8. 实践要点总结基于以上源码链路使用Blocks affected时有几点值得注意仅 Special 类型可见切换到其他工具类型时该面板自动隐藏编辑已存在的 Special 工具再切换类型会保留数据但不再生效列表为空 无速度加成getDestroySpeed直接返回 1工具不会获得任何针对方块的挖掘加速支持标签批量覆盖优先使用TAG:方块标签可让自定义工具天然兼容后续新增方块如模组后续加入的同标签方块判定为或关系列表内任意命中即返回效率值无需担心多个条目互相冲突与掉落层级联动Special 类型不参与方块掉落等级判定如需控制能否正确掉落方块应搭配其他机制如附加掉落条件additionalDropCondition。9. 延伸阅读工具元素完整字段模型src/main/java/net/mcreator/element/types/Tool.java工具 GUI 完整布局与字段联动src/main/java/net/mcreator/ui/modgui/ToolGUI.javaSpecial 分支生成模板plugins/generator-1.21.1/neoforge-1.21.1/templates/tool.java.ftl方块判定宏实现plugins/generator-1.21.1/neoforge-1.21.1/utils/mcitems.ftl工具元素定义与标签映射plugins/generator-1.21.1/neoforge-1.21.1/tool.definition.yaml集成测试用例src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java同主题帮助文档德语版efficiency.md、blocks_drop_tier.md、type.md赞分享低代码代码生成桌面应用游戏开发【免费下载链接】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 工具效率Efficiency参数详解从界面配置到代码生成原理MCreator 工具效率Efficiency参数详解从界面配置到代码生成原理 本文围绕 MCreator 的「工具」Tool元素中「效率」Effi低代码代码生成桌面应用游戏开发MCreator 粒子视觉缩放Scale参数深度解析从 GUI 配置到代码生成原理MCreator 粒子视觉缩放Scale参数深度解析从 GUI 配置到代码生成原理 粒子视觉缩放Scale是 MCreator 粒子元素中用于控制低代码代码生成桌面应用游戏开发MCreator 方块 GUI 绑定Bind GUI完整指南从参数配置到 NeoForge 代码生成MCreator 方块 GUI 绑定Bind GUI完整指南从参数配置到 NeoForge 代码生成 导读 在 MCreator 中绑定 GUIB低代码代码生成桌面应用游戏开发上一篇Handy离线语音转文字安装全攻略轻松解决5大常见问题下一篇RuoYi-Vue3 Excel导出全链路解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

DeepSeek-V2 机制拆解:KV 缓存压缩 93.3% 是怎么做到的

DeepSeek-V2 机制拆解:KV 缓存压缩 93.3% 是怎么做到的

DeepSeek-V2 机制拆解:KV 缓存压缩 93.3% 是怎么做到的 【免费下载链接】DeepSeek-V2 DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V2 DeepSeek-V2 是…

2026/10/17 2:03:30 阅读更多 →
如何基于 Qwen2-7B_rai_1.8.0_medusa_1.0_npu 微调你的领域模型:从数据准备到效果评测完整教程

如何基于 Qwen2-7B_rai_1.8.0_medusa_1.0_npu 微调你的领域模型:从数据准备到效果评测完整教程

人工智能大模型 【免费下载链接】Qwen2-7B_rai_1.8.0_medusa_1.0_npu 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen2-7B_rai_1.8.0_medusa_1.0_npu 点击查看 免费下载 想在金融、医疗、客服等领域拥有一个"懂行"的大语言模型?Qwen2…

2026/10/17 2:03:30 阅读更多 →
还在让 AI 瞎编需求文档?PM Skills Marketplace 用 68 个技能把方法论装进对话框

还在让 AI 瞎编需求文档?PM Skills Marketplace 用 68 个技能把方法论装进对话框

还在让 AI 瞎编需求文档?PM Skills Marketplace 用 68 个技能把方法论装进对话框 【免费下载链接】pm-skills PM Skills Marketplace: 100 agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth. 项目地址: http…

2026/10/17 2:03:30 阅读更多 →

最新新闻

PDMS-AVEVA-E3D二次开发教程(18):批量化作业与无人值守——任务清单、幂等、日志与失败隔离

PDMS-AVEVA-E3D二次开发教程(18):批量化作业与无人值守——任务清单、幂等、日志与失败隔离

版本声明 本篇基线为 AVEVA E3D Design 3.1,涉及前代 AVEVA PDMS 处显式标注。PML Add-in 机制的小节标题(Defining a PML Add-in、PML Application Control Object、Create a PLOBJ Control File、Create a UIC File、How to Add a PML Add-in to the P…

2026/10/17 2:33:37 阅读更多 →
PDMS-AVEVA-E3D二次开发教程(19):PDMS 到 E3D 的定制迁移——三类资产、代际差异与自查脚本

PDMS-AVEVA-E3D二次开发教程(19):PDMS 到 E3D 的定制迁移——三类资产、代际差异与自查脚本

版本声明 本篇基线为 AVEVA E3D Design 3.1;前代产品统一写作 AVEVA PDMS。政策事实:自 2024 年 4 月 1 日起,AVEVA PDMS 不再销售、不再提供支持,研发投入全部转向 E3D Design。迁移路径包括本地或云端部署,也可作为 …

2026/10/17 2:33:37 阅读更多 →
AI Agent 新利器:用 linear-cli Skill 让 Claude Code 在终端自动创建 Issue 与更新状态

AI Agent 新利器:用 linear-cli Skill 让 Claude Code 在终端自动创建 Issue 与更新状态

【免费下载链接】linear-cli linear without leaving the command line: list, start, and create PRs for linear issues. agent friendly. 项目地址: https://gitcode.com/gh_mirrors/lin/linear-cli 点击查看 免费下载 如果你正在用 Claude Code 等 AI Agent 写…

2026/10/17 2:33:37 阅读更多 →
Dubbo+Zookeeper实战:从零搭建分布式服务调用链路

Dubbo+Zookeeper实战:从零搭建分布式服务调用链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 2:33:37 阅读更多 →
最大似然位同步算法解析:从原理到FPGA工程实现

最大似然位同步算法解析:从原理到FPGA工程实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 2:33:37 阅读更多 →
Python+Selenium实现OA自动打卡:开发踩坑与运维复盘

Python+Selenium实现OA自动打卡:开发踩坑与运维复盘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 2:32:37 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →