<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://mdtwiki.top/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bmte</id>
	<title>Mindustry中文wiki - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://mdtwiki.top/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bmte"/>
	<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Bmte"/>
	<updated>2026-04-03T22:48:54Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V149&amp;diff=3671</id>
		<title>V149</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V149&amp;diff=3671"/>
		<updated>2026-03-17T10:36:55Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面，内容为“__NOTOC__ &amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;  &amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v149&amp;lt;/div&amp;gt;  &amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt; {| class=&amp;quot;mdtSideTable&amp;quot; |- ! 版本 | release build 149 |- ! Android版本 | ????? |- ! 内部版本 | ????? |- ! Github&amp;lt;br&amp;gt;Release | [https://github.com/Anuken/Mindustry/releases/tag/v149 v8 Build 149 - Beta] |- ! Steam版本 | ????? |} &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;  &amp;lt;div class=&amp;quot;mdtMa…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v149&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| release build 149&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v149 v8 Build 149 - Beta]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| ?????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
注意：这个文档使用了AI辅助翻译，内容仅供参考，不保证其准确性。&amp;lt;br&amp;gt;&lt;br /&gt;
v149版本修复了大量问题，新增了多项功能，并对埃里克尔内容进行了平衡调整。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 为硅冶炼厂添加了冰冻森林完成度的要求。&lt;br /&gt;
* 为按键绑定对话框添加了搜索栏。&lt;br /&gt;
* 添加了一个模组注册自定义按键的新系统（使用原版按键的现有模组将会出现问题）。&lt;br /&gt;
* 添加了为具备采矿能力的单位手动选择矿物的方式。&lt;br /&gt;
* 为恒星/耀星添加了采矿指令能力。&lt;br /&gt;
* 为物品桥添加了物品吞吐量的统计信息。&lt;br /&gt;
* 为逻辑处理器添加了重置按钮。&lt;br /&gt;
* 允许选择/指挥由逻辑处理器绑定的单位。&lt;br /&gt;
* 选中的单位现在会显示所有可用的姿态/指令，即使这些指令并非所有单位共有。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 改进了服务器上基于单位的导弹的视觉插值。&lt;br /&gt;
* 对埃里克尔电力方块和炮塔进行了许多平衡性调整。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* 修复了与寻路相关的各种错误。&lt;br /&gt;
* 修复了地图编辑器的一次崩溃。&lt;br /&gt;
* 修复了波次中的海军单位在寻路时忽略墙壁的问题。&lt;br /&gt;
* 修复了RTS AI在许多情况下无限生产单位的问题。&lt;br /&gt;
* 修复了战役在游戏关闭时不保存波次状态的问题。&lt;br /&gt;
* 修复了超速状态不保存的问题。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V148&amp;diff=3670</id>
		<title>V148</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V148&amp;diff=3670"/>
		<updated>2026-03-17T10:34:58Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v148&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| beta build 148&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v148 v8 Build 148 - Beta]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| ?????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
注意：这个文档使用了AI辅助翻译，内容仅供参考，不保证其准确性。&amp;lt;br&amp;gt;&lt;br /&gt;
v148版本修复了多项问题，添加了新的逻辑功能，并对埃里克尔炮塔进行了平衡调整。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 添加了逻辑中通过[accent]%[颜色名][]使用命名颜色的支持。&lt;br /&gt;
* 添加了关于显示屏尺寸和绘制缓冲区大小的传感器。&lt;br /&gt;
* 添加了平铺逻辑显示屏方块。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 移除了塑钢压缩机研究中焦油田的要求。&lt;br /&gt;
* 撤销了桥梁花费的增加。&lt;br /&gt;
* 使真菌通道成为解锁二级单位的必要条件。&lt;br /&gt;
* 对埃里克尔炮塔进行了弹药平衡调整。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* 修复了专用服务器上自动暂停的一些问题。&lt;br /&gt;
* 修复了科技树中信息按钮在桌面端无法点击的问题。&lt;br /&gt;
* 修复了移动端指挥按钮不显示的问题。&lt;br /&gt;
* 修复了创伤炮塔统计信息显示不正确的问题。&lt;br /&gt;
* 修复了液体运输方块满时过于易爆的问题。&lt;br /&gt;
* 修复了安卓上返回键不能暂停游戏的问题。&lt;br /&gt;
* 修复了移动建造计划时在桌面端总是将其移至前端的问题。&lt;br /&gt;
* 对起源、海港和萃取前哨进行了各种细微的地图修复。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V147&amp;diff=3669</id>
		<title>V147</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V147&amp;diff=3669"/>
		<updated>2026-03-16T12:23:44Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v147&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| beta build 147&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [[https://github.com/Anuken/Mindustry/releases/tag/v147 v8 Build 147 - Beta]]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| ?????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
注意：这个文档使用了AI辅助翻译，内容仅供参考，不保证其准确性。&amp;lt;br&amp;gt;&lt;br /&gt;
以下是官方介绍的翻译。&amp;lt;br&amp;gt;&lt;br /&gt;
这是v8的测试版本。它不包含任何新的瘤液阵营内容——这些内容将包含在未来的测试版中。&lt;br /&gt;
&lt;br /&gt;
由于距上次发布已过去一年，此版本包含大量更改。以下是亮点：&lt;br /&gt;
&lt;br /&gt;
塞普罗战役彻底重做，新增许多用户提交的地图并重制了现有地图&lt;br /&gt;
战役新增难度调整器&lt;br /&gt;
新的发射台机制——现在需要着陆平台才能接收资源&lt;br /&gt;
行星际加速器的新功能（仍在开发中）&lt;br /&gt;
现在可以在多人游戏中查看其他玩家的科技树&lt;br /&gt;
科技树中的区块拥有独特的图标&lt;br /&gt;
为不同行星（或模组，如果选择支持）添加了核心数据库选项卡&lt;br /&gt;
新增修复废墟建筑的功能&lt;br /&gt;
为埃里克尔添加了几个新的生产和 utility 方块&lt;br /&gt;
单位的指挥组热键&lt;br /&gt;
新的单位姿态：巡逻、停火、命令排队等&lt;br /&gt;
新的单位命令：循环载荷单位传输、移动到载荷方块等&lt;br /&gt;
单位命令选择的新视觉效果&lt;br /&gt;
新的单位寻路实现，性能提升并减少单位拥堵&lt;br /&gt;
新的游戏内地形编辑 UI&lt;br /&gt;
埃里克尔炮塔的新弹药类型&lt;br /&gt;
塞普罗炮塔弹药的平衡性与视觉改进&lt;br /&gt;
用于显示文本和应用绘图变换的逻辑处理器指令&lt;br /&gt;
新的系统，用于在世界处理器地图中显示任意游戏内纹理或形状&lt;br /&gt;
新的 UI 便于管理地图中的世界处理器脚本&lt;br /&gt;
逻辑方块（特别是世界处理器）的许多新功能&lt;br /&gt;
显著的渲染性能优化&lt;br /&gt;
&lt;br /&gt;
由于内部更改，此版本与 v7 Java 模组不兼容。参见 [https://mindustrygame.github.io/wiki/modding/8-migrationv8 此页面] 了解将 Java 模组更新至 v8 所需的更改列表。JSON 模组基本不受影响。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 塞普罗战役彻底重做，新增许多用户提交的地图并重制了现有地图。&lt;br /&gt;
* 战役新增难度调整器。&lt;br /&gt;
* 新的发射台机制——现在需要着陆平台才能接收资源。&lt;br /&gt;
* 行星际加速器的新功能（仍在开发中）。&lt;br /&gt;
* 现在可以在多人游戏中查看其他玩家的科技树。&lt;br /&gt;
* 科技树中的区块拥有独特的图标。&lt;br /&gt;
* 为不同行星（或模组，如果选择支持）添加了核心数据库选项卡。&lt;br /&gt;
* 新增修复废墟建筑的功能。&lt;br /&gt;
* 为埃里克尔添加了几个新的生产和 utility 方块。&lt;br /&gt;
* 单位的指挥组热键。&lt;br /&gt;
* 新的单位姿态：巡逻、停火、命令排队等。&lt;br /&gt;
* 新的单位命令：循环载荷单位传输、移动到载荷方块等。&lt;br /&gt;
* 单位命令选择的新视觉效果。&lt;br /&gt;
* 新的单位寻路实现，性能提升并减少单位拥堵。&lt;br /&gt;
* 新的游戏内地形编辑 UI。&lt;br /&gt;
* 埃里克尔炮塔的新弹药类型。&lt;br /&gt;
* 用于显示文本和应用绘图变换的逻辑处理器指令。&lt;br /&gt;
* 新的系统，用于在世界处理器地图中显示任意游戏内纹理或形状。&lt;br /&gt;
* 新的 UI 便于管理地图中的世界处理器脚本。&lt;br /&gt;
* 逻辑方块（特别是世界处理器）的许多新功能。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 塞普罗炮塔弹药的平衡性与视觉改进。&lt;br /&gt;
* 显著的渲染性能优化。&lt;br /&gt;
* 由于内部更改，此版本与 v7 Java 模组不兼容（JSON 模组基本不受影响）。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
（此版本未明确列出修复项，但包含在各项改进中。）&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=3668</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=3668"/>
		<updated>2026-03-16T11:13:54Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​添加介绍&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeHero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroLogo&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroText&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroTitle&amp;quot;&amp;gt;Mindustry-像素工厂 中文 Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroSubtitle&amp;quot;&amp;gt;官方内容 + 社区翻译补充&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroLinks&amp;quot;&amp;gt;[[塞普罗|塞普罗]] [[埃里克尔|埃里克尔]] [https://www.mindustry.top/ 资源站] [[逻辑|逻辑]] [[PVP模式|PVP]] [[模组|模组]] [[教程中心|教程]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== wiki介绍 ==&lt;br /&gt;
欢迎来到 Mindustry 中文 Wiki！你可以在这里找到游戏资料、条目翻译与社区补充内容。&amp;lt;br&amp;gt;&lt;br /&gt;
在过去的日子里Wiki一共被编辑了 {{NUMBEROFEDITS}} 次，总页面数 {{NUMBEROFPAGES}} ，有 {{NUMBEROFACTIVEUSERS}} 位贡献者参与了建设。&amp;lt;br&amp;gt;&lt;br /&gt;
游戏最新的发布版本是：&amp;lt;span style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;v155.4&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
加入wiki建设--1033427780&amp;lt;br&amp;gt;&lt;br /&gt;
==服务器推荐==&amp;lt;br&amp;gt;&lt;br /&gt;
Mindustry梦魔短祷：new.xem8k5.top&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 原版内容-v154.3 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[塞普罗|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;塞普罗&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;战役 / 科技 / 区块&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[埃里克尔|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;埃里克尔&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;战役 / 科技 / 区块&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[隐藏|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;隐藏&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;建筑 / 天气&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[地图编辑器|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;地图编辑器&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;地图编辑 / 导入与导出 / 游戏模式&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[服务器|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;服务器&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;游玩 / 搭建&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[模组|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;模组&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;下载 / 导入 / 创作&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[版本记录|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;版本记录&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;更新日志 / 游戏历史&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mindustry简介 ==&lt;br /&gt;
Mindustry（社区译像素工厂）是一款由个人开发者Anuken开发，融合了工厂自动化、塔防与即时战略元素的开源沙盒策略游戏。在游戏中玩家可以获取资源，建造复杂的工厂流水线，[[生存模式|建造防线]]保护[[核心]]，或制造[[单位]][[进攻模式|进攻敌方基地]]，玩家也可以体验[[沙盒模式|自由建造]]或[[PVP模式|与其他玩家对战]]等玩法。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;现在开始[[教程:踏上征途]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[资源库|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;资源库&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;游戏资源&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[地图库|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;地图库&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;优质地图&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[教程中心|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;教程中心&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;教程列表&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[百科|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;百科&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;常见问题汇总&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[黑话|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;黑话&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;术语整理&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[成就|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;成就&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;steam游戏成就&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 资源网站与工具 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://www.mindustry.top/ &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry资源站&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;资源/下载-wayzer&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://api.stng.fun/&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;STNGMDT资源站&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;地图/资源-stars&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://docs.qq.com/sheet/DVHNoS3lIcm1NbFFS &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry蓝图档案馆&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;表格&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://anuke.itch.io/mindustry &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry官网下载&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;itch.io&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://buibiu.github.io/imageToMLogicPage/#/ &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;图片转逻辑&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;工具&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://github.com/xhstoyea/Mindustry-mod-compilations &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组合集&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;GitHub&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[Learn Mindustry Mod|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组教程&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;教程&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://my.feishu.cn/wiki/space/7596651980311776474 &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;MindustryX官方文档&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;MindustryX&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wiki公告 ==&lt;br /&gt;
无&amp;lt;br&amp;gt;&lt;br /&gt;
发布者：&amp;lt;br&amp;gt;&lt;br /&gt;
发布时间：&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;查看[[历史公告]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Nv&amp;diff=3667</id>
		<title>模板:Nv</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Nv&amp;diff=3667"/>
		<updated>2026-03-16T10:38:16Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;效果：{{Nv}}文字{{Nv}}&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;sup&amp;gt;[需要考证]&amp;lt;/sup&amp;gt;&amp;lt;includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V146&amp;diff=3666</id>
		<title>V146</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V146&amp;diff=3666"/>
		<updated>2026-03-16T10:37:11Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​还有一些小问题&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v146&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| release build 146&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| 7-official-146&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| 30206&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v146 7.0 Build 146]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| steam build 146&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
注意：这个文档使用了AI辅助翻译，内容仅供参考，不保证其准确性。&amp;lt;br&amp;gt;&lt;br /&gt;
提示：翻译内容已经人工校验。&amp;lt;br&amp;gt;&lt;br /&gt;
v146版本主要修复了大量问题，并新增了逻辑指令和设置选项。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 添加了禁用全部光照的设置。&lt;br /&gt;
* 添加了逻辑单位自动寻路指令（默认波次寻路）。&lt;br /&gt;
* 逻辑Sensor指令支持护盾、内容ID（Look up指令的反向）。&lt;br /&gt;
* 添加了生成粒子效果的指令。&lt;br /&gt;
* 添加了逻辑同步指令。{{Nv}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 使逻辑Unit control的unbind指令将@unit设为null{{Nv}}。&lt;br /&gt;
* 使“任意”科技（即[[双科技]]）在[[沙盒模式]]外也可使用。&lt;br /&gt;
* 使[[载荷装载器]]不再接受来自[[载荷卸载器]]的输入。&lt;br /&gt;
* 设置工厂输出点现在会更新“上次操作”时间。&lt;br /&gt;
* 禁用了在多人游戏中（沙盒/PvP模式外）的队伍切换菜单。&lt;br /&gt;
* 略微降低了[[画板]]方块的硅消耗。&lt;br /&gt;
* [[创伤]]炮塔一发弹药消耗降低至15。&lt;br /&gt;
* 增强了[[准绳]]单位。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* 修复了单位与建筑花费倍率规则的多种问题。&lt;br /&gt;
* 修复了许多不同情况下的崩溃。&lt;br /&gt;
* 修复了多项Steam成就无法触发的问题。&lt;br /&gt;
* 修复了寻路无法穿过敌方实心方块的问题。&lt;br /&gt;
* 修复了海军单位有时试图在陆地上寻路的问题。&lt;br /&gt;
* 修复了iOS上大型存档无法导出游戏数据的问题。&lt;br /&gt;
* 修复了带有太空背景的水块导致背景变黑的问题。&lt;br /&gt;
* 修复了内部旧版方块成为逻辑常量的问题。&lt;br /&gt;
* 修复了[[电力节点]]双击导致交互速率限制触发的问题。&lt;br /&gt;
* 修复了单位有时无法被杀死的问题。&lt;br /&gt;
* 修复了拥有长路径的单位有时会无限重新计算路径的问题。&lt;br /&gt;
* 修复了玩家单位在某些有喷口的地图中卡住的严重问题。&lt;br /&gt;
* 修复了[[瘤变反应堆]]有时不爆炸的问题。&lt;br /&gt;
* 修复了单位在撞击角落时随机死亡的问题。&lt;br /&gt;
* 修复了穿透子弹过早击中子弹“下方”的方块的问题。&lt;br /&gt;
* 修复了导弹对单位造成双倍伤害的问题。&lt;br /&gt;
* 修复了帧率限制不准确的问题。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V146&amp;diff=3665</id>
		<title>V146</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V146&amp;diff=3665"/>
		<updated>2026-03-16T10:28:29Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​补充&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v146&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| release build 146&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| 7-official-146&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| 30206&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v146 7.0 Build 146]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| steam build 146&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
注意：这个文档使用了AI辅助翻译，内容仅供参考，不保证其准确性。&lt;br /&gt;
v146版本主要修复了大量问题，并新增了逻辑指令和设置选项。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 添加了禁用全部光照的设置。&lt;br /&gt;
* 添加了逻辑单位自动寻路指令（默认波次寻路）。&lt;br /&gt;
* 添加了逻辑传感器，支持护盾、内容ID（查找指令的反向）。&lt;br /&gt;
* 添加了逻辑粒子效果指令。&lt;br /&gt;
* 添加了逻辑同步指令。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 使逻辑解除绑定指令将@unit设为null。&lt;br /&gt;
* 使“任意”环境在沙盒模式外也可访问。&lt;br /&gt;
* 使载荷装载器不再接受来自载荷卸载器的输入。&lt;br /&gt;
* 设置工厂输出点现在会更新“上次操作”时间。&lt;br /&gt;
* 禁用了在多人游戏中（沙盒/PvP模式外）的队伍切换菜单。&lt;br /&gt;
* 略微降低了画板方块的硅消耗。&lt;br /&gt;
* 创伤炮塔的弹药消耗降低至15。&lt;br /&gt;
* 增强了准绳单位。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* 修复了单位与建筑花费倍率规则的多种问题。&lt;br /&gt;
* 修复了许多不同情况下的崩溃。&lt;br /&gt;
* 修复了多项Steam成就无法触发的问题。&lt;br /&gt;
* 修复了寻路无法穿过敌方实心方块的问题。&lt;br /&gt;
* 修复了海军单位有时试图在陆地上寻路的问题。&lt;br /&gt;
* 修复了iOS上大型存档无法导出游戏数据的问题。&lt;br /&gt;
* 修复了带有太空背景的水块导致背景变黑的问题。&lt;br /&gt;
* 修复了内部旧版方块成为逻辑常量的问题。&lt;br /&gt;
* 修复了电力节点双击导致交互速率限制触发的问题。&lt;br /&gt;
* 修复了单位有时无法被杀死的问题。&lt;br /&gt;
* 修复了拥有长路径的单位有时会无限重新计算路径的问题。&lt;br /&gt;
* 修复了玩家单位在某些有水坑的地图中卡住的严重问题。&lt;br /&gt;
* 修复了瘤变反应堆有时不爆炸的问题。&lt;br /&gt;
* 修复了单位在撞击角落时随机死亡的问题。&lt;br /&gt;
* 修复了穿透子弹过早击中子弹“下方”的方块的问题。&lt;br /&gt;
* 修复了导弹对单位造成双倍伤害的问题。&lt;br /&gt;
* 修复了帧率限制不准确的问题。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V146&amp;diff=3663</id>
		<title>V146</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V146&amp;diff=3663"/>
		<updated>2026-03-15T12:00:44Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面，内容为“__NOTOC__ &amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;  &amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v146&amp;lt;/div&amp;gt;  &amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt; {| class=&amp;quot;mdtSideTable&amp;quot; |- ! 版本 | release build 146 |- ! Android版本 | ????? |- ! 内部版本 | ????? |- ! Github&amp;lt;br&amp;gt;Release | ????? |- ! Steam版本 | ????? |} &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;  &amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt; ==…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v146&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| release build 146&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| ?????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
注意：这个文档使用了AI辅助翻译，内容仅供参考，不保证其准确性。&lt;br /&gt;
v146版本主要修复了大量问题，并新增了逻辑指令和设置选项。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 添加了禁用全部光照的设置。&lt;br /&gt;
* 添加了逻辑单位自动寻路指令（默认波次寻路）。&lt;br /&gt;
* 添加了逻辑传感器，支持护盾、内容ID（查找指令的反向）。&lt;br /&gt;
* 添加了逻辑粒子效果指令。&lt;br /&gt;
* 添加了逻辑同步指令。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 使逻辑解除绑定指令将@unit设为null。&lt;br /&gt;
* 使“任意”环境在沙盒模式外也可访问。&lt;br /&gt;
* 使载荷装载器不再接受来自载荷卸载器的输入。&lt;br /&gt;
* 设置工厂输出点现在会更新“上次操作”时间。&lt;br /&gt;
* 禁用了在多人游戏中（沙盒/PvP模式外）的队伍切换菜单。&lt;br /&gt;
* 略微降低了画板方块的硅消耗。&lt;br /&gt;
* 创伤炮塔的弹药消耗降低至15。&lt;br /&gt;
* 增强了准绳单位。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* 修复了单位与建筑花费倍率规则的多种问题。&lt;br /&gt;
* 修复了许多不同情况下的崩溃。&lt;br /&gt;
* 修复了多项Steam成就无法触发的问题。&lt;br /&gt;
* 修复了寻路无法穿过敌方实心方块的问题。&lt;br /&gt;
* 修复了海军单位有时试图在陆地上寻路的问题。&lt;br /&gt;
* 修复了iOS上大型存档无法导出游戏数据的问题。&lt;br /&gt;
* 修复了带有太空背景的水块导致背景变黑的问题。&lt;br /&gt;
* 修复了内部旧版方块成为逻辑常量的问题。&lt;br /&gt;
* 修复了电力节点双击导致交互速率限制触发的问题。&lt;br /&gt;
* 修复了单位有时无法被杀死的问题。&lt;br /&gt;
* 修复了拥有长路径的单位有时会无限重新计算路径的问题。&lt;br /&gt;
* 修复了玩家单位在某些有水坑的地图中卡住的严重问题。&lt;br /&gt;
* 修复了瘤变反应堆有时不爆炸的问题。&lt;br /&gt;
* 修复了单位在撞击角落时随机死亡的问题。&lt;br /&gt;
* 修复了穿透子弹过早击中子弹“下方”的方块的问题。&lt;br /&gt;
* 修复了导弹对单位造成双倍伤害的问题。&lt;br /&gt;
* 修复了帧率限制不准确的问题。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E7%BB%84&amp;diff=3662</id>
		<title>模组</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E7%BB%84&amp;diff=3662"/>
		<updated>2026-03-14T15:22:13Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​/* 使用模组 */ 更改内容&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot; style=&amp;quot;text-align: center; font-style: italic; padding: 1.5em; margin-bottom: 1em; background-color: #f8f9fa; border-left: 4px solid #2980b9;&amp;quot;&amp;gt;&lt;br /&gt;
“官方提供接口，社区撰写未来。”&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 使用模组 ==&lt;br /&gt;
模组为Mindustry提供了丰富多样的内容。模组是由第三方创作、使用游戏提供的接口更改或扩展游戏内容的模块。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
一般地，可以使用模组-导入模组按钮，选择一个本地文件导入或从Github导入。游戏内置的模组浏览器显示了Github上自动生成的Mindustry模组列表。导入模组后，列表中会出现该模组，点击可以查看详细信息。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用向上箭头图标来启用模组（如果可用），使用向下的箭头来禁用当前启用的模组。使用垃圾桶图标二次确认来删除对应模组。启用/禁用模组后，游戏会提示重启以加载模组。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
模组不兼容当前版本或发生错误时将无法进入游戏。如果模组多次导致游戏闪退，游戏通常会禁用所有模组启动游戏。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 关于模组 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[模组浏览|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组浏览&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;介绍 / 下载 /  攻略&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[Learn Mindustry Mod|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组教程&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;教程&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[官方维基教程索引|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;官方维基教程（译版）&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;代码 / 贴图 / 标记&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%95%99%E7%A8%8B%E4%B8%AD%E5%BF%83&amp;diff=3661</id>
		<title>教程中心</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%95%99%E7%A8%8B%E4%B8%AD%E5%BF%83&amp;diff=3661"/>
		<updated>2026-03-14T15:13:29Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​新增&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;这个页面收集wiki上的教程，并整理成列表。这里只负责收集，不保证教程内容质量和准确性。教程贡献者列表在页面最后，如有遗漏，请[[首页#wiki介绍|联系我们]]，致谢&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ 教程列表&lt;br /&gt;
! 教程 !! 主题 !! 介绍 !! 类型&lt;br /&gt;
|-&lt;br /&gt;
| [[官方维基教程索引]] || 模组 || 官方维基上模组教程的译版 || 站外/翻译/转载&lt;br /&gt;
|-&lt;br /&gt;
| [[Learn Mindustry Mod]] || 模组 || 面向mod初学者的系统性教程 || 站外&lt;br /&gt;
|-&lt;br /&gt;
| [[黑话]] || 游戏术语 || 常用游戏术语介绍 || 站内&lt;br /&gt;
|-&lt;br /&gt;
| [[专有名词]] || 游戏术语 || 游戏专有名词介绍，比[[黑话]]更正式 || 站内&lt;br /&gt;
|-&lt;br /&gt;
| [[服务器#服务器教程|服务器教程]] || 服务器 || 较新的服务器教程 || 站外&lt;br /&gt;
|-&lt;br /&gt;
| [[PVP教程]] || PVP || 尚待完善 || 站内/原创&lt;br /&gt;
|-&lt;br /&gt;
| [[教程:新手手册]] || 游戏 || 面向初次接触游戏的玩家的基本教程 || 站内/原创&lt;br /&gt;
|-&lt;br /&gt;
| [[逻辑#逻辑教程|逻辑教程]] || 逻辑 || 逻辑系统性教程 || 站外/转载&lt;br /&gt;
|-&lt;br /&gt;
| [[百科]] || 游戏 || 常见问题解答 || 站内/原创&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;b&amp;gt;主要贡献者列表（按名称首字母/拼音排序，不含官方维基）：A4-Tacks、比尔（[[用户:Bill]]）、硫缺铅（[[用户:硫缺铅]]）、xem8k5（[[用户:Xem8k5]]）&amp;lt;/b&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=3660</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=3660"/>
		<updated>2026-03-14T15:09:55Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​/* 原版内容-v154.3 */ 调整顺序，使之更符合逻辑顺序&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeHero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroLogo&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroText&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroTitle&amp;quot;&amp;gt;Mindustry-像素工厂 中文 Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroSubtitle&amp;quot;&amp;gt;官方内容 + 社区翻译补充&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroLinks&amp;quot;&amp;gt;[[塞普罗|塞普罗]] [[埃里克尔|埃里克尔]] [https://www.mindustry.top/ 资源站] [[逻辑|逻辑]] [[PVP模式|PVP]] [[模组|模组]] [[教程中心|教程]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== wiki介绍 ==&lt;br /&gt;
欢迎来到 Mindustry 中文 Wiki！你可以在这里找到游戏资料、条目翻译与社区补充内容。&amp;lt;br&amp;gt;&lt;br /&gt;
在过去的日子里Wiki一共被编辑了 {{NUMBEROFEDITS}} 次，总页面数 {{NUMBEROFPAGES}} ，有 {{NUMBEROFACTIVEUSERS}} 位贡献者参与了建设。&amp;lt;br&amp;gt;&lt;br /&gt;
游戏最新的发布版本是：&amp;lt;span style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;v155.4&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
加入wiki建设--1033427780&amp;lt;br&amp;gt;&lt;br /&gt;
==服务器推荐==&amp;lt;br&amp;gt;&lt;br /&gt;
Mindustry梦魔短祷：new.xem8k5.top&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 原版内容-v154.3 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[塞普罗|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;塞普罗&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;战役 / 科技 / 区块&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[埃里克尔|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;埃里克尔&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;战役 / 科技 / 区块&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[隐藏|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;隐藏&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;建筑 / 天气&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[地图编辑器|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;地图编辑器&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;地图编辑 / 导入与导出 / 游戏模式&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[服务器|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;服务器&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;游玩 / 搭建&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[模组|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;模组&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;下载 / 导入 / 创作&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[资源库|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;资源库&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;游戏资源&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[地图库|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;地图库&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;优质地图&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[教程中心|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;教程中心&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;教程列表&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[百科|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;百科&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;常见问题汇总&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[黑话|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;黑话&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;术语整理&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[成就|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;成就&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;steam游戏成就&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 资源网站与工具 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://www.mindustry.top/ &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry资源站&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;资源/下载-wayzer&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://api.stng.fun/&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;STNGMDT资源站&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;地图/资源-stars&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://docs.qq.com/sheet/DVHNoS3lIcm1NbFFS &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry蓝图档案馆&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;表格&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://anuke.itch.io/mindustry &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry官网下载&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;itch.io&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://buibiu.github.io/imageToMLogicPage/#/ &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;图片转逻辑&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;工具&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://github.com/xhstoyea/Mindustry-mod-compilations &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组合集&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;GitHub&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[Learn Mindustry Mod|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组教程&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;教程&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://my.feishu.cn/wiki/space/7596651980311776474 &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;MindustryX官方文档&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;MindustryX&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wiki公告 ==&lt;br /&gt;
无&amp;lt;br&amp;gt;&lt;br /&gt;
发布者：&amp;lt;br&amp;gt;&lt;br /&gt;
发布时间：&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;查看[[历史公告]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Fixed&amp;diff=3659</id>
		<title>模板:Fixed</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Fixed&amp;diff=3659"/>
		<updated>2026-03-14T14:58:53Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面，内容为“&amp;lt;includeonly&amp;gt;&amp;lt;sup&amp;gt;{{#if:{{{1|}}}|[已修复：{{gamever|{{{1}}}}}]|[已修复]}}&amp;lt;/sup&amp;gt;&amp;lt;/includeonly&amp;gt; &amp;lt;noinclude&amp;gt; 效果：有参数：{{fixed|132}} 无参数：{{fixed}}  注意：需要启用解析器函数 &amp;lt;/noinclude&amp;gt;”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;sup&amp;gt;{{#if:{{{1|}}}|[已修复：{{gamever|{{{1}}}}}]|[已修复]}}&amp;lt;/sup&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
效果：有参数：{{fixed|132}}&lt;br /&gt;
无参数：{{fixed}}&lt;br /&gt;
&lt;br /&gt;
注意：需要启用解析器函数&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Added&amp;diff=3658</id>
		<title>模板:Added</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Added&amp;diff=3658"/>
		<updated>2026-03-14T14:57:47Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;sup&amp;gt;{{#if:{{{1|}}}|[新内容：{{gamever|{{{1}}}}}]|[新内容：v{{Nv}}]}}&amp;lt;/sup&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
效果：有参数：{{added|132}}&lt;br /&gt;
无参数：{{added}}&lt;br /&gt;
&lt;br /&gt;
注意：需要启用解析器函数&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Removed&amp;diff=3657</id>
		<title>模板:Removed</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Removed&amp;diff=3657"/>
		<updated>2026-03-14T14:55:45Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;sup&amp;gt;{{#if:{{{1|}}}|[已移除：{{gamever|{{{1}}}}}]|[已移除]}}&amp;lt;/sup&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
效果：有参数：{{removed|132}}&lt;br /&gt;
无参数：{{removed}}&lt;br /&gt;
&lt;br /&gt;
注意：需要启用解析器函数&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Gamever&amp;diff=3656</id>
		<title>模板:Gamever</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Gamever&amp;diff=3656"/>
		<updated>2026-03-14T14:44:55Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​测试&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;[[v{{{1}}}]]&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
效果：{{gamever|155.4}}或者{{gamever|138}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Gamever&amp;diff=3655</id>
		<title>模板:Gamever</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:Gamever&amp;diff=3655"/>
		<updated>2026-03-14T14:44:18Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;[[v{{{1}}}]]&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
效果：{{gamever|126.1}} {{gamever|155.4}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%81%AB%E5%8A%9B%E5%8F%91%E7%94%B5%E6%9C%BA&amp;diff=3654</id>
		<title>火力发电机</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%81%AB%E5%8A%9B%E5%8F%91%E7%94%B5%E6%9C%BA&amp;diff=3654"/>
		<updated>2026-03-14T09:33:59Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​修复错误的链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;[[File:Block-combustion-generator-ui.png|24px]] 火力发电机 &amp;lt;/br&amp;gt; Combustion Generator &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideDesc&amp;quot;&amp;gt;燃烧煤炭之类的可燃材料发电。&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;基础信息&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 行星&lt;br /&gt;
| [[File:planet-serpulo.png|18px|link=塞普罗]]&lt;br /&gt;
|-&lt;br /&gt;
! 生命值&lt;br /&gt;
| 40&lt;br /&gt;
|-&lt;br /&gt;
! 尺寸&lt;br /&gt;
| 1×1&lt;br /&gt;
|-&lt;br /&gt;
! 建造时间&lt;br /&gt;
| 0.383秒&lt;br /&gt;
|-&lt;br /&gt;
! 建造花费&lt;br /&gt;
| 25[[File:Item-copper-ui.png|18px|link=铜]] 15[[File:Item-lead-ui.png|18px|link=铅]]&lt;br /&gt;
|-&lt;br /&gt;
! 能否超速&lt;br /&gt;
| 能&lt;br /&gt;
|-&lt;br /&gt;
! 物品容量&lt;br /&gt;
| 10物品&lt;br /&gt;
|-&lt;br /&gt;
! 基础电力输出&lt;br /&gt;
| 60电力/秒&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;关联信息 &amp;lt;span class=&amp;quot;mdtFold mdtFoldClosed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 关联建筑&lt;br /&gt;
| [[File:block-steam-generator-ui.png|18px|link=涡轮发电机]][[File:block-differential-generator-ui.png|18px|link=温差发电机]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;技术性&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 建筑ID&lt;br /&gt;
| #74&lt;br /&gt;
|-&lt;br /&gt;
! 英文ID&lt;br /&gt;
| combustion-generator&lt;br /&gt;
|-&lt;br /&gt;
! 本地化键名&lt;br /&gt;
| block.combustion-generator.name&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 介绍 ==&lt;br /&gt;
燃烧煤炭之类的可燃材料发电，其发电量与燃烧性成正比。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 输入/输出 ==&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 输入&lt;br /&gt;
! &amp;lt;!-- 不要删除这个空白表头 --&amp;gt; &lt;br /&gt;
! 电力输出&lt;br /&gt;
! 效率&lt;br /&gt;
! 生产时间&lt;br /&gt;
|-&lt;br /&gt;
| 0.5[[File:Item-coal-ui.png|18px|link=煤炭]]/秒 || (1[[File:Item-coal-ui.png|18px|link=煤炭]]) || 60电力/秒 || 100% || 2秒&lt;br /&gt;
|-&lt;br /&gt;
| 0.5[[File:Item-spore-pod-ui.png|18px|link=孢子荚]]/秒 || (1[[File:Item-spore-pod-ui.png|18px|link=孢子荚]]) || 69电力/秒 || 115% || 2秒&lt;br /&gt;
|-&lt;br /&gt;
| 0.5[[File:Item-blast-compound-ui.png|18px|link=爆炸混合物]]/秒 || (1[[File:Item-blast-compound-ui.png|18px|link=爆炸混合物]]) || 24电力/秒 || 40% || 2秒&lt;br /&gt;
|-&lt;br /&gt;
| 0.16[[File:Item-pyratite-ui.png|18px|link=硫化物]]/秒 || (1[[File:Item-pyratite-ui.png|18px|link=硫化物]]) || 84电力/秒 || 140% || 6秒&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 冷知识/趣闻 ==&lt;br /&gt;
*[[File:block-combustion-generator-ui.png|18px|link=火力发电机]][[火力发电机]]可以使用[[File:item-blast-compound-ui.png|18px|link=爆炸混合物]][[爆炸混合物]]发电，但是会不断损失血量，最后爆炸。使用[[File:block-mender-ui.png|18px|link=修理器]][[修理器]]或[[File:block-mend-projector-ui.png|18px|link=修理投影]][[修理投影]]可以避免因血量归零而爆炸，但是实用价值几乎为零。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3635</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3635"/>
		<updated>2026-03-08T02:05:33Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​/* 官方与非官方分支 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| 即将到来 || 即将到来 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8后期（v8b）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v150-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.4]] || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.3]] || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.2]] || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.1]] || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155]] || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.3]] || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.2]] || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154]] || 2025-12-16 || 大规模音效重做&lt;br /&gt;
|-&lt;br /&gt;
| [[v153]] || 2025-10-30 || 加入内容包ContentPatch&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.2]] || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.1]] || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152]] || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151.1]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150.1]] || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150]] || 2025-07-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8前期（v8a）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-149）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v149]] || 2025-04-30 || 指挥采矿改进&lt;br /&gt;
|-&lt;br /&gt;
| [[v148]] || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147.1]] || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147]] || 2025-04-11 || 塞普罗战役大规模重做&amp;lt;br&amp;gt;新发射台&amp;lt;br&amp;gt;难度调整功能&amp;lt;br&amp;gt;新指挥机制&amp;lt;br&amp;gt;贴图更新&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v146]] || 2023-09-04 || 持续时间最长{{Nv}}的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v145.1]] || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145]] || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.3]] || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.2]] || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.1]] || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144]] || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143.1]] || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143]] || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v142]] || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.3]] || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.2]] || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.1]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.4]] || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.3]] || 2022-11-11 || 埃里克尔内容基本完成的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.2]] || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.1]] || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140]] || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v139]] || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v137]] || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136.1]] || 2022-07-19 || 不再使用minGameVersion&amp;lt;br&amp;gt;在136以下的模组{{Nv}}&lt;br /&gt;
|-&lt;br /&gt;
| [[v136]] || 2022-07-16 || 加入埃里克尔&amp;lt;br&amp;gt;大量新方块和单位&amp;lt;br&amp;gt;完全重做的指挥系统，移除指挥中心&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.2]] || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.1]] || 2022-04-01 || 愚人节版本，包含一个音游（见[[#其它版本]]&lt;br /&gt;
|-&lt;br /&gt;
| [[v135]] || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134.1]] || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134]] || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v133]] || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v132]] || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v131]] || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130.1]] || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130]] || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.2]] || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.1]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128.1]] || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128]] || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.2]] || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.1]] || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127]] || 2021-06-25 || 新增各种杂项内容&amp;lt;br&amp;gt;更接近v6而不是v7&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.2]] || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.1]] || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126]] || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125.1]] || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125]] || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124.1]] || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124]] || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123.1]] || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123]] || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122.1]] || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122]] || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.4]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.3]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.2]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.1]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121]] || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.5]] || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.4]] || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.3]] || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.2]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.1]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v119]] || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v118]] || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117.1]] || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117]] || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v116]] || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v115]] || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.2]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.1]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114]] || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.2]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.1]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112.1]] || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112]] || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v111]] || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v110]] || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v109]] || 2020-10-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v108]] || 2020-10-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v107]] || 2020-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v106]] || 2020-09-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v105]] || 2020-09-15 || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.6]] || 2020-03-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.1]] || 2020-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104]] || 2020-02-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v103]] || 2020-01-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v102]] || 2019-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101.1]] || 2019-12-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101]] || 2019-12-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v100]] || 2019-11-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v99]] || 2019-10-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v98]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v97]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v96]] || 2019-09-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v95]] || 2019-09-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v94]] || 2019-09-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v93]] || 2019-09-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v92]] || 2019-08-31 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v91]] || 2019-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v90]] || 2019-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v89]] || 2019-08-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v88]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v87]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v86]] || 2019-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v85]] || 2019-08-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v84]] || 2019-08-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v83]] || 2019-07-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v82]] || 2019-07-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v81]] || 2019-06-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v80]] || 2019-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v79]] || 2019-06-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v78]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v77]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v76]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v75]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v74]] || 2019-05-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v73]] || 2019-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v72]] || 2019-04-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v71]] || 2019-04-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v70]] || 2019-04-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v69]] || 2019-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v68]] || 2019-03-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v67]] || 2019-03-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v66]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v65]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v64]] || 2019-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v63]] || 2018-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v62]] || 2018-11-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v61]] || 2018-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v60]] || 2018-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v59]] || 2018-11-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v58]] || 2018-10-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v57]] || 2018-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v56]] || 2018-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v55]] || 2018-09-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v54]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v53]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v52]] || 2018-08-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v51]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v50]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v49]] || 2018-08-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v48]] || 2018-08-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v47]] || 2018-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v46]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v45]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v44]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v43]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v42]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v41]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v40]] || 2018-05-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v39]] || 2018-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v38]] || 2018-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v37]] || 2018-04-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v36]] || 2018-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v35]] || 2018-03-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v34]] || 2018-03-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v33]] || 2018-03-09 || github最早的发布版本&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===其它版本===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（animdustry等）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| original april &amp;lt;br&amp;gt;1st release || 2022-04-02 || animdustry在&amp;lt;br&amp;gt;v135.1的4月1日版本&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 2022-4-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| 1.2 || 2022-5-14 || animdustry最终版本&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===官方与非官方分支===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| Mindustry-Classic || - || 仓库2021-3-25已归档&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3634</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3634"/>
		<updated>2026-03-08T02:03:35Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​/* 更早 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| 即将到来 || 即将到来 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8后期（v8b）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v150-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.4]] || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.3]] || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.2]] || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.1]] || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155]] || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.3]] || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.2]] || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154]] || 2025-12-16 || 大规模音效重做&lt;br /&gt;
|-&lt;br /&gt;
| [[v153]] || 2025-10-30 || 加入内容包ContentPatch&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.2]] || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.1]] || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152]] || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151.1]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150.1]] || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150]] || 2025-07-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8前期（v8a）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-149）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v149]] || 2025-04-30 || 指挥采矿改进&lt;br /&gt;
|-&lt;br /&gt;
| [[v148]] || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147.1]] || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147]] || 2025-04-11 || 塞普罗战役大规模重做&amp;lt;br&amp;gt;新发射台&amp;lt;br&amp;gt;难度调整功能&amp;lt;br&amp;gt;新指挥机制&amp;lt;br&amp;gt;贴图更新&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v146]] || 2023-09-04 || 持续时间最长{{Nv}}的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v145.1]] || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145]] || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.3]] || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.2]] || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.1]] || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144]] || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143.1]] || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143]] || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v142]] || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.3]] || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.2]] || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.1]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.4]] || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.3]] || 2022-11-11 || 埃里克尔内容基本完成的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.2]] || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.1]] || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140]] || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v139]] || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v137]] || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136.1]] || 2022-07-19 || 不再使用minGameVersion&amp;lt;br&amp;gt;在136以下的模组{{Nv}}&lt;br /&gt;
|-&lt;br /&gt;
| [[v136]] || 2022-07-16 || 加入埃里克尔&amp;lt;br&amp;gt;大量新方块和单位&amp;lt;br&amp;gt;完全重做的指挥系统，移除指挥中心&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.2]] || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.1]] || 2022-04-01 || 愚人节版本，包含一个音游（见[[#其它版本]]&lt;br /&gt;
|-&lt;br /&gt;
| [[v135]] || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134.1]] || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134]] || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v133]] || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v132]] || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v131]] || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130.1]] || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130]] || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.2]] || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.1]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128.1]] || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128]] || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.2]] || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.1]] || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127]] || 2021-06-25 || 新增各种杂项内容&amp;lt;br&amp;gt;更接近v6而不是v7&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.2]] || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.1]] || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126]] || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125.1]] || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125]] || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124.1]] || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124]] || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123.1]] || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123]] || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122.1]] || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122]] || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.4]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.3]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.2]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.1]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121]] || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.5]] || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.4]] || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.3]] || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.2]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.1]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v119]] || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v118]] || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117.1]] || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117]] || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v116]] || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v115]] || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.2]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.1]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114]] || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.2]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.1]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112.1]] || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112]] || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v111]] || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v110]] || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v109]] || 2020-10-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v108]] || 2020-10-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v107]] || 2020-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v106]] || 2020-09-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v105]] || 2020-09-15 || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.6]] || 2020-03-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.1]] || 2020-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104]] || 2020-02-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v103]] || 2020-01-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v102]] || 2019-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101.1]] || 2019-12-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101]] || 2019-12-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v100]] || 2019-11-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v99]] || 2019-10-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v98]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v97]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v96]] || 2019-09-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v95]] || 2019-09-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v94]] || 2019-09-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v93]] || 2019-09-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v92]] || 2019-08-31 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v91]] || 2019-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v90]] || 2019-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v89]] || 2019-08-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v88]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v87]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v86]] || 2019-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v85]] || 2019-08-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v84]] || 2019-08-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v83]] || 2019-07-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v82]] || 2019-07-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v81]] || 2019-06-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v80]] || 2019-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v79]] || 2019-06-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v78]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v77]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v76]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v75]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v74]] || 2019-05-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v73]] || 2019-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v72]] || 2019-04-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v71]] || 2019-04-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v70]] || 2019-04-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v69]] || 2019-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v68]] || 2019-03-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v67]] || 2019-03-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v66]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v65]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v64]] || 2019-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v63]] || 2018-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v62]] || 2018-11-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v61]] || 2018-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v60]] || 2018-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v59]] || 2018-11-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v58]] || 2018-10-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v57]] || 2018-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v56]] || 2018-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v55]] || 2018-09-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v54]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v53]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v52]] || 2018-08-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v51]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v50]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v49]] || 2018-08-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v48]] || 2018-08-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v47]] || 2018-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v46]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v45]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v44]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v43]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v42]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v41]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v40]] || 2018-05-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v39]] || 2018-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v38]] || 2018-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v37]] || 2018-04-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v36]] || 2018-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v35]] || 2018-03-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v34]] || 2018-03-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v33]] || 2018-03-09 || github最早的发布版本&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===其它版本===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（animdustry等）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| original april &amp;lt;br&amp;gt;1st release || 2022-04-02 || animdustry在&amp;lt;br&amp;gt;v135.1的4月1日版本&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 2022-4-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| 1.2 || 2022-5-14 || animdustry最终版本&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===官方与非官方分支===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3633</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3633"/>
		<updated>2026-03-08T01:59:12Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​/* 官方与非官方分支 */ 文字修复&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| 即将到来 || 即将到来 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8后期（v8b）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v150-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.4]] || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.3]] || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.2]] || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.1]] || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155]] || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.3]] || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.2]] || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154]] || 2025-12-16 || 大规模音效重做&lt;br /&gt;
|-&lt;br /&gt;
| [[v153]] || 2025-10-30 || 加入内容包ContentPatch&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.2]] || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.1]] || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152]] || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151.1]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150.1]] || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150]] || 2025-07-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8前期（v8a）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-149）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v149]] || 2025-04-30 || 指挥采矿改进&lt;br /&gt;
|-&lt;br /&gt;
| [[v148]] || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147.1]] || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147]] || 2025-04-11 || 塞普罗战役大规模重做&amp;lt;br&amp;gt;新发射台&amp;lt;br&amp;gt;难度调整功能&amp;lt;br&amp;gt;新指挥机制&amp;lt;br&amp;gt;贴图更新&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v146]] || 2023-09-04 || 持续时间最长{{Nv}}的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v145.1]] || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145]] || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.3]] || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.2]] || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.1]] || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144]] || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143.1]] || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143]] || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v142]] || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.3]] || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.2]] || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.1]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.4]] || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.3]] || 2022-11-11 || 埃里克尔内容基本完成的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.2]] || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.1]] || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140]] || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v139]] || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v137]] || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136.1]] || 2022-07-19 || 不再使用minGameVersion&amp;lt;br&amp;gt;在136以下的模组{{Nv}}&lt;br /&gt;
|-&lt;br /&gt;
| [[v136]] || 2022-07-16 || 加入埃里克尔&amp;lt;br&amp;gt;大量新方块和单位&amp;lt;br&amp;gt;完全重做的指挥系统，移除指挥中心&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.2]] || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.1]] || 2022-04-01 || 愚人节版本，包含一个音游（见[[#其它版本]]&lt;br /&gt;
|-&lt;br /&gt;
| [[v135]] || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134.1]] || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134]] || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v133]] || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v132]] || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v131]] || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130.1]] || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130]] || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.2]] || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.1]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128.1]] || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128]] || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.2]] || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.1]] || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127]] || 2021-06-25 || 新增各种杂项内容&amp;lt;br&amp;gt;更接近v6而不是v7&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.2]] || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.1]] || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126]] || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125.1]] || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125]] || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124.1]] || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124]] || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123.1]] || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123]] || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122.1]] || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122]] || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.4]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.3]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.2]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.1]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121]] || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.5]] || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.4]] || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.3]] || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.2]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.1]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v119]] || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v118]] || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117.1]] || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117]] || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v116]] || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v115]] || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.2]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.1]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114]] || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.2]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.1]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112.1]] || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112]] || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v111]] || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v110]] || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v109]] || 2020-10-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v108]] || 2020-10-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v107]] || 2020-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v106]] || 2020-09-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v105]] || 2020-09-15 || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.6]] || 2020-03-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.1]] || 2020-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104]] || 2020-02-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v103]] || 2020-01-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v102]] || 2019-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101.1]] || 2019-12-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101]] || 2019-12-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v100]] || 2019-11-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v99]] || 2019-10-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v98]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v97]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v96]] || 2019-09-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v95]] || 2019-09-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v94]] || 2019-09-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v93]] || 2019-09-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v92]] || 2019-08-31 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v91]] || 2019-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v90]] || 2019-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v89]] || 2019-08-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v88]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v87]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v86]] || 2019-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v85]] || 2019-08-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v84]] || 2019-08-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v83]] || 2019-07-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v82]] || 2019-07-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v81]] || 2019-06-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v80]] || 2019-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v79]] || 2019-06-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v78]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v77]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v76]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v75]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v74]] || 2019-05-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v73]] || 2019-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v72]] || 2019-04-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v71]] || 2019-04-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v70]] || 2019-04-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v69]] || 2019-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v68]] || 2019-03-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v67]] || 2019-03-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v66]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v65]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v64]] || 2019-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v63]] || 2018-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v62]] || 2018-11-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v61]] || 2018-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v60]] || 2018-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v59]] || 2018-11-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v58]] || 2018-10-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v57]] || 2018-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v56]] || 2018-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v55]] || 2018-09-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v54]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v53]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v52]] || 2018-08-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v51]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v50]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v49]] || 2018-08-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v48]] || 2018-08-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v47]] || 2018-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v46]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v45]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v44]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v43]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v42]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v41]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v40]] || 2018-05-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v39]] || 2018-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v38]] || 2018-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v37]] || 2018-04-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v36]] || 2018-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v35]] || 2018-03-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v34]] || 2018-03-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v33]] || 2018-03-09 || -&lt;br /&gt;
|}&lt;br /&gt;
===其它版本===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（animdustry等）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| original april &amp;lt;br&amp;gt;1st release || 2022-04-02 || animdustry在&amp;lt;br&amp;gt;v135.1的4月1日版本&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 2022-4-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| 1.2 || 2022-5-14 || animdustry最终版本&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===官方与非官方分支===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3632</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3632"/>
		<updated>2026-03-08T01:58:37Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​/* 其它版本 */ 文字修复&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| 即将到来 || 即将到来 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8后期（v8b）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v150-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.4]] || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.3]] || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.2]] || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.1]] || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155]] || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.3]] || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.2]] || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154]] || 2025-12-16 || 大规模音效重做&lt;br /&gt;
|-&lt;br /&gt;
| [[v153]] || 2025-10-30 || 加入内容包ContentPatch&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.2]] || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.1]] || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152]] || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151.1]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150.1]] || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150]] || 2025-07-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8前期（v8a）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-149）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v149]] || 2025-04-30 || 指挥采矿改进&lt;br /&gt;
|-&lt;br /&gt;
| [[v148]] || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147.1]] || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147]] || 2025-04-11 || 塞普罗战役大规模重做&amp;lt;br&amp;gt;新发射台&amp;lt;br&amp;gt;难度调整功能&amp;lt;br&amp;gt;新指挥机制&amp;lt;br&amp;gt;贴图更新&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v146]] || 2023-09-04 || 持续时间最长{{Nv}}的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v145.1]] || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145]] || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.3]] || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.2]] || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.1]] || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144]] || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143.1]] || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143]] || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v142]] || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.3]] || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.2]] || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.1]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.4]] || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.3]] || 2022-11-11 || 埃里克尔内容基本完成的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.2]] || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.1]] || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140]] || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v139]] || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v137]] || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136.1]] || 2022-07-19 || 不再使用minGameVersion&amp;lt;br&amp;gt;在136以下的模组{{Nv}}&lt;br /&gt;
|-&lt;br /&gt;
| [[v136]] || 2022-07-16 || 加入埃里克尔&amp;lt;br&amp;gt;大量新方块和单位&amp;lt;br&amp;gt;完全重做的指挥系统，移除指挥中心&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.2]] || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.1]] || 2022-04-01 || 愚人节版本，包含一个音游（见[[#其它版本]]&lt;br /&gt;
|-&lt;br /&gt;
| [[v135]] || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134.1]] || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134]] || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v133]] || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v132]] || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v131]] || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130.1]] || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130]] || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.2]] || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.1]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128.1]] || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128]] || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.2]] || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.1]] || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127]] || 2021-06-25 || 新增各种杂项内容&amp;lt;br&amp;gt;更接近v6而不是v7&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.2]] || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.1]] || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126]] || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125.1]] || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125]] || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124.1]] || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124]] || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123.1]] || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123]] || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122.1]] || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122]] || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.4]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.3]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.2]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.1]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121]] || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.5]] || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.4]] || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.3]] || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.2]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.1]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v119]] || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v118]] || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117.1]] || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117]] || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v116]] || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v115]] || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.2]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.1]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114]] || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.2]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.1]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112.1]] || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112]] || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v111]] || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v110]] || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v109]] || 2020-10-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v108]] || 2020-10-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v107]] || 2020-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v106]] || 2020-09-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v105]] || 2020-09-15 || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.6]] || 2020-03-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.1]] || 2020-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104]] || 2020-02-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v103]] || 2020-01-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v102]] || 2019-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101.1]] || 2019-12-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101]] || 2019-12-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v100]] || 2019-11-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v99]] || 2019-10-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v98]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v97]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v96]] || 2019-09-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v95]] || 2019-09-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v94]] || 2019-09-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v93]] || 2019-09-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v92]] || 2019-08-31 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v91]] || 2019-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v90]] || 2019-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v89]] || 2019-08-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v88]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v87]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v86]] || 2019-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v85]] || 2019-08-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v84]] || 2019-08-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v83]] || 2019-07-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v82]] || 2019-07-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v81]] || 2019-06-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v80]] || 2019-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v79]] || 2019-06-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v78]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v77]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v76]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v75]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v74]] || 2019-05-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v73]] || 2019-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v72]] || 2019-04-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v71]] || 2019-04-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v70]] || 2019-04-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v69]] || 2019-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v68]] || 2019-03-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v67]] || 2019-03-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v66]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v65]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v64]] || 2019-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v63]] || 2018-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v62]] || 2018-11-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v61]] || 2018-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v60]] || 2018-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v59]] || 2018-11-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v58]] || 2018-10-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v57]] || 2018-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v56]] || 2018-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v55]] || 2018-09-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v54]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v53]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v52]] || 2018-08-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v51]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v50]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v49]] || 2018-08-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v48]] || 2018-08-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v47]] || 2018-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v46]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v45]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v44]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v43]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v42]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v41]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v40]] || 2018-05-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v39]] || 2018-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v38]] || 2018-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v37]] || 2018-04-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v36]] || 2018-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v35]] || 2018-03-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v34]] || 2018-03-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v33]] || 2018-03-09 || -&lt;br /&gt;
|}&lt;br /&gt;
===其它版本===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（animdustry等）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| original april &amp;lt;br&amp;gt;1st release || 2022-04-02 || animdustry在&amp;lt;br&amp;gt;v135.1的4月1日版本&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 2022-4-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| 1.2 || 2022-5-14 || animdustry最终版本&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===官方与非官方分支===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3631</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3631"/>
		<updated>2026-03-08T01:52:50Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​v7v8版本说明&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| 即将到来 || 即将到来 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8后期（v8b）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v150-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.4]] || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.3]] || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.2]] || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.1]] || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155]] || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.3]] || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.2]] || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154]] || 2025-12-16 || 大规模音效重做&lt;br /&gt;
|-&lt;br /&gt;
| [[v153]] || 2025-10-30 || 加入内容包ContentPatch&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.2]] || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.1]] || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152]] || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151.1]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150.1]] || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150]] || 2025-07-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8前期（v8a）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-149）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v149]] || 2025-04-30 || 指挥采矿改进&lt;br /&gt;
|-&lt;br /&gt;
| [[v148]] || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147.1]] || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147]] || 2025-04-11 || 塞普罗战役大规模重做&amp;lt;br&amp;gt;新发射台&amp;lt;br&amp;gt;难度调整功能&amp;lt;br&amp;gt;新指挥机制&amp;lt;br&amp;gt;贴图更新&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v146]] || 2023-09-04 || 持续时间最长{{Nv}}的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v145.1]] || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145]] || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.3]] || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.2]] || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.1]] || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144]] || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143.1]] || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143]] || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v142]] || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.3]] || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.2]] || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.1]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.4]] || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.3]] || 2022-11-11 || 埃里克尔内容基本完成的稳定版本&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.2]] || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.1]] || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140]] || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v139]] || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v137]] || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136.1]] || 2022-07-19 || 不再使用minGameVersion&amp;lt;br&amp;gt;在136以下的模组{{Nv}}&lt;br /&gt;
|-&lt;br /&gt;
| [[v136]] || 2022-07-16 || 加入埃里克尔&amp;lt;br&amp;gt;大量新方块和单位&amp;lt;br&amp;gt;完全重做的指挥系统，移除指挥中心&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.2]] || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.1]] || 2022-04-01 || 愚人节版本，包含一个音游（见[[#其它版本]]&lt;br /&gt;
|-&lt;br /&gt;
| [[v135]] || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134.1]] || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134]] || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v133]] || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v132]] || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v131]] || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130.1]] || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130]] || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.2]] || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.1]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128.1]] || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128]] || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.2]] || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.1]] || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127]] || 2021-06-25 || 新增各种杂项内容&amp;lt;br&amp;gt;更接近v6而不是v7&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.2]] || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.1]] || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126]] || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125.1]] || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125]] || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124.1]] || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124]] || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123.1]] || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123]] || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122.1]] || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122]] || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.4]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.3]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.2]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.1]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121]] || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.5]] || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.4]] || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.3]] || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.2]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.1]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v119]] || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v118]] || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117.1]] || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117]] || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v116]] || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v115]] || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.2]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.1]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114]] || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.2]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.1]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112.1]] || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112]] || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v111]] || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v110]] || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v109]] || 2020-10-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v108]] || 2020-10-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v107]] || 2020-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v106]] || 2020-09-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v105]] || 2020-09-15 || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.6]] || 2020-03-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.1]] || 2020-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104]] || 2020-02-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v103]] || 2020-01-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v102]] || 2019-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101.1]] || 2019-12-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101]] || 2019-12-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v100]] || 2019-11-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v99]] || 2019-10-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v98]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v97]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v96]] || 2019-09-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v95]] || 2019-09-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v94]] || 2019-09-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v93]] || 2019-09-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v92]] || 2019-08-31 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v91]] || 2019-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v90]] || 2019-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v89]] || 2019-08-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v88]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v87]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v86]] || 2019-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v85]] || 2019-08-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v84]] || 2019-08-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v83]] || 2019-07-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v82]] || 2019-07-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v81]] || 2019-06-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v80]] || 2019-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v79]] || 2019-06-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v78]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v77]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v76]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v75]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v74]] || 2019-05-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v73]] || 2019-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v72]] || 2019-04-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v71]] || 2019-04-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v70]] || 2019-04-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v69]] || 2019-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v68]] || 2019-03-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v67]] || 2019-03-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v66]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v65]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v64]] || 2019-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v63]] || 2018-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v62]] || 2018-11-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v61]] || 2018-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v60]] || 2018-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v59]] || 2018-11-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v58]] || 2018-10-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v57]] || 2018-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v56]] || 2018-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v55]] || 2018-09-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v54]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v53]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v52]] || 2018-08-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v51]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v50]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v49]] || 2018-08-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v48]] || 2018-08-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v47]] || 2018-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v46]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v45]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v44]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v43]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v42]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v41]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v40]] || 2018-05-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v39]] || 2018-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v38]] || 2018-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v37]] || 2018-04-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v36]] || 2018-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v35]] || 2018-03-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v34]] || 2018-03-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v33]] || 2018-03-09 || -&lt;br /&gt;
|}&lt;br /&gt;
===其它版本===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===官方与非官方分支===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3630</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3630"/>
		<updated>2026-03-08T01:36:21Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​更改，添加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| 即将到来 || 即将到来 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8后期（v8b）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v150-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.4]] || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.3]] || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.2]] || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.1]] || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155]] || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.3]] || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.2]] || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154]] || 2025-12-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v153]] || 2025-10-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.2]] || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.1]] || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152]] || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151.1]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150.1]] || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150]] || 2025-07-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v8前期（v8a）===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-149）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v149]] || 2025-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v148]] || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147.1]] || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147]] || 2025-04-11 || -&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v146]] || 2023-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145.1]] || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145]] || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.3]] || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.2]] || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.1]] || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144]] || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143.1]] || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143]] || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v142]] || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.3]] || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.2]] || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.1]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.4]] || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.3]] || 2022-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.2]] || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.1]] || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140]] || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v139]] || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v137]] || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136.1]] || 2022-07-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136]] || 2022-07-16 || -&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.2]] || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.1]] || 2022-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135]] || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134.1]] || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134]] || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v133]] || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v132]] || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v131]] || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130.1]] || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130]] || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.2]] || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.1]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128.1]] || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128]] || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.2]] || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.1]] || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127]] || 2021-06-25 || -&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.2]] || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.1]] || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126]] || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125.1]] || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125]] || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124.1]] || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124]] || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123.1]] || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123]] || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122.1]] || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122]] || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.4]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.3]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.2]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.1]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121]] || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.5]] || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.4]] || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.3]] || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.2]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.1]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v119]] || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v118]] || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117.1]] || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117]] || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v116]] || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v115]] || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.2]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.1]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114]] || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.2]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.1]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112.1]] || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112]] || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v111]] || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v110]] || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v109]] || 2020-10-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v108]] || 2020-10-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v107]] || 2020-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v106]] || 2020-09-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v105]] || 2020-09-15 || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.6]] || 2020-03-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104.1]] || 2020-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v104]] || 2020-02-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v103]] || 2020-01-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v102]] || 2019-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101.1]] || 2019-12-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v101]] || 2019-12-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v100]] || 2019-11-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v99]] || 2019-10-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v98]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v97]] || 2019-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v96]] || 2019-09-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v95]] || 2019-09-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v94]] || 2019-09-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v93]] || 2019-09-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v92]] || 2019-08-31 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v91]] || 2019-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v90]] || 2019-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v89]] || 2019-08-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v88]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v87]] || 2019-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v86]] || 2019-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v85]] || 2019-08-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v84]] || 2019-08-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v83]] || 2019-07-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v82]] || 2019-07-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v81]] || 2019-06-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v80]] || 2019-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v79]] || 2019-06-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v78]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v77]] || 2019-06-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v76]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v75]] || 2019-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v74]] || 2019-05-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v73]] || 2019-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v72]] || 2019-04-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v71]] || 2019-04-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v70]] || 2019-04-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v69]] || 2019-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v68]] || 2019-03-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v67]] || 2019-03-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v66]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v65]] || 2019-03-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v64]] || 2019-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v63]] || 2018-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v62]] || 2018-11-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v61]] || 2018-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v60]] || 2018-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v59]] || 2018-11-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v58]] || 2018-10-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v57]] || 2018-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v56]] || 2018-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v55]] || 2018-09-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v54]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v53]] || 2018-09-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v52]] || 2018-08-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v51]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v50]] || 2018-08-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v49]] || 2018-08-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v48]] || 2018-08-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v47]] || 2018-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v46]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v45]] || 2018-07-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v44]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v43]] || 2018-07-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v42]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v41]] || 2018-07-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v40]] || 2018-05-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v39]] || 2018-05-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v38]] || 2018-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v37]] || 2018-04-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v36]] || 2018-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v35]] || 2018-03-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v34]] || 2018-03-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v33]] || 2018-03-09 || -&lt;br /&gt;
|}&lt;br /&gt;
===其它版本===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===官方与非官方分支===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3629</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3629"/>
		<updated>2026-03-07T16:50:18Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​添加链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
===v8===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.4]] || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.3]] || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.2]] || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155.1]] || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v155]] || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.3]] || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154.2]] || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v154]] || 2025-12-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v153]] || 2025-10-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.2]] || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152.1]] || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v152]] || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151.1]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v151]] || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150.1]] || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v150]] || 2025-07-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v149]] || 2025-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v148]] || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147.1]] || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v147]] || 2025-04-11 || -&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v146]] || 2023-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145.1]] || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v145]] || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.3]] || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.2]] || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144.1]] || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v144]] || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143.1]] || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v143]] || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v142]] || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.3]] || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.2]] || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141.1]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v141]] || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.4]] || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.3]] || 2022-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.2]] || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140.1]] || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v140]] || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v139]] || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v137]] || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136.1]] || 2022-07-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v136]] || 2022-07-16 || -&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.2]] || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135.1]] || 2022-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v135]] || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134.1]] || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v134]] || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v133]] || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v132]] || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v131]] || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130.1]] || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v130]] || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.2]] || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129.1]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v129]] || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128.1]] || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v128]] || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.2]] || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127.1]] || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v127]] || 2021-06-25 || -&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.2]] || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126.1]] || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v126]] || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125.1]] || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v125]] || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124.1]] || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v124]] || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123.1]] || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v123]] || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122.1]] || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v122]] || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.4]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.3]] || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.2]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121.1]] || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v121]] || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.5]] || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.4]] || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.3]] || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.2]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120.1]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v120]] || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v119]] || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v118]] || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117.1]] || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v117]] || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v116]] || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v115]] || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.2]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114.1]] || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v114]] || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.2]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113.1]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v113]] || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112.1]] || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v112]] || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v111]] || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[v110]] || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===其它版本===&lt;br /&gt;
===官方与非官方分支===&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3628</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3628"/>
		<updated>2026-03-07T16:48:31Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​使用了AI辅助编辑。填入表格&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个版本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
===v8===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| v155.4 || 2026-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| v155.3 || 2026-02-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| v155.2 || 2026-02-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| v155.1 || 2026-02-10 || -&lt;br /&gt;
|-&lt;br /&gt;
| v155 || 2026-02-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| v154.3 || 2025-12-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| v154.2 || 2025-12-18 || -&lt;br /&gt;
|-&lt;br /&gt;
| v154 || 2025-12-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| v153 || 2025-10-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| v152.2 || 2025-09-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| v152.1 || 2025-09-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| v152 || 2025-09-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| v151.1 || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| v151 || 2025-08-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| v150.1 || 2025-07-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| v150 || 2025-07-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| v149 || 2025-04-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| v148 || 2025-04-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| v147.1 || 2025-04-14 || -&lt;br /&gt;
|-&lt;br /&gt;
| v147 || 2025-04-11 || -&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| v146 || 2023-09-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| v145.1 || 2023-06-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| v145 || 2023-06-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| v144.3 || 2023-05-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| v144.2 || 2023-05-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| v144.1 || 2023-05-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| v144 || 2023-05-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| v143.1 || 2023-04-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| v143 || 2023-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| v142 || 2023-02-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| v141.3 || 2023-01-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| v141.2 || 2023-01-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| v141.1 || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| v141 || 2023-01-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| v140.4 || 2022-11-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| v140.3 || 2022-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| v140.2 || 2022-11-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| v140.1 || 2022-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| v140 || 2022-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| v139 || 2022-10-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| v138 || 2022-08-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| v137 || 2022-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| v136.1 || 2022-07-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| v136 || 2022-07-16 || -&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| v135.2 || 2022-04-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| v135.1 || 2022-04-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| v135 || 2021-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| v134.1 || 2021-11-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| v134 || 2021-10-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| v133 || 2021-10-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| v132 || 2021-10-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| v131 || 2021-09-13 || -&lt;br /&gt;
|-&lt;br /&gt;
| v130.1 || 2021-08-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| v130 || 2021-08-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| v129.2 || 2021-08-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| v129.1 || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| v129 || 2021-07-28 || -&lt;br /&gt;
|-&lt;br /&gt;
| v128.1 || 2021-07-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| v128 || 2021-07-12 || -&lt;br /&gt;
|-&lt;br /&gt;
| v127.2 || 2021-06-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| v127.1 || 2021-06-26 || -&lt;br /&gt;
|-&lt;br /&gt;
| v127 || 2021-06-25 || -&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| v126.2 || 2021-03-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| v126.1 || 2021-03-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| v126 || 2021-03-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| v125.1 || 2021-02-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| v125 || 2021-02-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| v124.1 || 2021-02-08 || -&lt;br /&gt;
|-&lt;br /&gt;
| v124 || 2021-02-07 || -&lt;br /&gt;
|-&lt;br /&gt;
| v123.1 || 2021-01-21 || -&lt;br /&gt;
|-&lt;br /&gt;
| v123 || 2021-01-20 || -&lt;br /&gt;
|-&lt;br /&gt;
| v122.1 || 2020-12-30 || -&lt;br /&gt;
|-&lt;br /&gt;
| v122 || 2020-12-23 || -&lt;br /&gt;
|-&lt;br /&gt;
| v121.4 || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| v121.3 || 2020-12-15 || -&lt;br /&gt;
|-&lt;br /&gt;
| v121.2 || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| v121.1 || 2020-12-09 || -&lt;br /&gt;
|-&lt;br /&gt;
| v121 || 2020-12-06 || -&lt;br /&gt;
|-&lt;br /&gt;
| v120.5 || 2020-12-05 || -&lt;br /&gt;
|-&lt;br /&gt;
| v120.4 || 2020-12-04 || -&lt;br /&gt;
|-&lt;br /&gt;
| v120.3 || 2020-12-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| v120.2 || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| v120.1 || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| v120 || 2020-12-01 || -&lt;br /&gt;
|-&lt;br /&gt;
| v119 || 2020-11-29 || -&lt;br /&gt;
|-&lt;br /&gt;
| v118 || 2020-11-27 || -&lt;br /&gt;
|-&lt;br /&gt;
| v117.1 || 2020-11-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| v117 || 2020-11-24 || -&lt;br /&gt;
|-&lt;br /&gt;
| v116 || 2020-11-22 || -&lt;br /&gt;
|-&lt;br /&gt;
| v115 || 2020-11-19 || -&lt;br /&gt;
|-&lt;br /&gt;
| v114.2 || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| v114.1 || 2020-11-17 || -&lt;br /&gt;
|-&lt;br /&gt;
| v114 || 2020-11-16 || -&lt;br /&gt;
|-&lt;br /&gt;
| v113.2 || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| v113.1 || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| v113 || 2020-11-11 || -&lt;br /&gt;
|-&lt;br /&gt;
| v112.1 || 2020-11-03 || -&lt;br /&gt;
|-&lt;br /&gt;
| v112 || 2020-11-02 || -&lt;br /&gt;
|-&lt;br /&gt;
| v111 || 2020-10-25 || -&lt;br /&gt;
|-&lt;br /&gt;
| v110 || 2020-10-23 || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===其它版本===&lt;br /&gt;
===官方与非官方分支===&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3627</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3627"/>
		<updated>2026-03-07T16:23:07Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
这是一个使用本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;br /&gt;
此页面不是官方版本记录/更新日志，可能包含非官方或未经证实的信息。&lt;br /&gt;
&lt;br /&gt;
==版本记录==&lt;br /&gt;
===v9（即将到来）===&lt;br /&gt;
===v8===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v147-155.4(当前)）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===v7后期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v136-146）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===v7前期===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v127-135.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===v6===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v105-126.2）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===v5===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v97-104.6）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===更早===&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|+ 版本记录（v96及以下）&lt;br /&gt;
! 版本 !! 发布时间 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| - || - || -&lt;br /&gt;
|}&lt;br /&gt;
===其它版本===&lt;br /&gt;
===官方与非官方分支===&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95/%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95w&amp;diff=3626</id>
		<title>版本记录/版本记录w</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95/%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95w&amp;diff=3626"/>
		<updated>2026-03-07T15:55:36Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot; style=&amp;quot;text-align: center; font-style: italic; padding: 1.5em; margin-bottom: 1em; background-color: #f8f9fa; border-left: 8px solid #9b59b6;&amp;quot;&amp;gt;&lt;br /&gt;
此页面仍在建设中。建设完毕请移动到[[版本记录]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本记录 ==&lt;br /&gt;
Mindustry的版本记录。更新日志来源于Mindustry[https://github.com/anuken/mindustry GithubReleases]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;版本列表 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 版本 !! 发布日期 !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| [[v138]] || 2022-08-30 || v7初期音效更新&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3625</id>
		<title>版本记录</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95&amp;diff=3625"/>
		<updated>2026-03-07T15:44:40Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;这是一个使用本记录页面。要查看Mindustry中文维基风格的页面，请前往：[[版本记录/版本记录w]]&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E9%9B%B6%E5%8F%B7%E5%9C%B0%E5%8C%BA&amp;diff=3624</id>
		<title>零号地区</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E9%9B%B6%E5%8F%B7%E5%9C%B0%E5%8C%BA&amp;diff=3624"/>
		<updated>2026-03-07T15:32:19Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​增加内容&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;[[File:sector-groundZero.png|24px|link=]] 零号地区 GroundZero&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideDesc&amp;quot;&amp;gt;重新开始的最佳起点，敌人威胁低，资源有限。&amp;lt;/br&amp;gt;尽可能多地收集铅和铜。继续前进。&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;一般信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 行星&lt;br /&gt;
| &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:planet-serpulo.png|16px|link=塞普罗]]&amp;lt;/span&amp;gt; [[塞普罗]]&lt;br /&gt;
|-&lt;br /&gt;
! 威胁&lt;br /&gt;
| 低&lt;br /&gt;
|-&lt;br /&gt;
! 资源&lt;br /&gt;
| &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-copper-ui.png|18px|link=铜]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-lead-ui.png|18px|link=铅]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-scrap-ui.png|18px|link=废料]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:liquid-water-ui.png|18px|link=水]]&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 敌人&lt;br /&gt;
| &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-flare-ui.png|18px|link=星辉]]&amp;lt;/span&amp;gt; 星辉、&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-dagger-ui.png|18px|link=尖刀]]&amp;lt;/span&amp;gt; 尖刀、&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-mace-ui.png|18px|link=战锤]]&amp;lt;/span&amp;gt; 战锤&lt;br /&gt;
|-&lt;br /&gt;
! 是否敌方基地&lt;br /&gt;
| 否&lt;br /&gt;
|-&lt;br /&gt;
! 波次&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
! 守护者&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
! 初始建筑&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
! 地图下载&lt;br /&gt;
| 暂无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechTreePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechTreeTitle&amp;quot;&amp;gt;科技树&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechTreeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechCol&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechColTitle&amp;quot;&amp;gt;前置&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:block-core-shard-ui.png|32px|link=初代核心]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;初代核心&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechCol&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechColTitle&amp;quot;&amp;gt;当前&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:sector-groundZero.png|32px|link=零号地区]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;零号地区&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechCol&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechColTitle&amp;quot;&amp;gt;后置&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:sector-frozenForest.png|32px|link=冰冻森林]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;冰冻森林&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 地区介绍 ==&lt;br /&gt;
梦开始的地方，零号地区是 &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:planet-serpulo.png|18px|link=塞普罗]]&amp;lt;/span&amp;gt; [[塞普罗]] 的第一个主线区块。在不启用作弊功能的情况下，这是玩家在战役中前往的第一个区域，是游戏的开端，该区块同时也作为一个新手教程，旨在教会玩家基本的游戏技能，如采矿、建造、输送资源和防御。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;目标列表 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 目标 !! 注释&lt;br /&gt;
|-&lt;br /&gt;
|获得15个铜[[File:item-copper-ui.png|18px|link=铜]] || 靠近并单击铜矿脉，直接从铜矿中开采铜[[File:item-copper-ui.png|18px|link=铜]]。&lt;br /&gt;
|-&lt;br /&gt;
|建造1个机械钻头[[File:block-mechanical-drill-ui.png|18px|link=机械钻头]] || 放置机械钻头[[File:block-mechanical-drill-ui.png|18px|link=机械钻头]]时，请尽可能使其覆盖住矿脉，并留出至少１格空间来运输产出。&lt;br /&gt;
|-&lt;br /&gt;
|进入核心：5个铜[[File:item-copper-ui.png|18px|link=铜]] ||用传送带连接机械钻头[[File:block-mechanical-drill-ui.png|18px|link=机械钻头]]与初代核心[[File:block-core-shard-ui.png|18px|link=初代核心]]，使其将铜[[File:item-copper-ui.png|18px|link=铜]]从机械钻头[[File:block-mechanical-drill-ui.png|18px|link=机械钻头]]运输至初代核心[[File:block-core-shard-ui.png|18px|link=初代核心]]。&lt;br /&gt;
|-&lt;br /&gt;
|进入核心：100个铜[[File:item-copper-ui.png|18px|link=铜]] ||&lt;br /&gt;
|-&lt;br /&gt;
|进入核心：25个铅[[File:item-lead-ui.png|18px|link=铅]] || 完成这个目标后，地图的其余部分就会开放。&lt;br /&gt;
|-&lt;br /&gt;
|建造两个双管[[File:block-duo-ui.png|18px|link=双管]] ||在标记位置建造两个双管[[File:block-duo-ui.png|18px|link=双管]]。&lt;br /&gt;
|-&lt;br /&gt;
|为双管[[File:block-duo-ui.png|18px|link=双管]]供弹[[File:item-copper-ui.png|18px|link=铜]] || 开采两条中等大小的铜矿脉。你可以在这段时间内建造额外的双管[[File:block-duo-ui.png|18px|link=双管]]。&lt;br /&gt;
|-&lt;br /&gt;
|建造6个铜墙[[File:block-copper-wall-ui.png|18px|link=铜墙]] || 完成该目标后，视角会移动到敌方出生点，警告你该在区域内建造的任意建筑及单位都会在每一波次开始时被摧毁。&lt;br /&gt;
|-&lt;br /&gt;
|摧毁1个单位 || 如果你的双管[[File:block-duo-ui.png|18px|link=双管]]没能及时消灭敌方尖刀[[File:unit-dagger-ui.png|18px|link=尖刀]]，你可以使用你自己（核心机）自带的武器攻击。&lt;br /&gt;
|-&lt;br /&gt;
|建造1个分裂[[File:block-scatter-ui.png|18px|link=分裂]] || 注意！它只攻击空中单位！&lt;br /&gt;
|-&lt;br /&gt;
|为炮塔供弹 || 铅[[File:item-lead-ui.png|18px|link=铅]]和废料[[File:item-scrap-ui.png|18px|link=废料]]可以用来供弹。完成该目标后，第三波将会在大约一分钟后开始。&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;地图 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdt-imgFill&amp;quot;&amp;gt;&lt;br /&gt;
[[File:GroundZero-map.webp|700px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;波次列表&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次1&lt;br /&gt;
|1x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次2&lt;br /&gt;
|1x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]] || 2x[[File:unit-flare-ui.png|18px|link=星辉]][[星辉]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次3&lt;br /&gt;
|2x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次4&lt;br /&gt;
|2x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]] || 1x[[File:unit-flare-ui.png|18px|link=星辉]][[星辉]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次5&lt;br /&gt;
|3x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次6&lt;br /&gt;
|3x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]] || 2x[[File:unit-flare-ui.png|18px|link=星辉]][[星辉]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次7&lt;br /&gt;
|4x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次8&lt;br /&gt;
|4x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]] || 3x[[File:unit-flare-ui.png|18px|link=星辉]][[星辉]] || 1x[[File:unit-mace-ui.png|18px|link=战锤]][[战锤]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次9&lt;br /&gt;
|5x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]]&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | 波次10&lt;br /&gt;
|5x[[File:unit-dagger-ui.png|18px|link=尖刀]][[尖刀]] || 4x[[File:unit-flare-ui.png|18px|link=星辉]][[星辉]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;攻略/须知 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|1、跟随教程引导建造[[双管]][[File:block-duo-ui.png|18px|link=双管]]时，可以暂时搁置建造标示地点的[[双管]][[File:block-duo-ui.png|18px|link=双管]]（此时不会有波次来袭），优先开采位于标示地点后方两侧的铜矿脉，并使用传送带将铜[[File:item-copper-ui.png|18px|link=铜]]运输至前线备用，在建造完围墙、除标示地点外的[[双管]][[File:block-duo-ui.png|18px|link=双管]]后，继续完成教程在标示位置建造[[双管]][[File:block-duo-ui.png|18px|link=双管]]。&lt;br /&gt;
|-&lt;br /&gt;
|2、在前线建造[[双管]][[File:block-duo-ui.png|18px|link=双管]]时，记得同时开采铅矿脉并建造[[分裂]][[File:block-scatter-ui.png|18px|link=分裂]]以及为其供铅[[File:item-lead-ui.png|18px|link=铅]]。&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;冷知识/趣闻 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|1、[[零号地区]][[File:sector-groundZero.png|18px|link=零号地区]]的教程在早期版本十分简陋。现在教程由地图左下方的五个世界处理器控制。&lt;br /&gt;
|-&lt;br /&gt;
|2、在v155后，你可以通过遗弃[[零号地区]][[File:sector-groundZero.png|18px|link=零号地区]]，并重新发射一个装满物品的[[终代核心]][[File:block-core-nucleus-ui.png|18px|link=终代核心]]到[[零号地区]][[File:sector-groundZero.png|18px|link=零号地区]]以进行二次开发。而在v8之前零号地区会强制选择初代核心发射，只能通过发射台获取高级资源。&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E8%B5%84%E6%BA%90%E5%BA%93&amp;diff=3623</id>
		<title>资源库</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E8%B5%84%E6%BA%90%E5%BA%93&amp;diff=3623"/>
		<updated>2026-03-07T15:25:35Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​已还原Bill（讨论）的编辑至最后由Bmte修订的版本&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;这个页面收集站外Mindustry游戏资源的链接。注意，这些网站由第三方运营，我们不对其安全性、内容准确性等作出保证，具体参见[[Mindustry中文wiki:免责声明]]。请谨慎访问这些链接。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ 资源库&lt;br /&gt;
! 链接 !! 类型 !! 介绍&lt;br /&gt;
|-&lt;br /&gt;
| [https://downloads.khinsider.com/game-soundtracks/album/mindustry-anothology-soundtrack-2025] || 音乐 || 收集了Mindustry游戏音乐。&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V138&amp;diff=3598</id>
		<title>V138</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V138&amp;diff=3598"/>
		<updated>2026-03-04T15:40:02Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​翻译&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v138&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| alpha build 138&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| 7-official-138&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v138 7.0 Build 138 - Alpha]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| steam ????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
较重要的v7版本，完善了埃里克尔的音效，添加了?张埃里克尔战役区块&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 为服务器新增了Call.openURI方法，来向玩家展示链接。&lt;br /&gt;
* 为大多数埃里克尔方块/单位添加了声音。&lt;br /&gt;
* 为埃里克尔内容添加介绍。&lt;br /&gt;
* 新增两张战役地图。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 使玩家列表更为紧凑。&lt;br /&gt;
* 使玩家在点击玩家列表中玩家时摄像头跳转到该玩家。&lt;br /&gt;
* 使瘤液在大多数液体方块上停留而不是消失。&lt;br /&gt;
* 各种细微的平衡调整{{Nv}}&lt;br /&gt;
* 更改了行星际加速器的文本with some beta clarification&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* 修复了逻辑可以使单位没有冷却地运输物品。{{Nv}}（参见：[[光传]]）&lt;br /&gt;
* 修复了目标编辑器??因调整UI大小而损坏。（Fixed objectives edit dialog being broken with UI scaling）&lt;br /&gt;
* 修复了逻辑生成波次产生幽灵单位。&lt;br /&gt;
* 修复了在某些情况下会瞄准到“无法被伤害”的单位。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V138&amp;diff=3597</id>
		<title>V138</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V138&amp;diff=3597"/>
		<updated>2026-03-04T15:31:16Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v138&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| alpha build 138&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| 7-official-138&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v138 7.0 Build 138 - Alpha]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| steam ????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
较重要的v7版本，完善了埃里克尔的音效，添加了?张埃里克尔战役区块&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* 为服务器新增了Call.openURI方法，来向玩家展示链接。&lt;br /&gt;
* 为大多数埃里克尔方块/单位添加了声音。&lt;br /&gt;
* 为埃里克尔内容添加介绍。&lt;br /&gt;
* 新增两张战役地图。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* 使玩家列表更为紧凑。&lt;br /&gt;
* 使玩家在点击玩家列表中玩家时摄像头跳转到该玩家。&lt;br /&gt;
* Made Neoplasm stay on most liquids instead of disappearing&lt;br /&gt;
* Various minor balancing changes&lt;br /&gt;
* Changed interplanetary accelerator launch text for Serpulo with some beta clarification&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* Fixed an exploit allowing logic-controlled units to transfer items with no cooldown&lt;br /&gt;
* Fixed objectives edit dialog being broken with UI scaling&lt;br /&gt;
* Fixed logic-spawned waves creating ghost units&lt;br /&gt;
* Fixed non-hittable units being targeted in certain situations&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V138&amp;diff=3596</id>
		<title>V138</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V138&amp;diff=3596"/>
		<updated>2026-03-04T15:23:33Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​神秘排版&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v138&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| alpha build 138&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| 7-official-138&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github&amp;lt;br&amp;gt;Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v138 7.0 Build 138 - Alpha]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| steam ????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
较重要的v7版本，完善了埃里克尔的音效，添加了?张埃里克尔战役区块&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* Added Call.openURI method for servers to share links to players&lt;br /&gt;
* Added sounds for most Erekir blocks/units&lt;br /&gt;
* Added descriptions for Erekir content&lt;br /&gt;
* Added two new campaign maps&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* Made player list more compact&lt;br /&gt;
* Made clicking player on list jump to their position&lt;br /&gt;
* Made Neoplasm stay on most liquids instead of disappearing&lt;br /&gt;
* Various minor balancing changes&lt;br /&gt;
* Changed interplanetary accelerator launch text for Serpulo with some beta clarification&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* Fixed an exploit allowing logic-controlled units to transfer items with no cooldown&lt;br /&gt;
* Fixed objectives edit dialog being broken with UI scaling&lt;br /&gt;
* Fixed logic-spawned waves creating ghost units&lt;br /&gt;
* Fixed non-hittable units being targeted in certain situations&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V138&amp;diff=3595</id>
		<title>V138</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V138&amp;diff=3595"/>
		<updated>2026-03-04T15:22:41Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​内容&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v138&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| alpha build 138&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| 7-official-138&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v138 7.0 Build 138 - Alpha]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| steam ????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
较重要的v7版本，完善了埃里克尔的音效，添加了?张埃里克尔战役区块&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* Added Call.openURI method for servers to share links to players&lt;br /&gt;
* Added sounds for most Erekir blocks/units&lt;br /&gt;
* Added descriptions for Erekir content&lt;br /&gt;
* Added two new campaign maps&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
* Made player list more compact&lt;br /&gt;
* Made clicking player on list jump to their position&lt;br /&gt;
* Made Neoplasm stay on most liquids instead of disappearing&lt;br /&gt;
* Various minor balancing changes&lt;br /&gt;
* Changed interplanetary accelerator launch text for Serpulo with some beta clarification&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
* Fixed an exploit allowing logic-controlled units to transfer items with no cooldown&lt;br /&gt;
* Fixed objectives edit dialog being broken with UI scaling&lt;br /&gt;
* Fixed logic-spawned waves creating ghost units&lt;br /&gt;
* Fixed non-hittable units being targeted in certain situations&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=V138&amp;diff=3594</id>
		<title>V138</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=V138&amp;diff=3594"/>
		<updated>2026-03-04T15:20:43Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;v138&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;版本信息&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 版本&lt;br /&gt;
| alpha build 138&lt;br /&gt;
|-&lt;br /&gt;
! Android版本&lt;br /&gt;
| 7-official-138&lt;br /&gt;
|-&lt;br /&gt;
! 内部版本&lt;br /&gt;
| ?????&lt;br /&gt;
|-&lt;br /&gt;
! Github Release&lt;br /&gt;
| [https://github.com/Anuken/Mindustry/releases/tag/v138 7.0 Build 138 - Alpha]&lt;br /&gt;
|-&lt;br /&gt;
! Steam版本&lt;br /&gt;
| steam ????&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 版本介绍 ==&lt;br /&gt;
较重要的v7版本，完善了埃里克尔的音效，添加了?张埃里克尔战役区块&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 新内容 ==&lt;br /&gt;
* aaa&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 更改 ==&lt;br /&gt;
bbb&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 修复 ==&lt;br /&gt;
ccc&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:OnlySteam&amp;diff=3550</id>
		<title>模板:OnlySteam</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:OnlySteam&amp;diff=3550"/>
		<updated>2026-03-01T08:19:52Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
效果：{{OnlySteam}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;sup&amp;gt;[仅Steam版]&amp;lt;/sup&amp;gt;&amp;lt;includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:Neko_copper&amp;diff=3549</id>
		<title>用户讨论:Neko copper</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:Neko_copper&amp;diff=3549"/>
		<updated>2026-03-01T08:18:00Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​/* 在用户讨论页测试？？？ */ 新章节&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
煤炭发电机=&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 输入 !!&amp;lt;!-- 不要删除这里的空白表头 --&amp;gt;&lt;br /&gt;
! 输出 !!&lt;br /&gt;
! 消耗电力&lt;br /&gt;
! 生产时间&lt;br /&gt;
|-&lt;br /&gt;
| 1.33[[File:Item-coal-ui.png|18px|link=煤炭]]/秒 || (2[[File:Item-coal-ui.png|18px|link=煤炭]])&lt;br /&gt;
| 0.66[[File:Item-graphite-ui.png|18px|link=石墨]]/秒 || (1[[File:Item-graphite-ui.png|18px|link=石墨]])&lt;br /&gt;
| 无&lt;br /&gt;
| 1.5秒&lt;br /&gt;
|}&lt;br /&gt;
|-|&lt;br /&gt;
太阳能发电机=&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 输入 !!&amp;lt;!-- 不要删除这里的空白表头 --&amp;gt;&lt;br /&gt;
! 输出 !!&lt;br /&gt;
! 消耗电力&lt;br /&gt;
! 生产时间&lt;br /&gt;
|-&lt;br /&gt;
| 无 || &lt;br /&gt;
| 1[[File:Item-energy-ui.png|18px|link=能量]]/秒 || &lt;br /&gt;
| 无&lt;br /&gt;
| 持续&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 在用户讨论页测试？？？ ==&lt;br /&gt;
&lt;br /&gt;
创建一个新页面测试然后丢弃页面岂不是更好&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:Common.js&amp;diff=3494</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:Common.js&amp;diff=3494"/>
		<updated>2026-02-22T01:25:02Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​撤销绿豆（讨论）的修订版本3475  你好，绿豆&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* MediaWiki:Common.js */&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  function fallbackCopy(text) {&lt;br /&gt;
    if (!window.jQuery) return;&lt;br /&gt;
    var $ = window.jQuery;&lt;br /&gt;
    var $temp = $(&#039;&amp;lt;textarea&amp;gt;&#039;);&lt;br /&gt;
    $(&#039;body&#039;).append($temp);&lt;br /&gt;
    $temp.val(text).select();&lt;br /&gt;
    document.execCommand(&#039;copy&#039;);&lt;br /&gt;
    $temp.remove();&lt;br /&gt;
    alert(&#039;复制成功！&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 点击按钮复制内容：&amp;lt;button class=&amp;quot;copy-button&amp;quot; data-text=&amp;quot;...&amp;quot;&amp;gt;复制&amp;lt;/button&amp;gt;&lt;br /&gt;
  if (window.jQuery) {&lt;br /&gt;
    window.jQuery(function ($) {&lt;br /&gt;
      $(document).on(&#039;click&#039;, &#039;.copy-button&#039;, function () {&lt;br /&gt;
        var text = $(this).attr(&#039;data-text&#039;) || &#039;&#039;;&lt;br /&gt;
        if (navigator.clipboard &amp;amp;&amp;amp; navigator.clipboard.writeText) {&lt;br /&gt;
          navigator.clipboard.writeText(text).then(function () {&lt;br /&gt;
            alert(&#039;复制成功！&#039;);&lt;br /&gt;
          }, function () {&lt;br /&gt;
            fallbackCopy(text);&lt;br /&gt;
          });&lt;br /&gt;
        } else {&lt;br /&gt;
          fallbackCopy(text);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Timeless：把 Sidebar 里以 &amp;quot;-- &amp;quot; 开头的条目变成可折叠子项&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    if (mw.config.get(&#039;skin&#039;) !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function initNavTree() {&lt;br /&gt;
      var siteNav = document.getElementById(&#039;mw-site-navigation&#039;);&lt;br /&gt;
      if (!siteNav) return;&lt;br /&gt;
&lt;br /&gt;
      var pNav = siteNav.querySelector(&#039;#p-navigation&#039;);&lt;br /&gt;
      if (!pNav) return;&lt;br /&gt;
&lt;br /&gt;
      var root = pNav.querySelector(&#039;.mw-portlet-body &amp;gt; ul&#039;) ||&lt;br /&gt;
        pNav.querySelector(&#039;ul&#039;);&lt;br /&gt;
      if (!root) return;&lt;br /&gt;
&lt;br /&gt;
      if (root.getAttribute(&#039;data-mdtNav&#039;) === &#039;1&#039;) return;&lt;br /&gt;
      root.setAttribute(&#039;data-mdtNav&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
      var KEY = &#039;mdtNavTreeOpen&#039;;&lt;br /&gt;
      var store = {};&lt;br /&gt;
      try {&lt;br /&gt;
        store = JSON.parse(localStorage.getItem(KEY) || &#039;{}&#039;);&lt;br /&gt;
      } catch (e) {&lt;br /&gt;
        store = {};&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function getKey(li) {&lt;br /&gt;
        if (li &amp;amp;&amp;amp; li.id) return li.id;&lt;br /&gt;
        var a = li ? li.querySelector(&#039;a&#039;) : null;&lt;br /&gt;
        return a ? (a.getAttribute(&#039;href&#039;) || &#039;&#039;) : &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function setStored(li, open) {&lt;br /&gt;
        var k = getKey(li);&lt;br /&gt;
        if (!k) return;&lt;br /&gt;
        store[k] = open;&lt;br /&gt;
        try {&lt;br /&gt;
          localStorage.setItem(KEY, JSON.stringify(store));&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function setOpen(li, open, persist) {&lt;br /&gt;
        li.classList.toggle(&#039;mdtNavOpen&#039;, open);&lt;br /&gt;
        if (persist) setStored(li, open);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function ensureGroup(li) {&lt;br /&gt;
        li.classList.add(&#039;mdtNavGroup&#039;);&lt;br /&gt;
&lt;br /&gt;
        var sub = li.querySelector(&#039;ul.mdtNavSublist&#039;);&lt;br /&gt;
        if (!sub) {&lt;br /&gt;
          sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtNavSublist&#039;;&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var btn = li.querySelector(&#039;button.mdtNavToggle&#039;);&lt;br /&gt;
        if (!btn) {&lt;br /&gt;
          btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtNavToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          li.insertBefore(btn, sub);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var isOpen = li.classList.contains(&#039;mdtNavOpen&#039;);&lt;br /&gt;
            setOpen(li, !isOpen, true);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(!isOpen));&lt;br /&gt;
          });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var k = getKey(li);&lt;br /&gt;
        if (store[k] === true) {&lt;br /&gt;
          li.classList.add(&#039;mdtNavOpen&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return sub;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      var items = Array.prototype.slice.call(root.children);&lt;br /&gt;
      var lastAtDepth = [];&lt;br /&gt;
&lt;br /&gt;
      for (var i = 0; i &amp;lt; items.length; i++) {&lt;br /&gt;
        var li = items[i];&lt;br /&gt;
        if (!li || li.tagName !== &#039;LI&#039;) continue;&lt;br /&gt;
&lt;br /&gt;
        var a = li.querySelector(&#039;a&#039;);&lt;br /&gt;
        if (!a) continue;&lt;br /&gt;
&lt;br /&gt;
        var raw = (a.textContent || &#039;&#039;).trim();&lt;br /&gt;
        var m = raw.match(/^(-{2,})\s*(.*)$/);&lt;br /&gt;
&lt;br /&gt;
        var depth = 0;&lt;br /&gt;
        if (m) {&lt;br /&gt;
          depth = Math.min(Math.floor(m[1].length / 2), 3);&lt;br /&gt;
          a.textContent = m[2];&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        li.classList.add(&#039;mdtNavItem&#039;);&lt;br /&gt;
&lt;br /&gt;
        if (depth &amp;gt; 0 &amp;amp;&amp;amp; lastAtDepth[depth - 1]) {&lt;br /&gt;
          li.classList.add(&#039;mdtNavSubItem&#039;);&lt;br /&gt;
          li.classList.add(&#039;mdtNavDepth&#039; + String(depth));&lt;br /&gt;
          var sublist = ensureGroup(lastAtDepth[depth - 1]);&lt;br /&gt;
          sublist.appendChild(li);&lt;br /&gt;
        } else {&lt;br /&gt;
          depth = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        lastAtDepth[depth] = li;&lt;br /&gt;
        lastAtDepth.length = depth + 1;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      // 当前页面高亮 + 自动展开父级&lt;br /&gt;
      var current = (mw.config.get(&#039;wgPageName&#039;) || &#039;&#039;).replace(/ /g, &#039;_&#039;);&lt;br /&gt;
      var links = pNav.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
&lt;br /&gt;
      function titleFromHref(href) {&lt;br /&gt;
        var t = mw.util.getParamValue(&#039;title&#039;, href);&lt;br /&gt;
        if (t) return t.replace(/ /g, &#039;_&#039;);&lt;br /&gt;
&lt;br /&gt;
        var mark = &#039;/index.php/&#039;;&lt;br /&gt;
        var pos = href.indexOf(mark);&lt;br /&gt;
        if (pos !== -1) {&lt;br /&gt;
          return decodeURIComponent(href.slice(pos + mark.length))&lt;br /&gt;
            .replace(/ /g, &#039;_&#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var j = 0; j &amp;lt; links.length; j++) {&lt;br /&gt;
        var href = links[j].getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
        var page = titleFromHref(href);&lt;br /&gt;
&lt;br /&gt;
        if (page &amp;amp;&amp;amp; page === current) {&lt;br /&gt;
          links[j].classList.add(&#039;mdtNavActive&#039;);&lt;br /&gt;
&lt;br /&gt;
          var n = links[j].parentNode;&lt;br /&gt;
          while (n &amp;amp;&amp;amp; n !== root) {&lt;br /&gt;
            if (n.tagName === &#039;LI&#039; &amp;amp;&amp;amp; n.classList.contains(&#039;mdtNavGroup&#039;)) {&lt;br /&gt;
              setOpen(n, true, false);&lt;br /&gt;
              var btn = n.querySelector(&#039;button.mdtNavToggle&#039;);&lt;br /&gt;
              if (btn) btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
            }&lt;br /&gt;
            n = n.parentNode;&lt;br /&gt;
          }&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, initNavTree);&lt;br /&gt;
    } else {&lt;br /&gt;
      initNavTree();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // 可折叠标题：在标题旁边加一个展开/收起按钮&lt;br /&gt;
  // 用法：把任意标题写成：== 战役区块 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
  // 默认收起：== 战役区块 &amp;lt;span class=&amp;quot;mdtFold mdtFoldClosed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    var skin = String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase();&lt;br /&gt;
    if (skin !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var action = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    if (action === &#039;edit&#039; || action === &#039;submit&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function findHeading(node) {&lt;br /&gt;
      while (node &amp;amp;&amp;amp; node !== document.body) {&lt;br /&gt;
        if (node.nodeType === 1 &amp;amp;&amp;amp; /^H[1-6]$/.test(node.tagName)) return node;&lt;br /&gt;
        node = node.parentNode;&lt;br /&gt;
      }&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var KEY = &#039;mdtFoldSections&#039;;&lt;br /&gt;
    var store = {};&lt;br /&gt;
    try {&lt;br /&gt;
      store = JSON.parse(localStorage.getItem(KEY) || &#039;{}&#039;);&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      store = {};&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function saveStore() {&lt;br /&gt;
      try {&lt;br /&gt;
        localStorage.setItem(KEY, JSON.stringify(store));&lt;br /&gt;
      } catch (e) {}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHeadingBlock(headingEl) {&lt;br /&gt;
      if (!headingEl || !headingEl.parentElement) return headingEl;&lt;br /&gt;
&lt;br /&gt;
      // MediaWiki 新版可能会把 h2 包在 &amp;lt;div class=&amp;quot;mw-heading&amp;quot;&amp;gt; 里。&lt;br /&gt;
      // 如果不处理这个 wrapper，折叠只会影响 wrapper 内部（看起来“没效果”）。&lt;br /&gt;
      var p = headingEl.parentElement;&lt;br /&gt;
      if (p.classList &amp;amp;&amp;amp; p.classList.contains(&#039;mw-heading&#039;)) return p;&lt;br /&gt;
      return headingEl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHeadingLevelFromNode(node) {&lt;br /&gt;
      if (!node || node.nodeType !== 1) return null;&lt;br /&gt;
&lt;br /&gt;
      if (/^H[1-6]$/.test(node.tagName)) {&lt;br /&gt;
        return parseInt(String(node.tagName).slice(1), 10) || 6;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if (node.classList &amp;amp;&amp;amp; node.classList.contains(&#039;mw-heading&#039;)) {&lt;br /&gt;
        var h = node.querySelector(&#039;h1,h2,h3,h4,h5,h6&#039;);&lt;br /&gt;
        if (h &amp;amp;&amp;amp; /^H[1-6]$/.test(h.tagName)) {&lt;br /&gt;
          return parseInt(String(h.tagName).slice(1), 10) || 6;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function initFoldSections(root) {&lt;br /&gt;
      var content = root || document.getElementById(&#039;mw-content-text&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;.mw-parser-output&#039;) ||&lt;br /&gt;
        document.body;&lt;br /&gt;
      if (!content) return;&lt;br /&gt;
&lt;br /&gt;
      var nodes = [];&lt;br /&gt;
      var markers = content.querySelectorAll(&#039;.mdtFold&#039;);&lt;br /&gt;
      var headingNodes = content.querySelectorAll(&#039;h1.mdtFoldHeading,h2.mdtFoldHeading,h3.mdtFoldHeading,h4.mdtFoldHeading,h5.mdtFoldHeading,h6.mdtFoldHeading&#039;);&lt;br /&gt;
      for (var h = 0; h &amp;lt; headingNodes.length; h++) nodes.push(headingNodes[h]);&lt;br /&gt;
      for (var m = 0; m &amp;lt; markers.length; m++) nodes.push(markers[m]);&lt;br /&gt;
      if (!nodes.length) return;&lt;br /&gt;
&lt;br /&gt;
      for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
        (function (nodeOrMarker) {&lt;br /&gt;
          var marker = null;&lt;br /&gt;
          var heading = null;&lt;br /&gt;
&lt;br /&gt;
          if (nodeOrMarker &amp;amp;&amp;amp; nodeOrMarker.nodeType === 1 &amp;amp;&amp;amp; /^H[1-6]$/.test(nodeOrMarker.tagName)) {&lt;br /&gt;
            heading = nodeOrMarker;&lt;br /&gt;
          } else {&lt;br /&gt;
            marker = nodeOrMarker;&lt;br /&gt;
            heading = findHeading(marker);&lt;br /&gt;
          }&lt;br /&gt;
          if (!heading) return;&lt;br /&gt;
&lt;br /&gt;
          // 兼容：如果是通过 h2.mdtFoldHeading 触发，但里面也有 span.mdtFold，&lt;br /&gt;
          // 也要把 marker 当作触发点，这样可以读取默认收起并移除 marker。&lt;br /&gt;
          if (!marker) {&lt;br /&gt;
            marker = heading.querySelector(&#039;.mdtFold&#039;);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          var headingBlock = getHeadingBlock(heading);&lt;br /&gt;
          if (!headingBlock) return;&lt;br /&gt;
&lt;br /&gt;
          if (headingBlock.getAttribute(&#039;data-mdtFoldInit&#039;) === &#039;1&#039;) return;&lt;br /&gt;
          headingBlock.setAttribute(&#039;data-mdtFoldInit&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
          var level = parseInt(String(heading.tagName).slice(1), 10) || 2;&lt;br /&gt;
          var headline = heading.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
&lt;br /&gt;
          // Body: 优先折叠“紧跟着”的图标网格（你这个场景就是 h2 + .mdtIconGrid）。&lt;br /&gt;
          // 也支持手动标记：&amp;lt;div class=&amp;quot;mdtFoldBody&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
          var body = null;&lt;br /&gt;
          var nextEl = headingBlock.nextElementSibling;&lt;br /&gt;
          if (nextEl &amp;amp;&amp;amp; nextEl.classList) {&lt;br /&gt;
            if (nextEl.classList.contains(&#039;mdtFoldBody&#039;) || nextEl.classList.contains(&#039;mdtIconGrid&#039;)) {&lt;br /&gt;
              body = nextEl;&lt;br /&gt;
              body.classList.add(&#039;mdtFoldBody&#039;);&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // 自动模式：把标题后面直到下一个“同级或更高级标题”的所有节点包起来。&lt;br /&gt;
          if (!body) {&lt;br /&gt;
            body = document.createElement(&#039;div&#039;);&lt;br /&gt;
            body.className = &#039;mdtFoldBody&#039;;&lt;br /&gt;
&lt;br /&gt;
            var node = headingBlock.nextSibling;&lt;br /&gt;
            while (node) {&lt;br /&gt;
              var next = node.nextSibling;&lt;br /&gt;
              var nodeLevel = getHeadingLevelFromNode(node);&lt;br /&gt;
              if (nodeLevel !== null &amp;amp;&amp;amp; nodeLevel &amp;lt;= level) break;&lt;br /&gt;
              body.appendChild(node);&lt;br /&gt;
              node = next;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            headingBlock.parentNode.insertBefore(body, node);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Toggle button&lt;br /&gt;
          var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtFoldToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
          btn.title = &#039;展开/收起&#039;;&lt;br /&gt;
          btn.textContent = &#039;\u25BE&#039;;&lt;br /&gt;
&lt;br /&gt;
          // Inline style fallback: in case Timeless.css is not loaded yet.&lt;br /&gt;
          btn.style.width = &#039;1.6rem&#039;;&lt;br /&gt;
          btn.style.height = &#039;1.6rem&#039;;&lt;br /&gt;
          btn.style.marginLeft = &#039;0.25rem&#039;;&lt;br /&gt;
          btn.style.border = &#039;0&#039;;&lt;br /&gt;
          btn.style.padding = &#039;0&#039;;&lt;br /&gt;
          btn.style.borderRadius = &#039;10px&#039;;&lt;br /&gt;
          btn.style.display = &#039;inline-flex&#039;;&lt;br /&gt;
          btn.style.alignItems = &#039;center&#039;;&lt;br /&gt;
          btn.style.justifyContent = &#039;center&#039;;&lt;br /&gt;
          btn.style.background = &#039;rgba(0, 175, 137, 0.10)&#039;;&lt;br /&gt;
          btn.style.color = &#039;var(--mdtBrand)&#039;;&lt;br /&gt;
          btn.style.cursor = &#039;pointer&#039;;&lt;br /&gt;
          btn.style.fontFamily = &#039;inherit&#039;;&lt;br /&gt;
          btn.style.fontSize = &#039;16px&#039;;&lt;br /&gt;
          btn.style.fontWeight = &#039;700&#039;;&lt;br /&gt;
          btn.style.lineHeight = &#039;1&#039;;&lt;br /&gt;
          btn.style.boxShadow = &#039;none&#039;;&lt;br /&gt;
          btn.style.outline = &#039;none&#039;;&lt;br /&gt;
          btn.style.appearance = &#039;none&#039;;&lt;br /&gt;
          btn.style.webkitAppearance = &#039;none&#039;;&lt;br /&gt;
&lt;br /&gt;
          if (headline) {&lt;br /&gt;
            headline.classList.add(&#039;mdtFoldHeadline&#039;);&lt;br /&gt;
            headline.appendChild(btn);&lt;br /&gt;
          } else {&lt;br /&gt;
            var wrap = document.createElement(&#039;span&#039;);&lt;br /&gt;
            wrap.className = &#039;mdtFoldHeadline&#039;;&lt;br /&gt;
&lt;br /&gt;
            while (heading.firstChild) {&lt;br /&gt;
              wrap.appendChild(heading.firstChild);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            heading.appendChild(wrap);&lt;br /&gt;
            wrap.appendChild(btn);&lt;br /&gt;
            headline = wrap;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Marker/heading default state&lt;br /&gt;
          var defaultClosed = false;&lt;br /&gt;
          if (marker &amp;amp;&amp;amp; marker.classList &amp;amp;&amp;amp; marker.classList.contains(&#039;mdtFoldClosed&#039;)) {&lt;br /&gt;
            defaultClosed = true;&lt;br /&gt;
          }&lt;br /&gt;
          if (heading.classList &amp;amp;&amp;amp; heading.classList.contains(&#039;mdtFoldClosed&#039;)) {&lt;br /&gt;
            defaultClosed = true;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Remove marker to avoid extra spacing&lt;br /&gt;
          if (marker &amp;amp;&amp;amp; marker.parentNode) marker.parentNode.removeChild(marker);&lt;br /&gt;
&lt;br /&gt;
          var page = (mw.config.get(&#039;wgPageName&#039;) || &#039;&#039;).replace(/ /g, &#039;_&#039;);&lt;br /&gt;
          var id = &#039;&#039;;&lt;br /&gt;
          if (headline &amp;amp;&amp;amp; headline.id) id = headline.id;&lt;br /&gt;
          if (!id) id = (heading.textContent || &#039;&#039;).trim();&lt;br /&gt;
          var storageKey = page + &#039;::&#039; + id;&lt;br /&gt;
&lt;br /&gt;
          function setCollapsed(collapsed, persist) {&lt;br /&gt;
            headingBlock.classList.toggle(&#039;mdtFoldCollapsed&#039;, collapsed);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(!collapsed));&lt;br /&gt;
            btn.textContent = collapsed ? &#039;\u25B8&#039; : &#039;\u25BE&#039;;&lt;br /&gt;
            if (body) {&lt;br /&gt;
              body.classList.toggle(&#039;mdtFoldHidden&#039;, collapsed);&lt;br /&gt;
              // Ensure it works even if CSS is missing/cached.&lt;br /&gt;
              body.style.display = collapsed ? &#039;none&#039; : &#039;&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            if (persist) {&lt;br /&gt;
              store[storageKey] = collapsed;&lt;br /&gt;
              saveStore();&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          var collapsed = false;&lt;br /&gt;
          if (typeof store[storageKey] === &#039;boolean&#039;) {&lt;br /&gt;
            collapsed = store[storageKey];&lt;br /&gt;
          } else if (defaultClosed) {&lt;br /&gt;
            collapsed = true;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          setCollapsed(collapsed, false);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var isCollapsed = headingBlock.classList.contains(&#039;mdtFoldCollapsed&#039;);&lt;br /&gt;
            setCollapsed(!isCollapsed, true);&lt;br /&gt;
          });&lt;br /&gt;
        })(nodes[i]);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function runOnPage() {&lt;br /&gt;
      initFoldSections(document.getElementById(&#039;mw-content-text&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;.mw-parser-output&#039;) ||&lt;br /&gt;
        document.body);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // MediaWiki 推荐：内容渲染/替换后触发（兼容预览、部分皮肤/插件）。&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
        initFoldSections($content &amp;amp;&amp;amp; $content[0] ? $content[0] : null);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, runOnPage);&lt;br /&gt;
    } else {&lt;br /&gt;
      runOnPage();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  /* Timeless: 左/右侧栏抽屉 + 首页按钮 */&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    if (mw.config.get(&#039;skin&#039;) !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function onReady(fn) {&lt;br /&gt;
      if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
        document.addEventListener(&#039;DOMContentLoaded&#039;, fn);&lt;br /&gt;
      } else {&lt;br /&gt;
        fn();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ICON_HOME =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var ICON_MENU =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var ICON_GEAR =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M19.14 12.94c.04-.31.06-.63.06-.94s-.02-.63-.06-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.6-.22l-2.39.96c-.5-.38-1.04-.7-1.63-.94l-.36-2.54A.5.5 0 0 0 13.9 2h-3.8a.5.5 0 0 0-.49.42l-.36 2.54c-.59.24-1.13.56-1.63.94l-2.39-.96a.5.5 0 0 0-.6.22L2.71 8.48a.5.5 0 0 0 .12.64l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94L2.83 14.52a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.31.6.22l2.39-.96c.5.38 1.04.7 1.63.94l.36 2.54c.05.24.25.42.49.42h3.8c.24 0 .44-.18.49-.42l.36-2.54c.59-.24 1.13-.56 1.63-.94l2.39.96c.22.09.47 0 .6-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58zM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    function wrapIcon(svg) {&lt;br /&gt;
      var span = document.createElement(&#039;span&#039;);&lt;br /&gt;
      span.className = &#039;mdtDockIcon&#039;;&lt;br /&gt;
      span.innerHTML = svg;&lt;br /&gt;
      return span;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    onReady(function () {&lt;br /&gt;
      if (document.getElementById(&#039;mdtDockLeft&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
      var siteNav = document.getElementById(&#039;mw-site-navigation&#039;);&lt;br /&gt;
      var relatedNav = document.getElementById(&#039;mw-related-navigation&#039;);&lt;br /&gt;
      if (!siteNav &amp;amp;&amp;amp; !relatedNav) return;&lt;br /&gt;
&lt;br /&gt;
      document.body.classList.add(&#039;mdtDockEnabled&#039;);&lt;br /&gt;
&lt;br /&gt;
      var backdrop = document.createElement(&#039;div&#039;);&lt;br /&gt;
      backdrop.id = &#039;mdtDockBackdrop&#039;;&lt;br /&gt;
&lt;br /&gt;
      function syncBackdrop() {&lt;br /&gt;
        var open =&lt;br /&gt;
          document.body.classList.contains(&#039;mdtDockNavOpen&#039;) ||&lt;br /&gt;
          document.body.classList.contains(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
        backdrop.classList.toggle(&#039;is-active&#039;, open);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function closeAll() {&lt;br /&gt;
        document.body.classList.remove(&#039;mdtDockNavOpen&#039;, &#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
        syncBackdrop();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      backdrop.addEventListener(&#039;click&#039;, closeAll);&lt;br /&gt;
      document.addEventListener(&#039;keydown&#039;, function (e) {&lt;br /&gt;
        if (e.key === &#039;Escape&#039;) closeAll();&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 左侧：홈 + 汉堡&lt;br /&gt;
      var left = document.createElement(&#039;div&#039;);&lt;br /&gt;
      left.id = &#039;mdtDockLeft&#039;;&lt;br /&gt;
&lt;br /&gt;
      var home = document.createElement(&#039;a&#039;);&lt;br /&gt;
      home.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
      home.href = mw.util.getUrl(&#039;首页&#039;); &lt;br /&gt;
      home.title = &#039;首页&#039;;&lt;br /&gt;
      home.setAttribute(&#039;aria-label&#039;, &#039;首页&#039;);&lt;br /&gt;
      home.appendChild(wrapIcon(ICON_HOME));&lt;br /&gt;
      left.appendChild(home);&lt;br /&gt;
&lt;br /&gt;
      if (siteNav) {&lt;br /&gt;
        var navBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
        navBtn.type = &#039;button&#039;;&lt;br /&gt;
        navBtn.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
        navBtn.title = &#039;导航&#039;;&lt;br /&gt;
        navBtn.setAttribute(&#039;aria-label&#039;, &#039;导航&#039;);&lt;br /&gt;
        navBtn.appendChild(wrapIcon(ICON_MENU));&lt;br /&gt;
        navBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
          var nowOpen = document.body.classList.toggle(&#039;mdtDockNavOpen&#039;);&lt;br /&gt;
          if (nowOpen) document.body.classList.remove(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
          syncBackdrop();&lt;br /&gt;
        });&lt;br /&gt;
        left.appendChild(navBtn);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
// 右侧：齿轮&lt;br /&gt;
var right = document.createElement(&#039;div&#039;);&lt;br /&gt;
right.id = &#039;mdtDockRight&#039;;&lt;br /&gt;
&lt;br /&gt;
if (relatedNav) {&lt;br /&gt;
  var toolsBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
  toolsBtn.type = &#039;button&#039;;&lt;br /&gt;
  toolsBtn.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
  toolsBtn.title = &#039;页面工具&#039;;&lt;br /&gt;
  toolsBtn.setAttribute(&#039;aria-label&#039;, &#039;页面工具&#039;);&lt;br /&gt;
  toolsBtn.appendChild(wrapIcon(ICON_GEAR));&lt;br /&gt;
  toolsBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
    var nowOpen = document.body.classList.toggle(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
    if (nowOpen) document.body.classList.remove(&#039;mdtDockNavOpen&#039;);&lt;br /&gt;
    syncBackdrop();&lt;br /&gt;
  });&lt;br /&gt;
  left.appendChild(toolsBtn);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.body.appendChild(backdrop);&lt;br /&gt;
document.body.appendChild(left);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      document.body.appendChild(backdrop);&lt;br /&gt;
      document.body.appendChild(left);&lt;br /&gt;
      document.body.appendChild(right);&lt;br /&gt;
      syncBackdrop();&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  function isTimeless() {&lt;br /&gt;
    try {&lt;br /&gt;
      return String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase() === &#039;timeless&#039;;&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isViewMode() {&lt;br /&gt;
    var a = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    return a === &#039;view&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isMobileUA() {&lt;br /&gt;
    var ua = String(navigator.userAgent || &#039;&#039;);&lt;br /&gt;
    return /Mobi|Android|iPhone|iPad|iPod/i.test(ua);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeText(text) {&lt;br /&gt;
    return String(text || &#039;&#039;)&lt;br /&gt;
      .replace(/\s+/g, &#039; &#039;)&lt;br /&gt;
      .replace(/[\u25B8\u25BE]/g, &#039;&#039;)&lt;br /&gt;
      .trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function collectGroups(root) {&lt;br /&gt;
    var nodes = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    var groups = [];&lt;br /&gt;
    var current = null;&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
      var h = nodes[i];&lt;br /&gt;
      if (!h) continue;&lt;br /&gt;
&lt;br /&gt;
      var id = h.id || &#039;&#039;;&lt;br /&gt;
      if (!id) continue;&lt;br /&gt;
&lt;br /&gt;
      var text = normalizeText(h.textContent);&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
&lt;br /&gt;
      if (h.tagName === &#039;H2&#039;) {&lt;br /&gt;
        current = { id: id, text: text, children: [] };&lt;br /&gt;
        groups.push(current);&lt;br /&gt;
      } else {&lt;br /&gt;
        if (!current) continue;&lt;br /&gt;
        current.children.push({ id: id, text: text });&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return groups;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function flattenIds(groups) {&lt;br /&gt;
    var ids = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      ids.push(groups[i].id);&lt;br /&gt;
      var children = groups[i].children || [];&lt;br /&gt;
      for (var j = 0; j &amp;lt; children.length; j++) {&lt;br /&gt;
        ids.push(children[j].id);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return ids;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildPanel(groups) {&lt;br /&gt;
    var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
    wrap.id = &#039;mdtFloatToc&#039;;&lt;br /&gt;
    wrap.className = &#039;mdtFloatToc&#039;;&lt;br /&gt;
&lt;br /&gt;
    wrap.innerHTML =&lt;br /&gt;
      &amp;quot;&amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocBtn&#039; aria-label=&#039;目录&#039;&amp;gt;≡&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;&amp;lt;div class=&#039;mdtFloatTocPanel&#039; role=&#039;dialog&#039; aria-label=&#039;目录&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;div class=&#039;mdtFloatTocHead&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocTop&#039;&amp;gt;&amp;lt;span aria-hidden=&#039;true&#039;&amp;gt;↑&amp;lt;/span&amp;gt;返回顶部&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;div class=&#039;mdtFloatTocTitle&#039;&amp;gt;目录&amp;lt;/div&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocClose&#039; aria-label=&#039;关闭&#039;&amp;gt;✕&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;/div&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;ul class=&#039;mdtFloatTocList&#039;&amp;gt;&amp;lt;/ul&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var ul = wrap.querySelector(&#039;.mdtFloatTocList&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      (function (g) {&lt;br /&gt;
        var li = document.createElement(&#039;li&#039;);&lt;br /&gt;
        li.className = &#039;mdtFloatTocItem mdtFloatTocGroup&#039;;&lt;br /&gt;
&lt;br /&gt;
        var row = document.createElement(&#039;div&#039;);&lt;br /&gt;
        row.className = &#039;mdtFloatTocRow&#039;;&lt;br /&gt;
&lt;br /&gt;
        var a = document.createElement(&#039;a&#039;);&lt;br /&gt;
        a.href = &#039;#&#039; + encodeURIComponent(g.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
        a.textContent = g.text;&lt;br /&gt;
        row.appendChild(a);&lt;br /&gt;
&lt;br /&gt;
        if (g.children &amp;amp;&amp;amp; g.children.length) {&lt;br /&gt;
          var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtFloatTocGroupToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          btn.textContent = &#039;▸&#039;;&lt;br /&gt;
          row.appendChild(btn);&lt;br /&gt;
&lt;br /&gt;
          var sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtFloatTocSublist&#039;;&lt;br /&gt;
&lt;br /&gt;
          for (var j = 0; j &amp;lt; g.children.length; j++) {&lt;br /&gt;
            var c = g.children[j];&lt;br /&gt;
            var cli = document.createElement(&#039;li&#039;);&lt;br /&gt;
            cli.className = &#039;mdtFloatTocItem&#039;;&lt;br /&gt;
            cli.innerHTML = &amp;quot;&amp;lt;a href=&#039;#&amp;quot; + encodeURIComponent(c.id).replace(/%2F/g, &#039;/&#039;) + &amp;quot;&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
              mw.html.escape(c.text) + &amp;quot;&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
            sub.appendChild(cli);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          li.appendChild(row);&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var open = li.classList.toggle(&#039;mdtFloatTocGroupOpen&#039;);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(open));&lt;br /&gt;
            btn.textContent = open ? &#039;▾&#039; : &#039;▸&#039;;&lt;br /&gt;
          });&lt;br /&gt;
        } else {&lt;br /&gt;
          li.appendChild(row);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ul.appendChild(li);&lt;br /&gt;
      })(groups[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function openPanel(open) {&lt;br /&gt;
      wrap.classList.toggle(&#039;mdtFloatTocOpen&#039;, open);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocBtn&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(true);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocClose&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocTop&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
      window.scrollTo({ top: 0, behavior: &#039;smooth&#039; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Click a toc item -&amp;gt; close + smooth scroll&lt;br /&gt;
    wrap.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      var a = ev.target &amp;amp;&amp;amp; ev.target.closest ? ev.target.closest(&#039;a&#039;) : null;&lt;br /&gt;
      if (!a) return;&lt;br /&gt;
      var href = a.getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
      if (href.charAt(0) !== &#039;#&#039;) return;&lt;br /&gt;
&lt;br /&gt;
      ev.preventDefault();&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
&lt;br /&gt;
      var id = decodeURIComponent(href.slice(1));&lt;br /&gt;
      var target = document.getElementById(id);&lt;br /&gt;
      if (target) {&lt;br /&gt;
        target.scrollIntoView({ behavior: &#039;smooth&#039;, block: &#039;start&#039; });&lt;br /&gt;
        history.replaceState(null, &#039;&#039;, &#039;#&#039; + encodeURIComponent(id));&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Close when tapping outside&lt;br /&gt;
    document.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      if (!wrap.classList.contains(&#039;mdtFloatTocOpen&#039;)) return;&lt;br /&gt;
      if (wrap.contains(ev.target)) return;&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Highlight active heading&lt;br /&gt;
    var linkById = {};&lt;br /&gt;
    var links = wrap.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
    for (var k = 0; k &amp;lt; links.length; k++) {&lt;br /&gt;
      var id2 = decodeURIComponent((links[k].getAttribute(&#039;href&#039;) || &#039;&#039;).slice(1));&lt;br /&gt;
      linkById[id2] = links[k];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ids = flattenIds(groups);&lt;br /&gt;
    var ticking = false;&lt;br /&gt;
    function updateActive() {&lt;br /&gt;
      ticking = false;&lt;br /&gt;
&lt;br /&gt;
      var bestId = &#039;&#039;;&lt;br /&gt;
      var bestTop = -Infinity;&lt;br /&gt;
      for (var i2 = 0; i2 &amp;lt; ids.length; i2++) {&lt;br /&gt;
        var el = document.getElementById(ids[i2]);&lt;br /&gt;
        if (!el) continue;&lt;br /&gt;
        var rect = el.getBoundingClientRect();&lt;br /&gt;
        if (rect.top &amp;lt;= 120 &amp;amp;&amp;amp; rect.top &amp;gt; bestTop) {&lt;br /&gt;
          bestTop = rect.top;&lt;br /&gt;
          bestId = ids[i2];&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var idKey in linkById) {&lt;br /&gt;
        linkById[idKey].classList.toggle(&#039;mdtFloatTocActive&#039;, idKey === bestId);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    window.addEventListener(&#039;scroll&#039;, function () {&lt;br /&gt;
      if (ticking) return;&lt;br /&gt;
      ticking = true;&lt;br /&gt;
      window.requestAnimationFrame(updateActive);&lt;br /&gt;
    }, { passive: true });&lt;br /&gt;
&lt;br /&gt;
    return wrap;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function ensureHeadingIds(root) {&lt;br /&gt;
    var headings = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; headings.length; i++) {&lt;br /&gt;
      var h = headings[i];&lt;br /&gt;
      if (h.id) continue;&lt;br /&gt;
      var hl = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
      if (hl &amp;amp;&amp;amp; hl.id) h.id = hl.id;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function initFloatToc($content) {&lt;br /&gt;
    if (!isTimeless() || !isViewMode() || !isMobileUA()) return;&lt;br /&gt;
&lt;br /&gt;
    var content = $content &amp;amp;&amp;amp; $content[0] ? $content[0] : null;&lt;br /&gt;
    var root = content || document.querySelector(&#039;.mw-parser-output&#039;) || document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
    if (!root) return;&lt;br /&gt;
&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatToc&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    ensureHeadingIds(root);&lt;br /&gt;
    var groups = collectGroups(root);&lt;br /&gt;
    if (!groups.length) return;&lt;br /&gt;
&lt;br /&gt;
    document.body.appendChild(buildPanel(groups));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;, &#039;mediawiki.html&#039;]).then(function () {&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(initFloatToc);&lt;br /&gt;
    }&lt;br /&gt;
    initFloatToc(null);&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
  MDT Float TOC (desktop: dock to top-right gutter, default open)&lt;br /&gt;
  Paste this whole file into: MediaWiki:Common.js (very bottom)&lt;br /&gt;
*/&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  var DESKTOP_MIN_WIDTH = 1000;&lt;br /&gt;
  var GAP_PX = 12;&lt;br /&gt;
  var FALLBACK_TOP_REM = 4.1;&lt;br /&gt;
&lt;br /&gt;
  function isViewMode() {&lt;br /&gt;
    try {&lt;br /&gt;
      return String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase() === &#039;view&#039;;&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isDesktop() {&lt;br /&gt;
    try {&lt;br /&gt;
      return (&lt;br /&gt;
        window.matchMedia &amp;amp;&amp;amp;&lt;br /&gt;
        window.matchMedia(&#039;(min-width: &#039; + String(DESKTOP_MIN_WIDTH) + &#039;px)&#039;).matches&lt;br /&gt;
      );&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function remToPx(rem) {&lt;br /&gt;
    var fs = 16;&lt;br /&gt;
    try {&lt;br /&gt;
      fs = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;&lt;br /&gt;
    } catch (e) {}&lt;br /&gt;
    return rem * fs;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getDockTopPx() {&lt;br /&gt;
    var dock = document.getElementById(&#039;mdtDockLeft&#039;) || document.getElementById(&#039;mdtDockRight&#039;);&lt;br /&gt;
    if (dock &amp;amp;&amp;amp; dock.getBoundingClientRect) {&lt;br /&gt;
      return Math.round(dock.getBoundingClientRect().top);&lt;br /&gt;
    }&lt;br /&gt;
    return Math.round(remToPx(FALLBACK_TOP_REM));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeText(text) {&lt;br /&gt;
    return String(text || &#039;&#039;)&lt;br /&gt;
      .replace(/\s+/g, &#039; &#039;)&lt;br /&gt;
      .replace(/[\u25B8\u25BE]/g, &#039;&#039;)&lt;br /&gt;
      .trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function ensureHeadingIds(root) {&lt;br /&gt;
    var headings = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; headings.length; i++) {&lt;br /&gt;
      var h = headings[i];&lt;br /&gt;
      if (!h || h.id) continue;&lt;br /&gt;
      var hl = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
      if (hl &amp;amp;&amp;amp; hl.id) h.id = hl.id;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function shouldSkipHeading(h) {&lt;br /&gt;
    if (!h) return true;&lt;br /&gt;
    if (!h.id) return true;&lt;br /&gt;
    if (h.closest(&#039;#mw-site-navigation, #mw-related-navigation, .mw-portlet, .mdtRightRail&#039;)) return true;&lt;br /&gt;
    return false;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function collectGroups(root) {&lt;br /&gt;
    var nodes = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    var groups = [];&lt;br /&gt;
    var current = null;&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
      var h = nodes[i];&lt;br /&gt;
      if (shouldSkipHeading(h)) continue;&lt;br /&gt;
&lt;br /&gt;
      var id = h.id;&lt;br /&gt;
  var headline = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
  var text = normalizeText(headline ? headline.textContent : h.textContent);&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
&lt;br /&gt;
      if (h.tagName === &#039;H2&#039;) {&lt;br /&gt;
        current = { id: id, text: text, children: [] };&lt;br /&gt;
        groups.push(current);&lt;br /&gt;
      } else {&lt;br /&gt;
        if (!current) continue;&lt;br /&gt;
        current.children.push({ id: id, text: text });&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return groups;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function flattenIds(groups) {&lt;br /&gt;
    var ids = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      ids.push(groups[i].id);&lt;br /&gt;
      var children = groups[i].children || [];&lt;br /&gt;
      for (var j = 0; j &amp;lt; children.length; j++) ids.push(children[j].id);&lt;br /&gt;
    }&lt;br /&gt;
    return ids;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function injectCssOnce() {&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatTocStyle&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    var css = [&lt;br /&gt;
      &#039;#mw-content-text .mw-headline{scroll-margin-top:5rem;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* wrapper (mobile default: bottom-right) */&lt;br /&gt;
      &#039;#mdtFloatToc{position:fixed;right:0.9rem;bottom:1.1rem;top:auto;z-index:9999;font-family:inherit;display:block !important;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* open button */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocBtn{width:3rem;height:3rem;border-radius:999px;border:1px solid rgba(255,255,255,0.14);background:rgba(0,0,0,0.70);color:rgba(255,255,255,0.92);box-shadow:0 12px 28px rgba(0,0,0,0.28);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:900;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocBtn:hover{border-color:rgba(0,207,160,0.60);box-shadow:0 12px 28px rgba(0,0,0,0.28),0 0 0 3px rgba(0,207,160,0.18);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc.mdtFloatTocOpen .mdtFloatTocBtn{opacity:0;pointer-events:none;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* panel (mobile default: popup) */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocPanel{position:absolute;right:0;bottom:3.75rem;width:min(22rem,88vw);max-height:min(70vh,34rem);overflow:auto;padding:0.85rem 0.9rem;border-radius:16px;background:rgba(36,46,45,0.92);border:1px solid rgba(255,255,255,0.14);box-shadow:0 18px 44px rgba(0,0,0,0.32);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:rgba(255,255,255,0.92);display:none;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc.mdtFloatTocOpen .mdtFloatTocPanel{display:block;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* head */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocHead{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;padding:0 0 0.55rem 0;margin:0 0 0.6rem 0;border-bottom:1px solid rgba(255,255,255,0.10);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTitle{font-weight:900;opacity:0.9;letter-spacing:0.06em;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTop,#mdtFloatToc .mdtFloatTocClose{border:0;background:transparent;color:inherit;cursor:pointer;padding:0;font-family:inherit;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTop{display:inline-flex;align-items:center;gap:0.55rem;font-weight:900;color:var(--mdtBrand2,#00cfa0);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocClose{width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.06);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocClose:hover{background:rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* list */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocList{list-style:none;margin:0;padding:0 0 0 0.85rem;border-left:1px solid rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocRow{display:flex;align-items:center;gap:0.35rem;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem{margin:0.18rem 0;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a,#mdtFloatToc .mdtFloatTocItem a:visited{color:rgba(255,255,255,0.86);text-decoration:none;font-weight:750;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a:hover{color:var(--mdtBrand2,#00cfa0);text-decoration:underline;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a.mdtFloatTocActive{color:var(--mdtBrand2,#00cfa0);text-decoration:underline;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* sub list */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroupToggle{border:0;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.80);cursor:pointer;padding:0;width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroupToggle:hover{background:rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroup.mdtFloatTocGroupOpen .mdtFloatTocGroupToggle{color:var(--mdtBrand2,#00cfa0);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocSublist{list-style:none;margin:0.35rem 0 0.25rem;padding:0 0 0 0.85rem;border-left:1px solid rgba(255,255,255,0.12);display:none;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroup.mdtFloatTocGroupOpen .mdtFloatTocSublist{display:block;}&#039;&lt;br /&gt;
    ].join(&#039;\n&#039;);&lt;br /&gt;
&lt;br /&gt;
    var style = document.createElement(&#039;style&#039;);&lt;br /&gt;
    style.id = &#039;mdtFloatTocStyle&#039;;&lt;br /&gt;
    style.type = &#039;text/css&#039;;&lt;br /&gt;
    style.textContent = css;&lt;br /&gt;
    document.head.appendChild(style);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function applyDesktopDock(wrap) {&lt;br /&gt;
    if (!wrap) return;&lt;br /&gt;
    var panel = wrap.querySelector(&#039;.mdtFloatTocPanel&#039;);&lt;br /&gt;
    if (!panel) return;&lt;br /&gt;
&lt;br /&gt;
    if (!isDesktop()) {&lt;br /&gt;
      wrap.style.top = &#039;&#039;;&lt;br /&gt;
      wrap.style.right = &#039;&#039;;&lt;br /&gt;
      wrap.style.bottom = &#039;&#039;;&lt;br /&gt;
      panel.style.position = &#039;&#039;;&lt;br /&gt;
      panel.style.top = &#039;&#039;;&lt;br /&gt;
      panel.style.right = &#039;&#039;;&lt;br /&gt;
      panel.style.bottom = &#039;&#039;;&lt;br /&gt;
      panel.style.left = &#039;&#039;;&lt;br /&gt;
      panel.style.width = &#039;&#039;;&lt;br /&gt;
      panel.style.maxHeight = &#039;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var topPx = getDockTopPx();&lt;br /&gt;
    wrap.style.top = String(topPx) + &#039;px&#039;;&lt;br /&gt;
    wrap.style.right = String(GAP_PX) + &#039;px&#039;;&lt;br /&gt;
    wrap.style.bottom = &#039;auto&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Fit into the right gutter: don&#039;t cover the white content card&lt;br /&gt;
    var content = document.getElementById(&#039;mw-content&#039;) || document.getElementById(&#039;content&#039;);&lt;br /&gt;
    if (!content || !content.getBoundingClientRect) return;&lt;br /&gt;
&lt;br /&gt;
    var rect = content.getBoundingClientRect();&lt;br /&gt;
    var leftPx = Math.round(rect.right + GAP_PX);&lt;br /&gt;
    var available = Math.round(window.innerWidth - leftPx - GAP_PX);&lt;br /&gt;
&lt;br /&gt;
    // No right gutter -&amp;gt; keep mobile popup style&lt;br /&gt;
    if (available &amp;lt; 220) return;&lt;br /&gt;
&lt;br /&gt;
  panel.style.position = &#039;fixed&#039;;&lt;br /&gt;
  panel.style.top = String(topPx) + &#039;px&#039;;&lt;br /&gt;
  panel.style.right = String(GAP_PX) + &#039;px&#039;;&lt;br /&gt;
  panel.style.bottom = &#039;auto&#039;;&lt;br /&gt;
  panel.style.left = String(leftPx) + &#039;px&#039;;&lt;br /&gt;
  panel.style.width = &#039;auto&#039;;&lt;br /&gt;
  panel.style.maxHeight = &#039;calc(100vh - &#039; + String(topPx + GAP_PX) + &#039;px)&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Default open once per page load&lt;br /&gt;
    if (wrap.getAttribute(&#039;data-mdtDefaultOpen&#039;) !== &#039;1&#039;) {&lt;br /&gt;
      wrap.classList.add(&#039;mdtFloatTocOpen&#039;);&lt;br /&gt;
      wrap.setAttribute(&#039;data-mdtDefaultOpen&#039;, &#039;1&#039;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildPanel(groups) {&lt;br /&gt;
    injectCssOnce();&lt;br /&gt;
&lt;br /&gt;
    var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
    wrap.id = &#039;mdtFloatToc&#039;;&lt;br /&gt;
    wrap.className = &#039;mdtFloatToc&#039;;&lt;br /&gt;
&lt;br /&gt;
    var openBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    openBtn.type = &#039;button&#039;;&lt;br /&gt;
    openBtn.className = &#039;mdtFloatTocBtn&#039;;&lt;br /&gt;
    openBtn.setAttribute(&#039;aria-label&#039;, &#039;\u76ee\u5f55&#039;);&lt;br /&gt;
    openBtn.textContent = &#039;\u2261&#039;;&lt;br /&gt;
    wrap.appendChild(openBtn);&lt;br /&gt;
&lt;br /&gt;
    var panel = document.createElement(&#039;div&#039;);&lt;br /&gt;
    panel.className = &#039;mdtFloatTocPanel&#039;;&lt;br /&gt;
    panel.setAttribute(&#039;role&#039;, &#039;dialog&#039;);&lt;br /&gt;
    panel.setAttribute(&#039;aria-label&#039;, &#039;\u76ee\u5f55&#039;);&lt;br /&gt;
    wrap.appendChild(panel);&lt;br /&gt;
&lt;br /&gt;
    var head = document.createElement(&#039;div&#039;);&lt;br /&gt;
    head.className = &#039;mdtFloatTocHead&#039;;&lt;br /&gt;
    panel.appendChild(head);&lt;br /&gt;
&lt;br /&gt;
    var topBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    topBtn.type = &#039;button&#039;;&lt;br /&gt;
    topBtn.className = &#039;mdtFloatTocTop&#039;;&lt;br /&gt;
    topBtn.textContent = &#039;\u2191 \u8fd4\u56de\u9876\u90e8&#039;;&lt;br /&gt;
    head.appendChild(topBtn);&lt;br /&gt;
&lt;br /&gt;
    var title = document.createElement(&#039;div&#039;);&lt;br /&gt;
    title.className = &#039;mdtFloatTocTitle&#039;;&lt;br /&gt;
    title.textContent = &#039;\u76ee\u5f55&#039;;&lt;br /&gt;
    head.appendChild(title);&lt;br /&gt;
&lt;br /&gt;
    var closeBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    closeBtn.type = &#039;button&#039;;&lt;br /&gt;
    closeBtn.className = &#039;mdtFloatTocClose&#039;;&lt;br /&gt;
    closeBtn.setAttribute(&#039;aria-label&#039;, &#039;\u5173\u95ed&#039;);&lt;br /&gt;
    closeBtn.textContent = &#039;X&#039;;&lt;br /&gt;
    head.appendChild(closeBtn);&lt;br /&gt;
&lt;br /&gt;
    var ul = document.createElement(&#039;ul&#039;);&lt;br /&gt;
    ul.className = &#039;mdtFloatTocList&#039;;&lt;br /&gt;
    panel.appendChild(ul);&lt;br /&gt;
&lt;br /&gt;
    function openPanel(open) {&lt;br /&gt;
      wrap.classList.toggle(&#039;mdtFloatTocOpen&#039;, open);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    openBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(true);&lt;br /&gt;
      applyDesktopDock(wrap);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    closeBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    topBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      if (!isDesktop()) openPanel(false);&lt;br /&gt;
      window.scrollTo({ top: 0, behavior: &#039;smooth&#039; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      (function (g) {&lt;br /&gt;
        var li = document.createElement(&#039;li&#039;);&lt;br /&gt;
        li.className = &#039;mdtFloatTocItem mdtFloatTocGroup&#039;;&lt;br /&gt;
&lt;br /&gt;
        var row = document.createElement(&#039;div&#039;);&lt;br /&gt;
        row.className = &#039;mdtFloatTocRow&#039;;&lt;br /&gt;
        li.appendChild(row);&lt;br /&gt;
&lt;br /&gt;
        var a = document.createElement(&#039;a&#039;);&lt;br /&gt;
        a.href = &#039;#&#039; + encodeURIComponent(g.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
        a.textContent = g.text;&lt;br /&gt;
        row.appendChild(a);&lt;br /&gt;
&lt;br /&gt;
        if (g.children &amp;amp;&amp;amp; g.children.length) {&lt;br /&gt;
          var toggle = document.createElement(&#039;button&#039;);&lt;br /&gt;
          toggle.type = &#039;button&#039;;&lt;br /&gt;
          toggle.className = &#039;mdtFloatTocGroupToggle&#039;;&lt;br /&gt;
          toggle.setAttribute(&#039;aria-label&#039;, &#039;\u5c55\u5f00/\u6536\u8d77&#039;);&lt;br /&gt;
          toggle.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          toggle.textContent = &#039;&amp;gt;&#039;;&lt;br /&gt;
          row.appendChild(toggle);&lt;br /&gt;
&lt;br /&gt;
          var sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtFloatTocSublist&#039;;&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
&lt;br /&gt;
          for (var j = 0; j &amp;lt; g.children.length; j++) {&lt;br /&gt;
            var c = g.children[j];&lt;br /&gt;
            var cli = document.createElement(&#039;li&#039;);&lt;br /&gt;
            cli.className = &#039;mdtFloatTocItem&#039;;&lt;br /&gt;
            var ca = document.createElement(&#039;a&#039;);&lt;br /&gt;
            ca.href = &#039;#&#039; + encodeURIComponent(c.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
            ca.textContent = c.text;&lt;br /&gt;
            cli.appendChild(ca);&lt;br /&gt;
            sub.appendChild(cli);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          toggle.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var open = li.classList.toggle(&#039;mdtFloatTocGroupOpen&#039;);&lt;br /&gt;
            toggle.setAttribute(&#039;aria-expanded&#039;, String(open));&lt;br /&gt;
            toggle.textContent = open ? &#039;v&#039; : &#039;&amp;gt;&#039;;&lt;br /&gt;
          });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ul.appendChild(li);&lt;br /&gt;
      })(groups[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Click a toc item -&amp;gt; smooth scroll&lt;br /&gt;
    wrap.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      var target = ev.target;&lt;br /&gt;
      if (!target) return;&lt;br /&gt;
      var a = target.closest ? target.closest(&#039;a&#039;) : null;&lt;br /&gt;
      if (!a) return;&lt;br /&gt;
&lt;br /&gt;
      var href = a.getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
      if (href.charAt(0) !== &#039;#&#039;) return;&lt;br /&gt;
&lt;br /&gt;
      ev.preventDefault();&lt;br /&gt;
      if (!isDesktop()) openPanel(false);&lt;br /&gt;
&lt;br /&gt;
      var id = decodeURIComponent(href.slice(1));&lt;br /&gt;
      var el = document.getElementById(id);&lt;br /&gt;
      if (el) {&lt;br /&gt;
        el.scrollIntoView({ behavior: &#039;smooth&#039;, block: &#039;start&#039; });&lt;br /&gt;
        try {&lt;br /&gt;
          history.replaceState(null, &#039;&#039;, &#039;#&#039; + encodeURIComponent(id));&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Mobile only: tap outside to close. Desktop: do nothing.&lt;br /&gt;
    document.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      if (isDesktop()) return;&lt;br /&gt;
      if (!wrap.classList.contains(&#039;mdtFloatTocOpen&#039;)) return;&lt;br /&gt;
      if (wrap.contains(ev.target)) return;&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Highlight active heading&lt;br /&gt;
    var linkById = {};&lt;br /&gt;
    var links = wrap.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
    for (var k = 0; k &amp;lt; links.length; k++) {&lt;br /&gt;
      var id2 = decodeURIComponent((links[k].getAttribute(&#039;href&#039;) || &#039;&#039;).slice(1));&lt;br /&gt;
      linkById[id2] = links[k];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ids = flattenIds(groups);&lt;br /&gt;
    var ticking = false;&lt;br /&gt;
&lt;br /&gt;
    function updateActive() {&lt;br /&gt;
      ticking = false;&lt;br /&gt;
&lt;br /&gt;
      var bestId = &#039;&#039;;&lt;br /&gt;
      var bestTop = -Infinity;&lt;br /&gt;
&lt;br /&gt;
      for (var i2 = 0; i2 &amp;lt; ids.length; i2++) {&lt;br /&gt;
        var el2 = document.getElementById(ids[i2]);&lt;br /&gt;
        if (!el2) continue;&lt;br /&gt;
        var rect = el2.getBoundingClientRect();&lt;br /&gt;
        if (rect.top &amp;lt;= 120 &amp;amp;&amp;amp; rect.top &amp;gt; bestTop) {&lt;br /&gt;
          bestTop = rect.top;&lt;br /&gt;
          bestId = ids[i2];&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var idKey in linkById) {&lt;br /&gt;
        linkById[idKey].classList.toggle(&#039;mdtFloatTocActive&#039;, idKey === bestId);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    window.addEventListener(&lt;br /&gt;
      &#039;scroll&#039;,&lt;br /&gt;
      function () {&lt;br /&gt;
        if (ticking) return;&lt;br /&gt;
        ticking = true;&lt;br /&gt;
        window.requestAnimationFrame(updateActive);&lt;br /&gt;
      },&lt;br /&gt;
      { passive: true }&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    return wrap;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var resizeBound = false;&lt;br /&gt;
&lt;br /&gt;
  function initFloatToc($content) {&lt;br /&gt;
    if (!isViewMode()) return;&lt;br /&gt;
&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatToc&#039;)) {&lt;br /&gt;
      applyDesktopDock(document.getElementById(&#039;mdtFloatToc&#039;));&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var content = $content &amp;amp;&amp;amp; $content[0] ? $content[0] : null;&lt;br /&gt;
    var root =&lt;br /&gt;
      content || document.querySelector(&#039;.mw-parser-output&#039;) || document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
    if (!root) return;&lt;br /&gt;
&lt;br /&gt;
    ensureHeadingIds(root);&lt;br /&gt;
    var groups = collectGroups(root);&lt;br /&gt;
    if (!groups.length) return;&lt;br /&gt;
&lt;br /&gt;
    var wrap = buildPanel(groups);&lt;br /&gt;
    document.body.appendChild(wrap);&lt;br /&gt;
&lt;br /&gt;
    applyDesktopDock(wrap);&lt;br /&gt;
&lt;br /&gt;
    if (!resizeBound) {&lt;br /&gt;
      resizeBound = true;&lt;br /&gt;
      window.addEventListener(&lt;br /&gt;
        &#039;resize&#039;,&lt;br /&gt;
        function () {&lt;br /&gt;
          var el = document.getElementById(&#039;mdtFloatToc&#039;);&lt;br /&gt;
          if (el) applyDesktopDock(el);&lt;br /&gt;
        },&lt;br /&gt;
        { passive: true }&lt;br /&gt;
      );&lt;br /&gt;
      window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        var el = document.getElementById(&#039;mdtFloatToc&#039;);&lt;br /&gt;
        if (el) applyDesktopDock(el);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(initFloatToc);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
        initFloatToc(null);&lt;br /&gt;
      });&lt;br /&gt;
    } else {&lt;br /&gt;
      initFloatToc(null);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* MDTWIKI_APPEND_ICON_TOOL v20260123&lt;br /&gt;
 * Paste this file at the END of MediaWiki:Common.js (do not replace your existing code).&lt;br /&gt;
 * Timeless skin only. Works in action=edit (source editor textarea wpTextbox1).&lt;br /&gt;
 */&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  if (!window.mw) return;&lt;br /&gt;
  if (window.__mdtIconEditorToolInit) return;&lt;br /&gt;
  window.__mdtIconEditorToolInit = true;&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    var skin = String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase();&lt;br /&gt;
    if (skin !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var action = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    if (action !== &#039;edit&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var MDT_ICON_SIZE = 18;&lt;br /&gt;
&lt;br /&gt;
    // Map: page title (wgPageName format) -&amp;gt; uploaded file name.&lt;br /&gt;
    // Add more entries as needed.&lt;br /&gt;
var MDT_ICON_MAP = {&lt;br /&gt;
&lt;br /&gt;
    &#039;\u94dc&#039;: &#039;Item-copper-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b0&#039;: &#039;Item-lead-ui.png&#039;,&lt;br /&gt;
    &#039;\u7164\u70ad&#039;: &#039;Item-coal-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u58a8&#039;: &#039;Item-graphite-ui.png&#039;,&lt;br /&gt;
    &#039;\u949b&#039;: &#039;Item-titanium-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b1&#039;: &#039;Item-thorium-ui.png&#039;,&lt;br /&gt;
    &#039;\u7845&#039;: &#039;Item-silicon-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2&#039;: &#039;Item-plastanium-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03&#039;: &#039;Item-phase-fabric-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u6d6a\u5408\u91d1&#039;: &#039;Item-surge-alloy-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u8350&#039;: &#039;Item-spore-pod-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99&#039;: &#039;Item-sand-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u70b8\u6df7\u5408\u7269&#039;: &#039;Item-blast-compound-ui.png&#039;,&lt;br /&gt;
    &#039;\u786b\u5316\u7269&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u94a2\u5316\u73bb\u7483&#039;: &#039;Item-metaglass-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e9f\u6599&#039;: &#039;Item-scrap-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c2\u53d8\u4ea7\u7269&#039;: &#039;Item-fissile-matter-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd&#039;: &#039;Item-beryllium-ui.png&#039;,&lt;br /&gt;
    &#039;\u949e&#039;: &#039;Item-tungsten-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u5316\u7269&#039;: &#039;Item-oxide-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u5316\u7269&#039;: &#039;Item-carbide-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f11\u7720\u56ca\u80bf&#039;: &#039;Item-dormant-cyst-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u6c34&#039;: &#039;Liquid-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23&#039;: &#039;Liquid-slag-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u6cb9&#039;: &#039;Liquid-oil-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b7\u51bb\u6db2&#039;: &#039;Liquid-cryofluid-ui.png&#039;,&lt;br /&gt;
    &#039;\u7624\u6db2&#039;: &#039;Liquid-neoplasm-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u6cb9&#039;: &#039;Liquid-arkycite-ui.png&#039;,&lt;br /&gt;
    &#039;\u92e0\u6db2&#039;: &#039;Liquid-gallium-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u6c27&#039;: &#039;Liquid-ozone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c22\u6c14&#039;: &#039;Liquid-hydrogen-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c2e\u6c14&#039;: &#039;Liquid-nitrogen-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c2e\u6c14&#039;: &#039;Liquid-cyanogen-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u5c16\u5200&#039;: &#039;Unit-dagger-ui.png&#039;,&lt;br /&gt;
    &#039;\u6218\u9524&#039;: &#039;Unit-mace-ui.png&#039;,&lt;br /&gt;
    &#039;\u5821\u5792&#039;: &#039;Unit-fortress-ui.png&#039;,&lt;br /&gt;
    &#039;\u65b0\u661f&#039;: &#039;Unit-nova-ui.png&#039;,&lt;br /&gt;
    &#039;\u6052\u661f&#039;: &#039;Unit-pulsar-ui.png&#039;,&lt;br /&gt;
    &#039;\u8000\u661f&#039;: &#039;Unit-quasar-ui.png&#039;,&lt;br /&gt;
    &#039;\u722c\u866b&#039;: &#039;Unit-crawler-ui.png&#039;,&lt;br /&gt;
    &#039;\u6bd2\u879e&#039;: &#039;Unit-atrax-ui.png&#039;,&lt;br /&gt;
    &#039;\u8840\u87b2&#039;: &#039;Unit-spiroct-ui.png&#039;,&lt;br /&gt;
    &#039;\u6bd2\u86c7&#039;: &#039;Unit-arkyid-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u874e&#039;: &#039;Unit-toxopid-ui.png&#039;,&lt;br /&gt;
    &#039;\u661f\u8f89&#039;: &#039;Unit-stell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u57b0&#039;: &#039;Unit-vela-ui.png&#039;,&lt;br /&gt;
    &#039;\u82cd\u7a79&#039;: &#039;Unit-corvus-ui.png&#039;,&lt;br /&gt;
    &#039;\u6708\u5f71&#039;: &#039;Unit-antumbra-ui.png&#039;,&lt;br /&gt;
    &#039;\u65e5\u8681&#039;: &#039;Unit-eclipse-ui.png&#039;,&lt;br /&gt;
    &#039;\u72ec\u5f71&#039;: &#039;Unit-obviate-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e7b\u578b&#039;: &#039;Unit-elude-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u50cf&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;\u96f7\u96f7&#039;: &#039;Unit-evoke-ui.png&#039;,&lt;br /&gt;
    &#039;\u8981\u585e&#039;: &#039;Unit-conquer-ui.png&#039;,&lt;br /&gt;
    &#039;\u68d2\u9c7c&#039;: &#039;Unit-bryde-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u9ca8&#039;: &#039;Unit-minke-ui.png&#039;,&lt;br /&gt;
    &#039;\u6218\u9cb8&#039;: &#039;Unit-sei-ui.png&#039;,&lt;br /&gt;
    &#039;\u86f9\u9f99&#039;: &#039;Unit-omura-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d77\u795e&#039;: &#039;Unit-retusa-ui.png&#039;,&lt;br /&gt;
    &#039;\u6f5c\u87ba&#039;: &#039;Unit-cyerce-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u9cca&#039;: &#039;Unit-oxynoe-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c5f\u8c5a&#039;: &#039;Unit-risso-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66&#039;: &#039;Unit-navanax-ui.png&#039;,&lt;br /&gt;
    &#039;\u9f99\u738b&#039;: &#039;Unit-anthicus-ui.png&#039;,&lt;br /&gt;
    &#039;\u963f\u5c14\u6cd5&#039;: &#039;Unit-alpha-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d1d\u5854&#039;: &#039;Unit-beta-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f3d\u9a6c&#039;: &#039;Unit-gamma-ui.png&#039;,&lt;br /&gt;
    &#039;\u6743\u6756&#039;: &#039;Unit-scepter-ui.png&#039;,&lt;br /&gt;
    &#039;\u738b\u5ea7&#039;: &#039;Unit-reign-ui.png&#039;,&lt;br /&gt;
    &#039;\u707e\u661f&#039;: &#039;Unit-scathe-ui.png&#039;,&lt;br /&gt;
    &#039;\u6b7b\u661f&#039;: &#039;Unit-horizon-ui.png&#039;,&lt;br /&gt;
    &#039;\u56f4\u62a4&#039;: &#039;Unit-avert-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f99\u8ff9&#039;: &#039;Unit-locus-ui.png&#039;,&lt;br /&gt;
    &#039;\u51c6\u7ef3&#039;: &#039;Unit-precept-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f81\u670d&#039;: &#039;Unit-vanquish-ui.png&#039;,&lt;br /&gt;
    &#039;\u9886\u4e3b&#039;: &#039;Unit-tecta-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u5b88&#039;: &#039;Unit-collaris-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u8d50&#039;: &#039;Unit-disrupt-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u707e&#039;: &#039;Unit-quell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u7406&#039;: &#039;Unit-elude-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u5e1d&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;\u62c9\u8131&#039;: &#039;Unit-flare-ui.png&#039;,&lt;br /&gt;
    &#039;\u906e\u853d&#039;: &#039;Unit-horizon-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d88\u6563&#039;: &#039;Unit-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;\u907c\u6b62&#039;: &#039;Unit-obviate-ui.png&#039;,&lt;br /&gt;
    &#039;\u60b2\u6071&#039;: &#039;Unit-merui-ui.png&#039;,&lt;br /&gt;
    &#039;\u82cf\u9192&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b56\u52a8&#039;: &#039;Unit-incite-ui.png&#039;,&lt;br /&gt;
    &#039;\u53d1\u6563&#039;: &#039;Unit-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d27\u8fd0\u65e0\u4eba\u673a&#039;: &#039;Unit-cargo-drone-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u914d\u65e0\u4eba\u673a&#039;: &#039;Unit-assembly-drone-ui.png&#039;,&lt;br /&gt;
    &#039;Latum&#039;: &#039;Unit-latum-ui.png&#039;,&lt;br /&gt;
    &#039;Renale&#039;: &#039;Unit-renale-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u5dee\u6270&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u60ac\u5d16&#039;: &#039;Block-cliff-ui.png&#039;,&lt;br /&gt;
    &#039;\u7802\u5ca9&#039;: &#039;Block-dacite-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66\u5ca9\u77f3\u5757&#039;: &#039;Block-basalt-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u7a91\u7089&#039;: &#039;Block-kiln-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u58a8\u538b\u7f29\u673a&#039;: &#039;Block-graphite-press-ui.png&#039;,&lt;br /&gt;
    &#039;\u591a\u91cd\u538b\u7f29\u673a&#039;: &#039;Block-multi-press-ui.png&#039;,&lt;br /&gt;
    &#039;\u654c\u4eba\u51fa\u751f\u70b9&#039;: &#039;Block-spawn-ui.png&#039;,&lt;br /&gt;
    &#039;\u79fb\u9664\u5899\u4f53&#039;: &#039;Block-remove-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u79fb\u9664\u77ff&#039;: &#039;Block-remove-ore-ui.png&#039;,&lt;br /&gt;
    &#039;\u521d\u4ee3\u6838\u5fc3&#039;: &#039;Block-core-shard-ui.png&#039;,&lt;br /&gt;
    &#039;\u6b21\u4ee3\u6838\u5fc3&#039;: &#039;Block-core-foundation-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ec8\u4ee3\u6838\u5fc3&#039;: &#039;Block-core-nucleus-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cc\u7ba1&#039;: &#039;Block-duo-ui.png&#039;,&lt;br /&gt;
    &#039;\u706b\u7130&#039;: &#039;Block-scorch-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u88c2&#039;: &#039;Block-ripple-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0\u970d&#039;: &#039;Block-hail-ui.png&#039;,&lt;br /&gt;
    &#039;\u84dd\u745e&#039;: &#039;Block-lancer-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f20\u9001\u5e26&#039;: &#039;Block-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u949b\u4f20\u9001\u5e26&#039;: &#039;Block-titanium-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2\u4f20\u9001\u5e26&#039;: &#039;Block-plastanium-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u7532\u4f20\u9001\u5e26&#039;: &#039;Block-armored-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u4ea4\u53c9\u5668&#039;: &#039;Block-junction-ui.png&#039;,&lt;br /&gt;
    &#039;\u8def\u7531\u5668&#039;: &#039;Block-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u914d\u5668&#039;: &#039;Block-distributor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u7c7b\u5668&#039;: &#039;Block-sorter-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cd\u5411\u5206\u7c7b\u5668&#039;: &#039;Block-inverted-sorter-ui.png&#039;,&lt;br /&gt;
    &#039;\u4fe1\u606f\u677f&#039;: &#039;Block-message-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u4fe1\u606f\u677f&#039;: &#039;Block-reinforced-message-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u4fe1\u606f\u677f&#039;: &#039;Block-world-message-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u5f00\u5173&#039;: &#039;Block-world-switch-ui.png&#039;,&lt;br /&gt;
    &#039;\u7167\u660e\u5668&#039;: &#039;Block-illuminator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ea2\u6d41\u95e8&#039;: &#039;Block-overflow-gate-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cd\u5411\u6ea2\u6d41\u95e8&#039;: &#039;Block-underflow-gate-ui.png&#039;,&lt;br /&gt;
    &#039;\u7845\u51b6\u70bc\u5382&#039;: &#039;Block-silicon-smelter-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u7f16\u7ec7\u5668&#039;: &#039;Block-phase-weaver-ui.png&#039;,&lt;br /&gt;
    &#039;\u7c89\u788e\u673a&#039;: &#039;Block-pulverizer-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b7\u51bb\u6db2\u6df7\u5408\u5668&#039;: &#039;Block-cryofluid-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u7089&#039;: &#039;Block-melter-ui.png&#039;,&lt;br /&gt;
    &#039;\u711a\u5316\u7089&#039;: &#039;Block-incinerator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u538b\u7f29\u673a&#039;: &#039;Block-spore-press-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u79bb\u673a&#039;: &#039;Block-separator-ui.png&#039;,&lt;br /&gt;
    &#039;\u7164\u70ad\u79bb\u5fc3\u673a&#039;: &#039;Block-coal-centrifuge-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u529b\u8282\u70b9&#039;: &#039;Block-power-node-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u7535\u529b\u8282\u70b9&#039;: &#039;Block-power-node-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u6d6a\u7535\u529b\u5854&#039;: &#039;Block-surge-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e8c\u6781\u7ba1&#039;: &#039;Block-diode-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u6c60&#039;: &#039;Block-battery-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u7535\u6c60&#039;: &#039;Block-battery-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u706b\u529b\u53d1\u7535\u673a&#039;: &#039;Block-combustion-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6da1\u8f6e\u53d1\u7535\u673a&#039;: &#039;Block-steam-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6e29\u5dee\u53d1\u7535\u673a&#039;: &#039;Block-thermal-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b2\u51fb\u53cd\u5e94\u5806&#039;: &#039;Block-impact-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u68b0\u94bb\u5934&#039;: &#039;Block-mechanical-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c14\u52a8\u94bb\u5934&#039;: &#039;Block-pneumatic-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u94bb\u5934&#039;: &#039;Block-laser-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u62bd\u6c34\u673a&#039;: &#039;Block-water-extractor-ui.png&#039;,&lt;br /&gt;
    &#039;\u57f9\u517b\u673a&#039;: &#039;Block-cultivator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5bfc\u7ba1&#039;: &#039;Block-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u68b0\u6cf5&#039;: &#039;Block-mechanical-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u6e90&#039;: &#039;Block-item-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u9ed1\u6d1e&#039;: &#039;Block-item-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u6db2\u4f53\u6e90&#039;: &#039;Block-liquid-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u6db2\u4f53\u9ed1\u6d1e&#039;: &#039;Block-liquid-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u529b\u9ed1\u6d1e&#039;: &#039;Block-power-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u529b\u6e90&#039;: &#039;Block-power-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u5378\u5668&#039;: &#039;Block-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;\u4ed3\u5e93&#039;: &#039;Block-vault-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce2\u6d6a&#039;: &#039;Block-wave-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d77\u55d4&#039;: &#039;Block-tsunami-ui.png&#039;,&lt;br /&gt;
    &#039;\u8702\u7fa4&#039;: &#039;Block-swarmer-ui.png&#039;,&lt;br /&gt;
    &#039;\u9f50\u5c04&#039;: &#039;Block-salvo-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d6a\u6d8c&#039;: &#039;Block-surge-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u4f20\u9001\u5e26\u6865&#039;: &#039;Block-phase-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f20\u9001\u5e26\u6865&#039;: &#039;Block-bridge-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2\u538b\u7f29\u673a&#039;: &#039;Block-plastanium-compressor-ui.png&#039;,&lt;br /&gt;
    &#039;\u786b\u5316\u7269\u6df7\u5408\u5668&#039;: &#039;Block-sulfide-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u70b8\u7269\u6df7\u5408\u5668&#039;: &#039;Block-blast-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;\u592a\u9633\u80fd\u677f&#039;: &#039;Block-solar-panel-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u592a\u9633\u80fd\u677f&#039;: &#039;Block-solar-panel-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u6cb9\u94bb\u4e95&#039;: &#039;Block-oil-extractor-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ef4\u4fee\u70b9&#039;: &#039;Block-repair-point-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ef4\u4fee\u5854&#039;: &#039;Block-repair-turret-ui.png&#039;,&lt;br /&gt;
    &#039;\u8109\u51b2\u5bfc\u7ba1&#039;: &#039;Block-pulse-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u9540\u5bfc\u7ba1&#039;: &#039;Block-plated-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u5bfc\u7ba1\u6865&#039;: &#039;Block-phase-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u8def\u7531\u5668&#039;: &#039;Block-liquid-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u50a8\u7f50&#039;: &#039;Block-liquid-tank-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u5bb9\u5668&#039;: &#039;Block-liquid-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u4ea4\u53c9\u5668&#039;: &#039;Block-liquid-junction-ui.png&#039;,&lt;br /&gt;
    &#039;\u5bfc\u7ba1\u6865&#039;: &#039;Block-bridge-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u56de\u8f6c\u6cf5&#039;: &#039;Block-rotary-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b1\u53cd\u5e94\u5806&#039;: &#039;Block-thorium-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d28\u91cf\u9a71\u52a8\u5668&#039;: &#039;Block-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u7834\u94bb\u5934&#039;: &#039;Block-blast-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u8109\u51b2\u6cf5&#039;: &#039;Block-impulse-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u80fd\u53d1\u7535\u673a&#039;: &#039;Block-differential-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u51b6\u70bc\u5382&#039;: &#039;Block-alloy-smelter-ui.png&#039;,&lt;br /&gt;
    &#039;\u4fee\u7406\u5668&#039;: &#039;Block-mender-ui.png&#039;,&lt;br /&gt;
    &#039;\u4fee\u7406\u6295\u5f71&#039;: &#039;Block-mend-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u5899&#039;: &#039;Block-surge-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5408\u91d1\u5899&#039;: &#039;Block-surge-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c14\u65cb&#039;: &#039;Block-cyclone-ui.png&#039;,&lt;br /&gt;
    &#039;\u96f7\u5149&#039;: &#039;Block-arc-ui.png&#039;,&lt;br /&gt;
    &#039;\u8109\u51b2\u5730\u96f7&#039;: &#039;Block-shock-mine-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u901f\u6295\u5f71&#039;: &#039;Block-overdrive-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u529b\u5899\u6295\u5f71&#039;: &#039;Block-force-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u5f27&#039;: &#039;Block-arc-ui.png&#039;,&lt;br /&gt;
    &#039;RTG\u53d1\u7535\u673a&#039;: &#039;Block-rtg-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e7b\u5f71&#039;: &#039;Block-phantom-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u6bc1&#039;: &#039;Block-meltdown-ui.png&#039;,&lt;br /&gt;
    &#039;\u5384\u5146&#039;: &#039;Block-afflict-ui.png&#039;,&lt;br /&gt;
    &#039;\u5bb9\u5668&#039;: &#039;Block-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u53d1\u5c04\u53f0&#039;: &#039;Block-launch-pad-ui.png&#039;,&lt;br /&gt;
    &#039;\u63a5\u6536\u53f0&#039;: &#039;Block-landing-pad-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c2\u89e3&#039;: &#039;Block-disassembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u9646\u519b\u5de5\u5382&#039;: &#039;Block-ground-factory-ui.png&#039;,&lt;br /&gt;
    &#039;\u7a7a\u519b\u5de5\u5382&#039;: &#039;Block-air-factory-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d77\u519b\u5de5\u5382&#039;: &#039;Block-naval-factory-ui.png&#039;,&lt;br /&gt;
    &#039;\u6570\u589e\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-additive-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u500d\u4e58\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-multiplicative-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u591a\u5e42\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-exponential-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u65e0\u91cf\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-tetrative-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8377\u4f20\u9001\u5e26&#039;: &#039;Block-payload-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8377\u8def\u7531\u5668&#039;: &#039;Block-payload-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u7ba1\u9053&#039;: &#039;Block-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u7ba1\u9053\u8def\u7531\u5668&#039;: &#039;Block-duct-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u7ba1\u9053\u6865&#039;: &#039;Block-duct-bridge-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u8f7d\u8379\u8d28\u91cf\u9a71\u52a8\u5668&#039;: &#039;Block-large-payload-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u9ed1\u6d1e&#039;: &#039;Block-payload-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u6e90&#039;: &#039;Block-payload-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u89e3\u79bb\u673a&#039;: &#039;Block-disassembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u80fd\u5759\u5759&#039;: &#039;Block-slag-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u901f\u7a84\u9876&#039;: &#039;Block-overdrive-dome-ui.png&#039;,&lt;br /&gt;
    &#039;\u884c\u661f\u9645\u52a0\u901f\u5668&#039;: &#039;Block-interplanetary-accelerator-ui.png&#039;,&lt;br /&gt;
    &#039;\u52cb\u7b51\u5668&#039;: &#039;Block-constructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u52cb\u7b51\u5668&#039;: &#039;Block-large-constructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u89e3\u6784\u5668&#039;: &#039;Block-deconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u88c5\u8f7d\u5668&#039;: &#039;Block-payload-loader-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u5378\u8f7d\u5668&#039;: &#039;Block-payload-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u6e90&#039;: &#039;Block-heat-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u7a7a&#039;: &#039;Block-empty-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9\u5751&#039;: &#039;Block-rhyolite-crater-ui.png&#039;,&lt;br /&gt;
    &#039;\u7c97\u7cd9\u6d41\u7eb9\u5ca9&#039;: &#039;Block-rough-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9&#039;: &#039;Block-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3&#039;: &#039;Block-yellow-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3&#039;: &#039;Block-carbon-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u77f3&#039;: &#039;Block-ferric-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u9645\u77f3\u5751&#039;: &#039;Block-ferric-craters-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u77f3&#039;: &#039;Block-beryllic-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3&#039;: &#039;Block-crystalline-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u5730\u677f&#039;: &#039;Block-crystal-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u5730\u677f&#039;: &#039;Block-yellow-stone-plates-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3&#039;: &#039;Block-red-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ad8\u5bc6\u7ea2\u77f3&#039;: &#039;Block-dense-red-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u51b0&#039;: &#039;Block-red-ice-ui.png&#039;,&lt;br /&gt;
    //&#039;\u82b3\u6cb9&#039;: &#039;Block-arkyic-stone-ui.png&#039;,   这是地板！ai都不看重复的吗&lt;br /&gt;
    &#039;\u82b3\u77f3&#039;: &#039;Block-arkyic-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u77f3\u55b7\u53e3&#039;: &#039;Block-rhyolite-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3\u55b7\u53e3&#039;: &#039;Block-carbon-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u77f3\u55b7\u53e3&#039;: &#039;Block-arkyic-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u55b7\u53e3&#039;: &#039;Block-yellow-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3\u55b7\u53e3&#039;: &#039;Block-red-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u55b7\u53e3&#039;: &#039;Block-crystalline-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u5ca9\u77f3\u55b7\u53e3&#039;: &#039;Block-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66\u5ca9\u55b7\u53e3&#039;: &#039;Block-basalt-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u5730\u57ab&#039;: &#039;Block-redmat-ui.png&#039;,&lt;br /&gt;
    &#039;\u84dd\u5730\u57ab&#039;: &#039;Block-bluemat-ui.png&#039;,&lt;br /&gt;
    &#039;\u6838\u5fc3\u533a&#039;: &#039;Block-core-zone-ui.png&#039;,&lt;br /&gt;
    &#039;\u98ce\u5316\u5899&#039;: &#039;Block-regolith-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u5899&#039;: &#039;Block-yellow-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9\u5899&#039;: &#039;Block-rhyolite-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3\u5899&#039;: &#039;Block-carbon-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u77f3\u5899&#039;: &#039;Block-ferric-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u77f3\u5899&#039;: &#039;Block-beryllic-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u77f3\u5899&#039;: &#039;Block-arkyic-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u5899&#039;: &#039;Block-crystalline-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u51b0\u5899&#039;: &#039;Block-red-ice-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3\u5899&#039;: &#039;Block-red-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u94bb\u5899&#039;: &#039;Block-red-diamond-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d64\u85fb&#039;: &#039;Block-redweed-ui.png&#039;,&lt;br /&gt;
    &#039;\u7d2b\u704c\u6728\u4e1b&#039;: &#039;Block-pur-bush-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u73ca\u745a&#039;: &#039;Block-yellowcoral-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3\u5757&#039;: &#039;Block-carbon-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u77f3\u5757&#039;: &#039;Block-ferric-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u77f3\u5757&#039;: &#039;Block-beryllic-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u5757&#039;: &#039;Block-yellow-stone-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u77f3\u5757&#039;: &#039;Block-arkyic-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c34\u6676\u7c07&#039;: &#039;Block-crystal-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;\u9c9c\u8273\u6c34\u6676\u7c07&#039;: &#039;Block-vibrant-crystal-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;\u98ce\u5316\u6676\u4f53&#039;: &#039;Block-weathered-crystal-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u7403&#039;: &#039;Block-crystal-orbs-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u5757&#039;: &#039;Block-crystal-blocks-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u51b0\u77f3\u5757&#039;: &#039;Block-red-ice-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u77f3\u5757&#039;: &#039;Block-rhyolite-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3\u5757&#039;: &#039;Block-red-stone-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u58a8\u5899&#039;: &#039;Block-graphitic-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u5f27\u7845\u7089&#039;: &#039;Block-silicon-arc-furnace-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u89e3\u673a&#039;: &#039;Block-electrolyzer-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u6c14\u6536\u96c6\u5668&#039;: &#039;Block-atmospheric-concentrator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u5316\u5ba4&#039;: &#039;Block-oxidation-chamber-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u5236\u70ed\u673a&#039;: &#039;Block-electric-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u5236\u70ed\u673a&#039;: &#039;Block-slag-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5236\u70ed\u673a&#039;: &#039;Block-phase-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u4f20\u8f93\u673a&#039;: &#039;Block-heat-redirector-ui.png&#039;,&lt;br /&gt;
    &#039;\u5c0f\u578b\u70ed\u91cf\u4f20\u8f93\u673a&#039;: &#039;Block-small-heat-redirector-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u8def\u7531\u5668&#039;: &#039;Block-heat-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u711a\u5316\u7089&#039;: &#039;Block-slag-incinerator-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u5316\u7269\u5759\u5759&#039;: &#039;Block-carbide-crucible-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u79bb\u5fc3\u673a&#039;: &#039;Block-slag-centrifuge-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u5759\u5759&#039;: &#039;Block-alloy-crucible-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u5408\u6210\u673a&#039;: &#039;Block-cyanogen-synthesizer-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u5408\u6210\u673a&#039;: &#039;Block-phase-synthesizer-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u53cd\u5e94\u5806&#039;: &#039;Block-heat-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u5899&#039;: &#039;Block-beryllium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u94bd\u5899&#039;: &#039;Block-beryllium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u949e\u5899&#039;: &#039;Block-tungsten-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u949e\u5899&#039;: &#039;Block-tungsten-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u9632\u7206\u95f8\u95e8&#039;: &#039;Block-blast-door-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u5316\u7269\u5899&#039;: &#039;Block-carbide-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u78b3\u5316\u7269\u5899&#039;: &#039;Block-carbide-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u5408\u91d1\u5899&#039;: &#039;Block-reinforced-surge-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5f3a\u5316\u5408\u91d1\u5899&#039;: &#039;Block-reinforced-surge-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u76fe\u5899&#039;: &#039;Block-shielded-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u96f7\u8fbe&#039;: &#039;Block-radar-ui.png&#039;,&lt;br /&gt;
    &#039;\u5efa\u9020\u5854&#039;: &#039;Block-build-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u518d\u751f\u6295\u5f71\u5668&#039;: &#039;Block-regen-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u9707\u7206\u5854&#039;: &#039;Block-shockwave-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u62a4\u76fe\u6295\u5f71\u5668&#039;: &#039;Block-shield-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u62a4\u76fe\u6295\u5f71\u5668&#039;: &#039;Block-large-shield-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u7532\u7ba1\u9053&#039;: &#039;Block-armored-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ea2\u6d41\u7ba1\u9053&#039;: &#039;Block-overflow-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cd\u5411\u6ea2\u6d41\u7ba1&#039;: &#039;Block-underflow-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ba1\u9053\u88c5\u5378\u5668&#039;: &#039;Block-duct-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u4f20\u9001\u5e26&#039;: &#039;Block-surge-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u8def\u7531\u5668&#039;: &#039;Block-surge-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u5355\u4f4d\u7269\u6d41\u88c5\u8f7d\u5668&#039;: &#039;Block-unit-cargo-loader-ui.png&#039;,&lt;br /&gt;
    &#039;\u5355\u4f4d\u7269\u6d41\u5378\u8f7d\u70b9&#039;: &#039;Block-unit-cargo-unload-point-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6cf5&#039;: &#039;Block-reinforced-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u5bfc\u7ba1&#039;: &#039;Block-reinforced-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u4ea4\u53c9\u5668&#039;: &#039;Block-reinforced-liquid-junction-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u5e26\u6865&#039;: &#039;Block-reinforced-bridge-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u8def\u7531\u5668&#039;: &#039;Block-reinforced-liquid-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u5bb9\u5668&#039;: &#039;Block-reinforced-liquid-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u50a8\u7f50&#039;: &#039;Block-reinforced-liquid-tank-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u8282\u70b9&#039;: &#039;Block-beam-node-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u5854&#039;: &#039;Block-beam-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u8fde\u63a5\u5668&#039;: &#039;Block-beam-link-ui.png&#039;,&lt;br /&gt;
    &#039;\u6da1\u8f6e\u51b7\u51dd\u5668&#039;: &#039;Block-turbine-condenser-ui.png&#039;,&lt;br /&gt;
    &#039;\u5316\u5b66\u71c3\u70e7\u5ba4&#039;: &#039;Block-chemical-combustion-chamber-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u89e3\u53d1\u751f\u5668&#039;: &#039;Block-pyrolysis-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6392\u6c14\u51b7\u51dd\u5668&#039;: &#039;Block-vent-condenser-ui.png&#039;,&lt;br /&gt;
    &#039;\u5899\u58c1\u7c89\u788e\u673a&#039;: &#039;Block-cliff-crusher-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ad8\u7ea7\u5899\u58c1\u7c89\u788e\u673a&#039;: &#039;Block-large-cliff-crusher-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b49\u79bb\u5b50\u94bb\u673a&#039;: &#039;Block-plasma-bore-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u7b49\u79bb\u5b50\u94bb\u673a&#039;: &#039;Block-large-plasma-bore-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b2\u51fb\u94bb\u5934&#039;: &#039;Block-impact-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u88c2\u94bb\u5934&#039;: &#039;Block-eruption-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u57ce\u5821\u6838\u5fc3&#039;: &#039;Block-core-citadel-ui.png&#039;,&lt;br /&gt;
    &#039;\u5821\u5792\u6838\u5fc3&#039;: &#039;Block-core-bastion-ui.png&#039;,&lt;br /&gt;
    &#039;\u536b\u57ce\u6838\u5fc3&#039;: &#039;Block-core-acropolis-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u5bb9\u5668&#039;: &#039;Block-reinforced-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u4ed3\u5e93&#039;: &#039;Block-reinforced-vault-ui.png&#039;,&lt;br /&gt;
    &#039;\u6495\u88c2&#039;: &#039;Block-ripper-ui.png&#039;,&lt;br /&gt;
    &#039;\u5347\u534e&#039;: &#039;Block-sublimate-ui.png&#039;,&lt;br /&gt;
    &#039;\u6cf0\u5766&#039;: &#039;Block-titan-ui.png&#039;,&lt;br /&gt;
    &#039;\u9a71\u79bb&#039;: &#039;Block-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;\u52ab\u96be&#039;: &#039;Block-afflict-ui.png&#039;,&lt;br /&gt;
    &#039;\u5149\u8f89&#039;: &#039;Block-lustre-ui.png&#039;,&lt;br /&gt;
    &#039;\u521b\u4f24&#039;: &#039;Block-scathe-ui.png&#039;,&lt;br /&gt;
    &#039;\u5766\u514b\u91cd\u6784\u5382&#039;: &#039;Block-tank-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u7532\u91cd\u6784\u5382&#039;: &#039;Block-mech-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u8239\u91cd\u6784\u5382&#039;: &#039;Block-ship-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5766\u514b\u7ec4\u88c5\u5382&#039;: &#039;Block-tank-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u8239\u7ec4\u88c5\u5382&#039;: &#039;Block-ship-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u7532\u7ec4\u88c5\u5382&#039;: &#039;Block-mech-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u8f7d\u8379\u4f20\u9001\u5e26&#039;: &#039;Block-reinforced-payload-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u8f7d\u8379\u8def\u7531\u5668&#039;: &#039;Block-reinforced-payload-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u8d28\u91cf\u9a71\u52a8\u5668&#039;: &#039;Block-payload-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;\u89e3\u6784\u5668&#039;: &#039;Block-deconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u753b\u677f&#039;: &#039;Block-canvas-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u5904\u7406\u5668&#039;: &#039;Block-world-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u5185\u5b58\u5143&#039;: &#039;Block-world-cell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5766\u514b\u5236\u9020\u5382&#039;: &#039;Block-tank-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u7532\u5236\u9020\u5382&#039;: &#039;Block-mech-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u8239\u5236\u9020\u5382&#039;: &#039;Block-ship-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ad8\u7ea7\u518d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-prime-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5355\u4f4d\u7ef4\u4fee\u5854&#039;: &#039;Block-unit-repair-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u6269\u6563&#039;: &#039;Block-diffuse-ui.png&#039;,&lt;br /&gt;
    &#039;\u57fa\u672c\u88c5\u914d\u5382\u6a21\u5757&#039;: &#039;Block-basic-assembler-module-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u8c26&#039;: &#039;Block-smite-ui.png&#039;,&lt;br /&gt;
    &#039;\u9b54\u7075&#039;: &#039;Block-malign-ui.png&#039;,&lt;br /&gt;
    &#039;\u901a\u91cf\u53cd\u5e94\u5806&#039;: &#039;Block-flux-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u7624\u53d8\u53cd\u5e94\u5806&#039;: &#039;Block-neoplasia-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f00\u5173&#039;: &#039;Block-switch-ui.png&#039;,&lt;br /&gt;
    &#039;\u5fae\u578b\u5904\u7406\u5668&#039;: &#039;Block-micro-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u903b\u8f91\u5904\u7406\u5668&#039;: &#039;Block-logic-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u6838\u5904\u7406\u5668&#039;: &#039;Block-hyper-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u903b\u8f91\u663e\u793a\u5c4f&#039;: &#039;Block-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u903b\u8f91\u663e\u793a\u5c4f&#039;: &#039;Block-large-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;\u903b\u8f91\u663e\u793a\u5355\u5143&#039;: &#039;Block-tile-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;\u5185\u5b58\u5143&#039;: &#039;Block-memory-cell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5185\u5b58\u5e93&#039;: &#039;Block-memory-bank-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u8349\u5730&#039;: &#039;Block-grass-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u6db2&#039;: &#039;Block-molten-slag-ui.png&#039;,&lt;br /&gt;
    //&#039;\u51b7\u51bb\u6db2&#039;: &#039;Block-pooled-cryofluid-ui.png&#039;,   这是地板！ai都不看重复的吗&lt;br /&gt;
    &#039;\u592a\u7a7a&#039;: &#039;Block-space-ui.png&#039;,&lt;br /&gt;
    &#039;\u76d0\u78b1\u5730&#039;: &#039;Block-salt-ui.png&#039;,&lt;br /&gt;
    &#039;\u76d0\u5899&#039;: &#039;Block-salt-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u9e4f\u5375\u77f3&#039;: &#039;Block-pebbles-ui.png&#039;,&lt;br /&gt;
    &#039;\u5377\u987b&#039;: &#039;Block-tendrils-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u5899&#039;: &#039;Block-sand-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u6811&#039;: &#039;Block-spore-pine-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u5899&#039;: &#039;Block-spore-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u5757&#039;: &#039;Block-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea\u77f3\u5757&#039;: &#039;Block-snow-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea\u6811&#039;: &#039;Block-snow-pine-ui.png&#039;,&lt;br /&gt;
    &#039;\u9875\u5ca9\u5730&#039;: &#039;Block-shale-ui.png&#039;,&lt;br /&gt;
    &#039;\u9875\u5ca9\u77f3\u5757&#039;: &#039;Block-shale-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u829c\u85fb\u5730&#039;: &#039;Block-moss-ui.png&#039;,&lt;br /&gt;
    &#039;\u704c\u6728\u4e1b&#039;: &#039;Block-shrubs-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u829c\u85fb\u5730&#039;: &#039;Block-spore-moss-ui.png&#039;,&lt;br /&gt;
    &#039;\u9875\u5ca9\u5899&#039;: &#039;Block-shale-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e9f\u5899&#039;: &#039;Block-scrap-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5e9f\u5899&#039;: &#039;Block-scrap-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u578b\u5e9f\u5899&#039;: &#039;Block-scrap-wall-huge-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u5de8\u578b\u5e9f\u5899&#039;: &#039;Block-scrap-wall-gigantic-ui.png&#039;,&lt;br /&gt;
    &#039;\u63a8\u8fdb\u5668\u6b8b\u9ab5&#039;: &#039;Block-thruster-ui.png&#039;,&lt;br /&gt;
    &#039;\u6df1\u6c34&#039;: &#039;Block-deep-water-ui.png&#039;,&lt;br /&gt;
    //&#039;\u6c34&#039;: &#039;Block-shallow-water-ui.png&#039;,   这是地板！ai都不看重复的吗？&lt;br /&gt;
    &#039;\u6c61\u6c34&#039;: &#039;Block-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u6df1\u6c61\u6c34&#039;: &#039;Block-deep-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ed1\u6c99\u6c61\u6c34&#039;: &#039;Block-darksand-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u6cb9&#039;: &#039;Block-tar-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u5934&#039;: &#039;Block-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u5b50&#039;: &#039;Block-sand-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ed1\u6c99&#039;: &#039;Block-darksand-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0&#039;: &#039;Block-ice-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea&#039;: &#039;Block-snow-ui.png&#039;,&lt;br /&gt;
    &#039;\u9676\u77f3\u5751&#039;: &#039;Block-crater.png&#039;,&lt;br /&gt;
    &#039;\u6d45\u6ee9&#039;: &#039;Block-shallow-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ed1\u6c99\u6d45\u6ee9&#039;: &#039;Block-darksand-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u7126\u571f&#039;: &#039;Block-scorch-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b89\u5c71\u5ca9&#039;: &#039;Block-dacite-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9&#039;: &#039;Block-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b89\u5c71\u5ca9\u5899&#039;: &#039;Block-dacite-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b89\u5c71\u77f3\u5757&#039;: &#039;Block-dacite-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0\u96ea\u5730&#039;: &#039;Block-ice-snow-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u5899&#039;: &#039;Block-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0\u5899&#039;: &#039;Block-ice-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea\u5899&#039;: &#039;Block-snow-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u4e18\u5ca9&#039;: &#039;Block-dune-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u677e\u6811&#039;: &#039;Block-pine-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u571f&#039;: &#039;Block-dirt-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u571f\u5899&#039;: &#039;Block-dirt-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u5df4&#039;: &#039;Block-mud-ui.png&#039;,&lt;br /&gt;
    &#039;\u67af\u840e\u7684\u767d\u6811&#039;: &#039;Block-white-tree-dead-ui.png&#039;,&lt;br /&gt;
    &#039;\u767d\u6811&#039;: &#039;Block-white-tree-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u7c07&#039;: &#039;Block-spore-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f1&#039;: &#039;Block-metal-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f2&#039;: &#039;Block-metal-floor-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f3&#039;: &#039;Block-metal-floor-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f4&#039;: &#039;Block-metal-floor-4-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f5&#039;: &#039;Block-metal-floor-5-ui.png&#039;,&lt;br /&gt;
    &#039;\u635f\u574f\u7684\u91d1\u5c5e\u5730\u677f&#039;: &#039;Block-metal-floor-damaged-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa1&#039;: &#039;Block-metal-tiles-1-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa2&#039;: &#039;Block-metal-tiles-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa3&#039;: &#039;Block-metal-tiles-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa4&#039;: &#039;Block-metal-tiles-4-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa5&#039;: &#039;Block-metal-tiles-5-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa6&#039;: &#039;Block-metal-tiles-6-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa7&#039;: &#039;Block-metal-tiles-7-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa8&#039;: &#039;Block-metal-tiles-8-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa9&#039;: &#039;Block-metal-tiles-9-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa10&#039;: &#039;Block-metal-tiles-10-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa11&#039;: &#039;Block-metal-tiles-11-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa12&#039;: &#039;Block-metal-tiles-12-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa13&#039;: &#039;Block-metal-tiles-13-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u58991&#039;: &#039;Block-metal-wall-1-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u58992&#039;: &#039;Block-metal-wall-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u58993&#039;: &#039;Block-metal-wall-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u67d3\u8272\u5730\u677f&#039;: &#039;Block-colored-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u67d3\u8272\u5899\u58c8&#039;: &#039;Block-colored-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6807\u8bc6\u8d34\u7247&#039;: &#039;Block-character-overlay-ui.png&#039;,&lt;br /&gt;
    &#039;\u6807\u8bc6\u8d34\u7247(\u767d\u8272)&#039;: &#039;Block-character-overlay-white-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b26\u6587\u8d34\u7247&#039;: &#039;Block-rune-overlay-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b26\u6587\u8d34\u7247\uff08\u7ea2\u961f\uff09&#039;: &#039;Block-rune-overlay-crux-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f1&#039;: &#039;Block-dark-panel-1-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f2&#039;: &#039;Block-dark-panel-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f3&#039;: &#039;Block-dark-panel-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f4&#039;: &#039;Block-dark-panel-4-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f5&#039;: &#039;Block-dark-panel-5-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f6&#039;: &#039;Block-dark-panel-6-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u91d1\u5c5e&#039;: &#039;Block-dark-metal-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66\u5ca9&#039;: &#039;Block-basalt-ui.png&#039;,&lt;br /&gt;
    &#039;\u707c\u70ed\u5ca9\u77f3&#039;: &#039;Block-hotrock-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u878d\u5ca9\u77f3&#039;: &#039;Block-magmarock-ui.png&#039;,&lt;br /&gt;
    &#039;\u94dc\u5899&#039;: &#039;Block-copper-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u94dc\u5899&#039;: &#039;Block-copper-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u949b\u5899&#039;: &#039;Block-titanium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u949b\u5899&#039;: &#039;Block-titanium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2\u5899&#039;: &#039;Block-plastanium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5851\u94a2\u5899&#039;: &#039;Block-plastanium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u5899&#039;: &#039;Block-phase-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u76f8\u7ec7\u5e03\u5899&#039;: &#039;Block-phase-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b1\u5899&#039;: &#039;Block-thorium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u94b1\u5899&#039;: &#039;Block-thorium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u95e8&#039;: &#039;Block-door-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u95e8&#039;: &#039;Block-door-large-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u585e\u666e\u7f57&#039;: &#039;Planet-serpulo.png&#039;,&lt;br /&gt;
    &#039;\u57c3\u91cc\u514b\u5c14&#039;: &#039;Planet-erekir.png&#039;,&lt;br /&gt;
    &#039;\u592a\u9633&#039;: &#039;Sun.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u964d\u96e8&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u964d\u96ea&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u5c18\u66b4&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u98ce\u66b4&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u96fe&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u71c3\u70e7&#039;: &#039;Status-burning-ui.png&#039;,&lt;br /&gt;
    &#039;\u51bb\u7ed3&#039;: &#039;Status-freezing-ui.png&#039;,&lt;br /&gt;
    &#039;\u6f6e\u6e7f&#039;: &#039;Status-wet-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u6c61&#039;: &#039;Status-muddy-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u5316&#039;: &#039;Status-melting-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f31\u5316&#039;: &#039;Status-slow-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ebb\u75f9&#039;: &#039;Status-electrified-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u51cf\u901f&#039;: &#039;Status-spore-slowed-ui.png&#039;,&lt;br /&gt;
    &#039;\u6cb9\u6d78&#039;: &#039;Status-tarred-ui.png&#039;,&lt;br /&gt;
    &#039;\u8fc7\u8f7d&#039;: &#039;Status-overdrive-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u9891&#039;: &#039;Status-overclock-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u51fb&#039;: &#039;Status-shocked-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u70b8&#039;: &#039;Status-blasted-ui.png&#039;,&lt;br /&gt;
    &#039;\u8150\u8680&#039;: &#039;Status-corroded-ui.png&#039;,&lt;br /&gt;
    &#039;\u9759\u6b62&#039;: &#039;Status-unmoving-ui.png&#039;,&lt;br /&gt;
    &#039;Boss&#039;: &#039;Status-boss-ui.png&#039;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
    function getEditorTextarea() {&lt;br /&gt;
      return document.getElementById(&#039;wpTextbox1&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;textarea#wpTextbox1&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildIconWikitext(filename, title) {&lt;br /&gt;
      var file = String(filename);&lt;br /&gt;
      var t = String(title);&lt;br /&gt;
      return &#039;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:&#039; + file + &#039;|&#039; + String(MDT_ICON_SIZE) + &#039;px|link=&#039; + t + &#039;]]&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildTitlePattern(titles) {&lt;br /&gt;
      // Prefer longer first to avoid partial matches.&lt;br /&gt;
      var list = titles.slice().sort(function (a, b) { return b.length - a.length; });&lt;br /&gt;
      var escaped = [];&lt;br /&gt;
      for (var i = 0; i &amp;lt; list.length; i++) {&lt;br /&gt;
        escaped.push(list[i].replace(/[.*+?^${}()|[\]\\]/g, &#039;\\$&amp;amp;&#039;));&lt;br /&gt;
      }&lt;br /&gt;
      return escaped.join(&#039;|&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function convertWikitext(text) {&lt;br /&gt;
      var titles = Object.keys(MDT_ICON_MAP || {});&lt;br /&gt;
      if (!titles.length) return { text: text, changed: 0 };&lt;br /&gt;
&lt;br /&gt;
      var pattern = buildTitlePattern(titles);&lt;br /&gt;
&lt;br /&gt;
      // Only convert links like [[Title]] or [[Title|Label]].&lt;br /&gt;
      // Skip links already preceded by mdtPixelIcon span.&lt;br /&gt;
      var re = new RegExp(&#039;\\[\\[(&#039; + pattern + &#039;)(?:\\|[^\\]]*)?\\]\\]&#039;, &#039;g&#039;);&lt;br /&gt;
      &lt;br /&gt;
      var changed = 0;&lt;br /&gt;
      var out = text.replace(re, function (m, title, offset) {&lt;br /&gt;
        var before = text.slice(Math.max(0, offset - 120), offset);&lt;br /&gt;
        if (before.indexOf(&#039;class=&amp;quot;mdtPixelIcon&amp;quot;&#039;) !== -1) return m;&lt;br /&gt;
        if (/\[\[File:|\[\[Image:/i.test(m)) return m;&lt;br /&gt;
&lt;br /&gt;
        var filename = MDT_ICON_MAP[title];&lt;br /&gt;
        if (!filename) return m;&lt;br /&gt;
&lt;br /&gt;
        changed++;&lt;br /&gt;
        return buildIconWikitext(filename, title) + &#039; &#039; + m;&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      return { text: out, changed: changed };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function initEditorTool() {&lt;br /&gt;
      var ta = getEditorTextarea();&lt;br /&gt;
      if (!ta) return;&lt;br /&gt;
      if (ta.getAttribute(&#039;data-mdtIconTool&#039;) === &#039;1&#039;) return;&lt;br /&gt;
      ta.setAttribute(&#039;data-mdtIconTool&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
      var host = document.createElement(&#039;div&#039;);&lt;br /&gt;
      host.style.margin = &#039;0 0 8px 0&#039;;&lt;br /&gt;
      host.style.display = &#039;flex&#039;;&lt;br /&gt;
      host.style.gap = &#039;8px&#039;;&lt;br /&gt;
      host.style.flexWrap = &#039;wrap&#039;;&lt;br /&gt;
      host.style.alignItems = &#039;center&#039;;&lt;br /&gt;
&lt;br /&gt;
      var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
      btn.type = &#039;button&#039;;&lt;br /&gt;
      btn.className = &#039;mw-ui-button mw-ui-progressive&#039;;&lt;br /&gt;
      btn.textContent = &#039;\u4e00\u952e\u914d\u56fe\u6807&#039;;&lt;br /&gt;
&lt;br /&gt;
      var undo = document.createElement(&#039;button&#039;);&lt;br /&gt;
      undo.type = &#039;button&#039;;&lt;br /&gt;
      undo.className = &#039;mw-ui-button&#039;;&lt;br /&gt;
      undo.textContent = &#039;\u64a4\u9500\u914d\u56fe\u6807&#039;;&lt;br /&gt;
      undo.disabled = true;&lt;br /&gt;
&lt;br /&gt;
      var note = document.createElement(&#039;span&#039;);&lt;br /&gt;
      note.style.opacity = &#039;0.75&#039;;&lt;br /&gt;
      note.style.fontSize = &#039;12px&#039;;&lt;br /&gt;
      note.textContent = &#039;\u53ea\u5904\u7406\u005b\u005b\u002e\u002e\u002e\u005d\u005d\u94fe\u63a5&#039;;&lt;br /&gt;
&lt;br /&gt;
      host.appendChild(btn);&lt;br /&gt;
      host.appendChild(undo);&lt;br /&gt;
      host.appendChild(note);&lt;br /&gt;
&lt;br /&gt;
      if (ta.parentNode) ta.parentNode.insertBefore(host, ta);&lt;br /&gt;
&lt;br /&gt;
      var backup = &#039;&#039;;&lt;br /&gt;
      btn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
        var current = String(ta.value || &#039;&#039;);&lt;br /&gt;
        var result = convertWikitext(current);&lt;br /&gt;
        if (!result.changed) {&lt;br /&gt;
          alert(&#039;\u6ca1\u6709\u53ef\u66ff\u6362\u7684\u94fe\u63a5&#039;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        backup = current;&lt;br /&gt;
        undo.disabled = false;&lt;br /&gt;
        ta.value = result.text;&lt;br /&gt;
        alert(&#039;\u5df2\u63d2\u5165 &#039; + String(result.changed) + &#039; \u4e2a\u56fe\u6807&#039;);&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      undo.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
        if (!backup) {&lt;br /&gt;
          alert(&#039;\u6ca1\u6709\u5907\u4efd&#039;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        ta.value = backup;&lt;br /&gt;
        backup = &#039;&#039;;&lt;br /&gt;
        undo.disabled = true;&lt;br /&gt;
        alert(&#039;\u5df2\u64a4\u9500&#039;);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, initEditorTool);&lt;br /&gt;
    } else {&lt;br /&gt;
      initEditorTool();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:Common.js&amp;diff=3493</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:Common.js&amp;diff=3493"/>
		<updated>2026-02-22T01:24:30Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​撤销Bmte（讨论）的修订版本3491&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* MediaWiki:Common.js */&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  function fallbackCopy(text) {&lt;br /&gt;
    if (!window.jQuery) return;&lt;br /&gt;
    var $ = window.jQuery;&lt;br /&gt;
    var $temp = $(&#039;&amp;lt;textarea&amp;gt;&#039;);&lt;br /&gt;
    $(&#039;body&#039;).append($temp);&lt;br /&gt;
    $temp.val(text).select();&lt;br /&gt;
    document.execCommand(&#039;copy&#039;);&lt;br /&gt;
    $temp.remove();&lt;br /&gt;
    alert(&#039;复制成功！&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 点击按钮复制内容：&amp;lt;button class=&amp;quot;copy-button&amp;quot; data-text=&amp;quot;...&amp;quot;&amp;gt;复制&amp;lt;/button&amp;gt;&lt;br /&gt;
  if (window.jQuery) {&lt;br /&gt;
    window.jQuery(function ($) {&lt;br /&gt;
      $(document).on(&#039;click&#039;, &#039;.copy-button&#039;, function () {&lt;br /&gt;
        var text = $(this).attr(&#039;data-text&#039;) || &#039;&#039;;&lt;br /&gt;
        if (navigator.clipboard &amp;amp;&amp;amp; navigator.clipboard.writeText) {&lt;br /&gt;
          navigator.clipboard.writeText(text).then(function () {&lt;br /&gt;
            alert(&#039;复制成功！&#039;);&lt;br /&gt;
          }, function () {&lt;br /&gt;
            fallbackCopy(text);&lt;br /&gt;
          });&lt;br /&gt;
        } else {&lt;br /&gt;
          fallbackCopy(text);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Timeless：把 Sidebar 里以 &amp;quot;-- &amp;quot; 开头的条目变成可折叠子项&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    if (mw.config.get(&#039;skin&#039;) !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function initNavTree() {&lt;br /&gt;
      var siteNav = document.getElementById(&#039;mw-site-navigation&#039;);&lt;br /&gt;
      if (!siteNav) return;&lt;br /&gt;
&lt;br /&gt;
      var pNav = siteNav.querySelector(&#039;#p-navigation&#039;);&lt;br /&gt;
      if (!pNav) return;&lt;br /&gt;
&lt;br /&gt;
      var root = pNav.querySelector(&#039;.mw-portlet-body &amp;gt; ul&#039;) ||&lt;br /&gt;
        pNav.querySelector(&#039;ul&#039;);&lt;br /&gt;
      if (!root) return;&lt;br /&gt;
&lt;br /&gt;
      if (root.getAttribute(&#039;data-mdtNav&#039;) === &#039;1&#039;) return;&lt;br /&gt;
      root.setAttribute(&#039;data-mdtNav&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
      var KEY = &#039;mdtNavTreeOpen&#039;;&lt;br /&gt;
      var store = {};&lt;br /&gt;
      try {&lt;br /&gt;
        store = JSON.parse(localStorage.getItem(KEY) || &#039;{}&#039;);&lt;br /&gt;
      } catch (e) {&lt;br /&gt;
        store = {};&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function getKey(li) {&lt;br /&gt;
        if (li &amp;amp;&amp;amp; li.id) return li.id;&lt;br /&gt;
        var a = li ? li.querySelector(&#039;a&#039;) : null;&lt;br /&gt;
        return a ? (a.getAttribute(&#039;href&#039;) || &#039;&#039;) : &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function setStored(li, open) {&lt;br /&gt;
        var k = getKey(li);&lt;br /&gt;
        if (!k) return;&lt;br /&gt;
        store[k] = open;&lt;br /&gt;
        try {&lt;br /&gt;
          localStorage.setItem(KEY, JSON.stringify(store));&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function setOpen(li, open, persist) {&lt;br /&gt;
        li.classList.toggle(&#039;mdtNavOpen&#039;, open);&lt;br /&gt;
        if (persist) setStored(li, open);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function ensureGroup(li) {&lt;br /&gt;
        li.classList.add(&#039;mdtNavGroup&#039;);&lt;br /&gt;
&lt;br /&gt;
        var sub = li.querySelector(&#039;ul.mdtNavSublist&#039;);&lt;br /&gt;
        if (!sub) {&lt;br /&gt;
          sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtNavSublist&#039;;&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var btn = li.querySelector(&#039;button.mdtNavToggle&#039;);&lt;br /&gt;
        if (!btn) {&lt;br /&gt;
          btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtNavToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          li.insertBefore(btn, sub);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var isOpen = li.classList.contains(&#039;mdtNavOpen&#039;);&lt;br /&gt;
            setOpen(li, !isOpen, true);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(!isOpen));&lt;br /&gt;
          });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var k = getKey(li);&lt;br /&gt;
        if (store[k] === true) {&lt;br /&gt;
          li.classList.add(&#039;mdtNavOpen&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return sub;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      var items = Array.prototype.slice.call(root.children);&lt;br /&gt;
      var lastAtDepth = [];&lt;br /&gt;
&lt;br /&gt;
      for (var i = 0; i &amp;lt; items.length; i++) {&lt;br /&gt;
        var li = items[i];&lt;br /&gt;
        if (!li || li.tagName !== &#039;LI&#039;) continue;&lt;br /&gt;
&lt;br /&gt;
        var a = li.querySelector(&#039;a&#039;);&lt;br /&gt;
        if (!a) continue;&lt;br /&gt;
&lt;br /&gt;
        var raw = (a.textContent || &#039;&#039;).trim();&lt;br /&gt;
        var m = raw.match(/^(-{2,})\s*(.*)$/);&lt;br /&gt;
&lt;br /&gt;
        var depth = 0;&lt;br /&gt;
        if (m) {&lt;br /&gt;
          depth = Math.min(Math.floor(m[1].length / 2), 3);&lt;br /&gt;
          a.textContent = m[2];&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        li.classList.add(&#039;mdtNavItem&#039;);&lt;br /&gt;
&lt;br /&gt;
        if (depth &amp;gt; 0 &amp;amp;&amp;amp; lastAtDepth[depth - 1]) {&lt;br /&gt;
          li.classList.add(&#039;mdtNavSubItem&#039;);&lt;br /&gt;
          li.classList.add(&#039;mdtNavDepth&#039; + String(depth));&lt;br /&gt;
          var sublist = ensureGroup(lastAtDepth[depth - 1]);&lt;br /&gt;
          sublist.appendChild(li);&lt;br /&gt;
        } else {&lt;br /&gt;
          depth = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        lastAtDepth[depth] = li;&lt;br /&gt;
        lastAtDepth.length = depth + 1;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      // 当前页面高亮 + 自动展开父级&lt;br /&gt;
      var current = (mw.config.get(&#039;wgPageName&#039;) || &#039;&#039;).replace(/ /g, &#039;_&#039;);&lt;br /&gt;
      var links = pNav.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
&lt;br /&gt;
      function titleFromHref(href) {&lt;br /&gt;
        var t = mw.util.getParamValue(&#039;title&#039;, href);&lt;br /&gt;
        if (t) return t.replace(/ /g, &#039;_&#039;);&lt;br /&gt;
&lt;br /&gt;
        var mark = &#039;/index.php/&#039;;&lt;br /&gt;
        var pos = href.indexOf(mark);&lt;br /&gt;
        if (pos !== -1) {&lt;br /&gt;
          return decodeURIComponent(href.slice(pos + mark.length))&lt;br /&gt;
            .replace(/ /g, &#039;_&#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var j = 0; j &amp;lt; links.length; j++) {&lt;br /&gt;
        var href = links[j].getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
        var page = titleFromHref(href);&lt;br /&gt;
&lt;br /&gt;
        if (page &amp;amp;&amp;amp; page === current) {&lt;br /&gt;
          links[j].classList.add(&#039;mdtNavActive&#039;);&lt;br /&gt;
&lt;br /&gt;
          var n = links[j].parentNode;&lt;br /&gt;
          while (n &amp;amp;&amp;amp; n !== root) {&lt;br /&gt;
            if (n.tagName === &#039;LI&#039; &amp;amp;&amp;amp; n.classList.contains(&#039;mdtNavGroup&#039;)) {&lt;br /&gt;
              setOpen(n, true, false);&lt;br /&gt;
              var btn = n.querySelector(&#039;button.mdtNavToggle&#039;);&lt;br /&gt;
              if (btn) btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
            }&lt;br /&gt;
            n = n.parentNode;&lt;br /&gt;
          }&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, initNavTree);&lt;br /&gt;
    } else {&lt;br /&gt;
      initNavTree();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // 可折叠标题：在标题旁边加一个展开/收起按钮&lt;br /&gt;
  // 用法：把任意标题写成：== 战役区块 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
  // 默认收起：== 战役区块 &amp;lt;span class=&amp;quot;mdtFold mdtFoldClosed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    var skin = String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase();&lt;br /&gt;
    if (skin !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var action = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    if (action === &#039;edit&#039; || action === &#039;submit&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function findHeading(node) {&lt;br /&gt;
      while (node &amp;amp;&amp;amp; node !== document.body) {&lt;br /&gt;
        if (node.nodeType === 1 &amp;amp;&amp;amp; /^H[1-6]$/.test(node.tagName)) return node;&lt;br /&gt;
        node = node.parentNode;&lt;br /&gt;
      }&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var KEY = &#039;mdtFoldSections&#039;;&lt;br /&gt;
    var store = {};&lt;br /&gt;
    try {&lt;br /&gt;
      store = JSON.parse(localStorage.getItem(KEY) || &#039;{}&#039;);&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      store = {};&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function saveStore() {&lt;br /&gt;
      try {&lt;br /&gt;
        localStorage.setItem(KEY, JSON.stringify(store));&lt;br /&gt;
      } catch (e) {}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHeadingBlock(headingEl) {&lt;br /&gt;
      if (!headingEl || !headingEl.parentElement) return headingEl;&lt;br /&gt;
&lt;br /&gt;
      // MediaWiki 新版可能会把 h2 包在 &amp;lt;div class=&amp;quot;mw-heading&amp;quot;&amp;gt; 里。&lt;br /&gt;
      // 如果不处理这个 wrapper，折叠只会影响 wrapper 内部（看起来“没效果”）。&lt;br /&gt;
      var p = headingEl.parentElement;&lt;br /&gt;
      if (p.classList &amp;amp;&amp;amp; p.classList.contains(&#039;mw-heading&#039;)) return p;&lt;br /&gt;
      return headingEl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHeadingLevelFromNode(node) {&lt;br /&gt;
      if (!node || node.nodeType !== 1) return null;&lt;br /&gt;
&lt;br /&gt;
      if (/^H[1-6]$/.test(node.tagName)) {&lt;br /&gt;
        return parseInt(String(node.tagName).slice(1), 10) || 6;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if (node.classList &amp;amp;&amp;amp; node.classList.contains(&#039;mw-heading&#039;)) {&lt;br /&gt;
        var h = node.querySelector(&#039;h1,h2,h3,h4,h5,h6&#039;);&lt;br /&gt;
        if (h &amp;amp;&amp;amp; /^H[1-6]$/.test(h.tagName)) {&lt;br /&gt;
          return parseInt(String(h.tagName).slice(1), 10) || 6;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function initFoldSections(root) {&lt;br /&gt;
      var content = root || document.getElementById(&#039;mw-content-text&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;.mw-parser-output&#039;) ||&lt;br /&gt;
        document.body;&lt;br /&gt;
      if (!content) return;&lt;br /&gt;
&lt;br /&gt;
      var nodes = [];&lt;br /&gt;
      var markers = content.querySelectorAll(&#039;.mdtFold&#039;);&lt;br /&gt;
      var headingNodes = content.querySelectorAll(&#039;h1.mdtFoldHeading,h2.mdtFoldHeading,h3.mdtFoldHeading,h4.mdtFoldHeading,h5.mdtFoldHeading,h6.mdtFoldHeading&#039;);&lt;br /&gt;
      for (var h = 0; h &amp;lt; headingNodes.length; h++) nodes.push(headingNodes[h]);&lt;br /&gt;
      for (var m = 0; m &amp;lt; markers.length; m++) nodes.push(markers[m]);&lt;br /&gt;
      if (!nodes.length) return;&lt;br /&gt;
&lt;br /&gt;
      for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
        (function (nodeOrMarker) {&lt;br /&gt;
          var marker = null;&lt;br /&gt;
          var heading = null;&lt;br /&gt;
&lt;br /&gt;
          if (nodeOrMarker &amp;amp;&amp;amp; nodeOrMarker.nodeType === 1 &amp;amp;&amp;amp; /^H[1-6]$/.test(nodeOrMarker.tagName)) {&lt;br /&gt;
            heading = nodeOrMarker;&lt;br /&gt;
          } else {&lt;br /&gt;
            marker = nodeOrMarker;&lt;br /&gt;
            heading = findHeading(marker);&lt;br /&gt;
          }&lt;br /&gt;
          if (!heading) return;&lt;br /&gt;
&lt;br /&gt;
          // 兼容：如果是通过 h2.mdtFoldHeading 触发，但里面也有 span.mdtFold，&lt;br /&gt;
          // 也要把 marker 当作触发点，这样可以读取默认收起并移除 marker。&lt;br /&gt;
          if (!marker) {&lt;br /&gt;
            marker = heading.querySelector(&#039;.mdtFold&#039;);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          var headingBlock = getHeadingBlock(heading);&lt;br /&gt;
          if (!headingBlock) return;&lt;br /&gt;
&lt;br /&gt;
          if (headingBlock.getAttribute(&#039;data-mdtFoldInit&#039;) === &#039;1&#039;) return;&lt;br /&gt;
          headingBlock.setAttribute(&#039;data-mdtFoldInit&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
          var level = parseInt(String(heading.tagName).slice(1), 10) || 2;&lt;br /&gt;
          var headline = heading.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
&lt;br /&gt;
          // Body: 优先折叠“紧跟着”的图标网格（你这个场景就是 h2 + .mdtIconGrid）。&lt;br /&gt;
          // 也支持手动标记：&amp;lt;div class=&amp;quot;mdtFoldBody&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
          var body = null;&lt;br /&gt;
          var nextEl = headingBlock.nextElementSibling;&lt;br /&gt;
          if (nextEl &amp;amp;&amp;amp; nextEl.classList) {&lt;br /&gt;
            if (nextEl.classList.contains(&#039;mdtFoldBody&#039;) || nextEl.classList.contains(&#039;mdtIconGrid&#039;)) {&lt;br /&gt;
              body = nextEl;&lt;br /&gt;
              body.classList.add(&#039;mdtFoldBody&#039;);&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // 自动模式：把标题后面直到下一个“同级或更高级标题”的所有节点包起来。&lt;br /&gt;
          if (!body) {&lt;br /&gt;
            body = document.createElement(&#039;div&#039;);&lt;br /&gt;
            body.className = &#039;mdtFoldBody&#039;;&lt;br /&gt;
&lt;br /&gt;
            var node = headingBlock.nextSibling;&lt;br /&gt;
            while (node) {&lt;br /&gt;
              var next = node.nextSibling;&lt;br /&gt;
              var nodeLevel = getHeadingLevelFromNode(node);&lt;br /&gt;
              if (nodeLevel !== null &amp;amp;&amp;amp; nodeLevel &amp;lt;= level) break;&lt;br /&gt;
              body.appendChild(node);&lt;br /&gt;
              node = next;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            headingBlock.parentNode.insertBefore(body, node);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Toggle button&lt;br /&gt;
          var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtFoldToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
          btn.title = &#039;展开/收起&#039;;&lt;br /&gt;
          btn.textContent = &#039;\u25BE&#039;;&lt;br /&gt;
&lt;br /&gt;
          // Inline style fallback: in case Timeless.css is not loaded yet.&lt;br /&gt;
          btn.style.width = &#039;1.6rem&#039;;&lt;br /&gt;
          btn.style.height = &#039;1.6rem&#039;;&lt;br /&gt;
          btn.style.marginLeft = &#039;0.25rem&#039;;&lt;br /&gt;
          btn.style.border = &#039;0&#039;;&lt;br /&gt;
          btn.style.padding = &#039;0&#039;;&lt;br /&gt;
          btn.style.borderRadius = &#039;10px&#039;;&lt;br /&gt;
          btn.style.display = &#039;inline-flex&#039;;&lt;br /&gt;
          btn.style.alignItems = &#039;center&#039;;&lt;br /&gt;
          btn.style.justifyContent = &#039;center&#039;;&lt;br /&gt;
          btn.style.background = &#039;rgba(0, 175, 137, 0.10)&#039;;&lt;br /&gt;
          btn.style.color = &#039;var(--mdtBrand)&#039;;&lt;br /&gt;
          btn.style.cursor = &#039;pointer&#039;;&lt;br /&gt;
          btn.style.fontFamily = &#039;inherit&#039;;&lt;br /&gt;
          btn.style.fontSize = &#039;16px&#039;;&lt;br /&gt;
          btn.style.fontWeight = &#039;700&#039;;&lt;br /&gt;
          btn.style.lineHeight = &#039;1&#039;;&lt;br /&gt;
          btn.style.boxShadow = &#039;none&#039;;&lt;br /&gt;
          btn.style.outline = &#039;none&#039;;&lt;br /&gt;
          btn.style.appearance = &#039;none&#039;;&lt;br /&gt;
          btn.style.webkitAppearance = &#039;none&#039;;&lt;br /&gt;
&lt;br /&gt;
          if (headline) {&lt;br /&gt;
            headline.classList.add(&#039;mdtFoldHeadline&#039;);&lt;br /&gt;
            headline.appendChild(btn);&lt;br /&gt;
          } else {&lt;br /&gt;
            var wrap = document.createElement(&#039;span&#039;);&lt;br /&gt;
            wrap.className = &#039;mdtFoldHeadline&#039;;&lt;br /&gt;
&lt;br /&gt;
            while (heading.firstChild) {&lt;br /&gt;
              wrap.appendChild(heading.firstChild);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            heading.appendChild(wrap);&lt;br /&gt;
            wrap.appendChild(btn);&lt;br /&gt;
            headline = wrap;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Marker/heading default state&lt;br /&gt;
          var defaultClosed = false;&lt;br /&gt;
          if (marker &amp;amp;&amp;amp; marker.classList &amp;amp;&amp;amp; marker.classList.contains(&#039;mdtFoldClosed&#039;)) {&lt;br /&gt;
            defaultClosed = true;&lt;br /&gt;
          }&lt;br /&gt;
          if (heading.classList &amp;amp;&amp;amp; heading.classList.contains(&#039;mdtFoldClosed&#039;)) {&lt;br /&gt;
            defaultClosed = true;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Remove marker to avoid extra spacing&lt;br /&gt;
          if (marker &amp;amp;&amp;amp; marker.parentNode) marker.parentNode.removeChild(marker);&lt;br /&gt;
&lt;br /&gt;
          var page = (mw.config.get(&#039;wgPageName&#039;) || &#039;&#039;).replace(/ /g, &#039;_&#039;);&lt;br /&gt;
          var id = &#039;&#039;;&lt;br /&gt;
          if (headline &amp;amp;&amp;amp; headline.id) id = headline.id;&lt;br /&gt;
          if (!id) id = (heading.textContent || &#039;&#039;).trim();&lt;br /&gt;
          var storageKey = page + &#039;::&#039; + id;&lt;br /&gt;
&lt;br /&gt;
          function setCollapsed(collapsed, persist) {&lt;br /&gt;
            headingBlock.classList.toggle(&#039;mdtFoldCollapsed&#039;, collapsed);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(!collapsed));&lt;br /&gt;
            btn.textContent = collapsed ? &#039;\u25B8&#039; : &#039;\u25BE&#039;;&lt;br /&gt;
            if (body) {&lt;br /&gt;
              body.classList.toggle(&#039;mdtFoldHidden&#039;, collapsed);&lt;br /&gt;
              // Ensure it works even if CSS is missing/cached.&lt;br /&gt;
              body.style.display = collapsed ? &#039;none&#039; : &#039;&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            if (persist) {&lt;br /&gt;
              store[storageKey] = collapsed;&lt;br /&gt;
              saveStore();&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          var collapsed = false;&lt;br /&gt;
          if (typeof store[storageKey] === &#039;boolean&#039;) {&lt;br /&gt;
            collapsed = store[storageKey];&lt;br /&gt;
          } else if (defaultClosed) {&lt;br /&gt;
            collapsed = true;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          setCollapsed(collapsed, false);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var isCollapsed = headingBlock.classList.contains(&#039;mdtFoldCollapsed&#039;);&lt;br /&gt;
            setCollapsed(!isCollapsed, true);&lt;br /&gt;
          });&lt;br /&gt;
        })(nodes[i]);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function runOnPage() {&lt;br /&gt;
      initFoldSections(document.getElementById(&#039;mw-content-text&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;.mw-parser-output&#039;) ||&lt;br /&gt;
        document.body);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // MediaWiki 推荐：内容渲染/替换后触发（兼容预览、部分皮肤/插件）。&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
        initFoldSections($content &amp;amp;&amp;amp; $content[0] ? $content[0] : null);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, runOnPage);&lt;br /&gt;
    } else {&lt;br /&gt;
      runOnPage();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  /* Timeless: 左/右侧栏抽屉 + 首页按钮 */&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    if (mw.config.get(&#039;skin&#039;) !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function onReady(fn) {&lt;br /&gt;
      if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
        document.addEventListener(&#039;DOMContentLoaded&#039;, fn);&lt;br /&gt;
      } else {&lt;br /&gt;
        fn();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ICON_HOME =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var ICON_MENU =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var ICON_GEAR =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M19.14 12.94c.04-.31.06-.63.06-.94s-.02-.63-.06-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.6-.22l-2.39.96c-.5-.38-1.04-.7-1.63-.94l-.36-2.54A.5.5 0 0 0 13.9 2h-3.8a.5.5 0 0 0-.49.42l-.36 2.54c-.59.24-1.13.56-1.63.94l-2.39-.96a.5.5 0 0 0-.6.22L2.71 8.48a.5.5 0 0 0 .12.64l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94L2.83 14.52a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.31.6.22l2.39-.96c.5.38 1.04.7 1.63.94l.36 2.54c.05.24.25.42.49.42h3.8c.24 0 .44-.18.49-.42l.36-2.54c.59-.24 1.13-.56 1.63-.94l2.39.96c.22.09.47 0 .6-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58zM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    function wrapIcon(svg) {&lt;br /&gt;
      var span = document.createElement(&#039;span&#039;);&lt;br /&gt;
      span.className = &#039;mdtDockIcon&#039;;&lt;br /&gt;
      span.innerHTML = svg;&lt;br /&gt;
      return span;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    onReady(function () {&lt;br /&gt;
      if (document.getElementById(&#039;mdtDockLeft&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
      var siteNav = document.getElementById(&#039;mw-site-navigation&#039;);&lt;br /&gt;
      var relatedNav = document.getElementById(&#039;mw-related-navigation&#039;);&lt;br /&gt;
      if (!siteNav &amp;amp;&amp;amp; !relatedNav) return;&lt;br /&gt;
&lt;br /&gt;
      document.body.classList.add(&#039;mdtDockEnabled&#039;);&lt;br /&gt;
&lt;br /&gt;
      var backdrop = document.createElement(&#039;div&#039;);&lt;br /&gt;
      backdrop.id = &#039;mdtDockBackdrop&#039;;&lt;br /&gt;
&lt;br /&gt;
      function syncBackdrop() {&lt;br /&gt;
        var open =&lt;br /&gt;
          document.body.classList.contains(&#039;mdtDockNavOpen&#039;) ||&lt;br /&gt;
          document.body.classList.contains(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
        backdrop.classList.toggle(&#039;is-active&#039;, open);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function closeAll() {&lt;br /&gt;
        document.body.classList.remove(&#039;mdtDockNavOpen&#039;, &#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
        syncBackdrop();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      backdrop.addEventListener(&#039;click&#039;, closeAll);&lt;br /&gt;
      document.addEventListener(&#039;keydown&#039;, function (e) {&lt;br /&gt;
        if (e.key === &#039;Escape&#039;) closeAll();&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 左侧：홈 + 汉堡&lt;br /&gt;
      var left = document.createElement(&#039;div&#039;);&lt;br /&gt;
      left.id = &#039;mdtDockLeft&#039;;&lt;br /&gt;
&lt;br /&gt;
      var home = document.createElement(&#039;a&#039;);&lt;br /&gt;
      home.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
      home.href = mw.util.getUrl(&#039;首页&#039;); &lt;br /&gt;
      home.title = &#039;首页&#039;;&lt;br /&gt;
      home.setAttribute(&#039;aria-label&#039;, &#039;首页&#039;);&lt;br /&gt;
      home.appendChild(wrapIcon(ICON_HOME));&lt;br /&gt;
      left.appendChild(home);&lt;br /&gt;
&lt;br /&gt;
      if (siteNav) {&lt;br /&gt;
        var navBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
        navBtn.type = &#039;button&#039;;&lt;br /&gt;
        navBtn.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
        navBtn.title = &#039;导航&#039;;&lt;br /&gt;
        navBtn.setAttribute(&#039;aria-label&#039;, &#039;导航&#039;);&lt;br /&gt;
        navBtn.appendChild(wrapIcon(ICON_MENU));&lt;br /&gt;
        navBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
          var nowOpen = document.body.classList.toggle(&#039;mdtDockNavOpen&#039;);&lt;br /&gt;
          if (nowOpen) document.body.classList.remove(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
          syncBackdrop();&lt;br /&gt;
        });&lt;br /&gt;
        left.appendChild(navBtn);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
// 右侧：齿轮&lt;br /&gt;
var right = document.createElement(&#039;div&#039;);&lt;br /&gt;
right.id = &#039;mdtDockRight&#039;;&lt;br /&gt;
&lt;br /&gt;
if (relatedNav) {&lt;br /&gt;
  var toolsBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
  toolsBtn.type = &#039;button&#039;;&lt;br /&gt;
  toolsBtn.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
  toolsBtn.title = &#039;页面工具&#039;;&lt;br /&gt;
  toolsBtn.setAttribute(&#039;aria-label&#039;, &#039;页面工具&#039;);&lt;br /&gt;
  toolsBtn.appendChild(wrapIcon(ICON_GEAR));&lt;br /&gt;
  toolsBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
    var nowOpen = document.body.classList.toggle(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
    if (nowOpen) document.body.classList.remove(&#039;mdtDockNavOpen&#039;);&lt;br /&gt;
    syncBackdrop();&lt;br /&gt;
  });&lt;br /&gt;
  left.appendChild(toolsBtn);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.body.appendChild(backdrop);&lt;br /&gt;
document.body.appendChild(left);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      document.body.appendChild(backdrop);&lt;br /&gt;
      document.body.appendChild(left);&lt;br /&gt;
      document.body.appendChild(right);&lt;br /&gt;
      syncBackdrop();&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  function isTimeless() {&lt;br /&gt;
    try {&lt;br /&gt;
      return String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase() === &#039;timeless&#039;;&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isViewMode() {&lt;br /&gt;
    var a = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    return a === &#039;view&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isMobileUA() {&lt;br /&gt;
    var ua = String(navigator.userAgent || &#039;&#039;);&lt;br /&gt;
    return /Mobi|Android|iPhone|iPad|iPod/i.test(ua);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeText(text) {&lt;br /&gt;
    return String(text || &#039;&#039;)&lt;br /&gt;
      .replace(/\s+/g, &#039; &#039;)&lt;br /&gt;
      .replace(/[\u25B8\u25BE]/g, &#039;&#039;)&lt;br /&gt;
      .trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function collectGroups(root) {&lt;br /&gt;
    var nodes = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    var groups = [];&lt;br /&gt;
    var current = null;&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
      var h = nodes[i];&lt;br /&gt;
      if (!h) continue;&lt;br /&gt;
&lt;br /&gt;
      var id = h.id || &#039;&#039;;&lt;br /&gt;
      if (!id) continue;&lt;br /&gt;
&lt;br /&gt;
      var text = normalizeText(h.textContent);&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
&lt;br /&gt;
      if (h.tagName === &#039;H2&#039;) {&lt;br /&gt;
        current = { id: id, text: text, children: [] };&lt;br /&gt;
        groups.push(current);&lt;br /&gt;
      } else {&lt;br /&gt;
        if (!current) continue;&lt;br /&gt;
        current.children.push({ id: id, text: text });&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return groups;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function flattenIds(groups) {&lt;br /&gt;
    var ids = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      ids.push(groups[i].id);&lt;br /&gt;
      var children = groups[i].children || [];&lt;br /&gt;
      for (var j = 0; j &amp;lt; children.length; j++) {&lt;br /&gt;
        ids.push(children[j].id);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return ids;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildPanel(groups) {&lt;br /&gt;
    var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
    wrap.id = &#039;mdtFloatToc&#039;;&lt;br /&gt;
    wrap.className = &#039;mdtFloatToc&#039;;&lt;br /&gt;
&lt;br /&gt;
    wrap.innerHTML =&lt;br /&gt;
      &amp;quot;&amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocBtn&#039; aria-label=&#039;目录&#039;&amp;gt;≡&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;&amp;lt;div class=&#039;mdtFloatTocPanel&#039; role=&#039;dialog&#039; aria-label=&#039;目录&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;div class=&#039;mdtFloatTocHead&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocTop&#039;&amp;gt;&amp;lt;span aria-hidden=&#039;true&#039;&amp;gt;↑&amp;lt;/span&amp;gt;返回顶部&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;div class=&#039;mdtFloatTocTitle&#039;&amp;gt;目录&amp;lt;/div&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocClose&#039; aria-label=&#039;关闭&#039;&amp;gt;✕&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;/div&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;ul class=&#039;mdtFloatTocList&#039;&amp;gt;&amp;lt;/ul&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var ul = wrap.querySelector(&#039;.mdtFloatTocList&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      (function (g) {&lt;br /&gt;
        var li = document.createElement(&#039;li&#039;);&lt;br /&gt;
        li.className = &#039;mdtFloatTocItem mdtFloatTocGroup&#039;;&lt;br /&gt;
&lt;br /&gt;
        var row = document.createElement(&#039;div&#039;);&lt;br /&gt;
        row.className = &#039;mdtFloatTocRow&#039;;&lt;br /&gt;
&lt;br /&gt;
        var a = document.createElement(&#039;a&#039;);&lt;br /&gt;
        a.href = &#039;#&#039; + encodeURIComponent(g.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
        a.textContent = g.text;&lt;br /&gt;
        row.appendChild(a);&lt;br /&gt;
&lt;br /&gt;
        if (g.children &amp;amp;&amp;amp; g.children.length) {&lt;br /&gt;
          var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtFloatTocGroupToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          btn.textContent = &#039;▸&#039;;&lt;br /&gt;
          row.appendChild(btn);&lt;br /&gt;
&lt;br /&gt;
          var sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtFloatTocSublist&#039;;&lt;br /&gt;
&lt;br /&gt;
          for (var j = 0; j &amp;lt; g.children.length; j++) {&lt;br /&gt;
            var c = g.children[j];&lt;br /&gt;
            var cli = document.createElement(&#039;li&#039;);&lt;br /&gt;
            cli.className = &#039;mdtFloatTocItem&#039;;&lt;br /&gt;
            cli.innerHTML = &amp;quot;&amp;lt;a href=&#039;#&amp;quot; + encodeURIComponent(c.id).replace(/%2F/g, &#039;/&#039;) + &amp;quot;&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
              mw.html.escape(c.text) + &amp;quot;&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
            sub.appendChild(cli);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          li.appendChild(row);&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var open = li.classList.toggle(&#039;mdtFloatTocGroupOpen&#039;);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(open));&lt;br /&gt;
            btn.textContent = open ? &#039;▾&#039; : &#039;▸&#039;;&lt;br /&gt;
          });&lt;br /&gt;
        } else {&lt;br /&gt;
          li.appendChild(row);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ul.appendChild(li);&lt;br /&gt;
      })(groups[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function openPanel(open) {&lt;br /&gt;
      wrap.classList.toggle(&#039;mdtFloatTocOpen&#039;, open);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocBtn&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(true);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocClose&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocTop&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
      window.scrollTo({ top: 0, behavior: &#039;smooth&#039; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Click a toc item -&amp;gt; close + smooth scroll&lt;br /&gt;
    wrap.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      var a = ev.target &amp;amp;&amp;amp; ev.target.closest ? ev.target.closest(&#039;a&#039;) : null;&lt;br /&gt;
      if (!a) return;&lt;br /&gt;
      var href = a.getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
      if (href.charAt(0) !== &#039;#&#039;) return;&lt;br /&gt;
&lt;br /&gt;
      ev.preventDefault();&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
&lt;br /&gt;
      var id = decodeURIComponent(href.slice(1));&lt;br /&gt;
      var target = document.getElementById(id);&lt;br /&gt;
      if (target) {&lt;br /&gt;
        target.scrollIntoView({ behavior: &#039;smooth&#039;, block: &#039;start&#039; });&lt;br /&gt;
        history.replaceState(null, &#039;&#039;, &#039;#&#039; + encodeURIComponent(id));&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Close when tapping outside&lt;br /&gt;
    document.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      if (!wrap.classList.contains(&#039;mdtFloatTocOpen&#039;)) return;&lt;br /&gt;
      if (wrap.contains(ev.target)) return;&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Highlight active heading&lt;br /&gt;
    var linkById = {};&lt;br /&gt;
    var links = wrap.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
    for (var k = 0; k &amp;lt; links.length; k++) {&lt;br /&gt;
      var id2 = decodeURIComponent((links[k].getAttribute(&#039;href&#039;) || &#039;&#039;).slice(1));&lt;br /&gt;
      linkById[id2] = links[k];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ids = flattenIds(groups);&lt;br /&gt;
    var ticking = false;&lt;br /&gt;
    function updateActive() {&lt;br /&gt;
      ticking = false;&lt;br /&gt;
&lt;br /&gt;
      var bestId = &#039;&#039;;&lt;br /&gt;
      var bestTop = -Infinity;&lt;br /&gt;
      for (var i2 = 0; i2 &amp;lt; ids.length; i2++) {&lt;br /&gt;
        var el = document.getElementById(ids[i2]);&lt;br /&gt;
        if (!el) continue;&lt;br /&gt;
        var rect = el.getBoundingClientRect();&lt;br /&gt;
        if (rect.top &amp;lt;= 120 &amp;amp;&amp;amp; rect.top &amp;gt; bestTop) {&lt;br /&gt;
          bestTop = rect.top;&lt;br /&gt;
          bestId = ids[i2];&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var idKey in linkById) {&lt;br /&gt;
        linkById[idKey].classList.toggle(&#039;mdtFloatTocActive&#039;, idKey === bestId);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    window.addEventListener(&#039;scroll&#039;, function () {&lt;br /&gt;
      if (ticking) return;&lt;br /&gt;
      ticking = true;&lt;br /&gt;
      window.requestAnimationFrame(updateActive);&lt;br /&gt;
    }, { passive: true });&lt;br /&gt;
&lt;br /&gt;
    return wrap;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function ensureHeadingIds(root) {&lt;br /&gt;
    var headings = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; headings.length; i++) {&lt;br /&gt;
      var h = headings[i];&lt;br /&gt;
      if (h.id) continue;&lt;br /&gt;
      var hl = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
      if (hl &amp;amp;&amp;amp; hl.id) h.id = hl.id;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function initFloatToc($content) {&lt;br /&gt;
    if (!isTimeless() || !isViewMode() || !isMobileUA()) return;&lt;br /&gt;
&lt;br /&gt;
    var content = $content &amp;amp;&amp;amp; $content[0] ? $content[0] : null;&lt;br /&gt;
    var root = content || document.querySelector(&#039;.mw-parser-output&#039;) || document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
    if (!root) return;&lt;br /&gt;
&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatToc&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    ensureHeadingIds(root);&lt;br /&gt;
    var groups = collectGroups(root);&lt;br /&gt;
    if (!groups.length) return;&lt;br /&gt;
&lt;br /&gt;
    document.body.appendChild(buildPanel(groups));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;, &#039;mediawiki.html&#039;]).then(function () {&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(initFloatToc);&lt;br /&gt;
    }&lt;br /&gt;
    initFloatToc(null);&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
  MDT Float TOC (desktop: dock to top-right gutter, default open)&lt;br /&gt;
  Paste this whole file into: MediaWiki:Common.js (very bottom)&lt;br /&gt;
*/&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  var DESKTOP_MIN_WIDTH = 1000;&lt;br /&gt;
  var GAP_PX = 12;&lt;br /&gt;
  var FALLBACK_TOP_REM = 4.1;&lt;br /&gt;
&lt;br /&gt;
  function isViewMode() {&lt;br /&gt;
    try {&lt;br /&gt;
      return String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase() === &#039;view&#039;;&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isDesktop() {&lt;br /&gt;
    try {&lt;br /&gt;
      return (&lt;br /&gt;
        window.matchMedia &amp;amp;&amp;amp;&lt;br /&gt;
        window.matchMedia(&#039;(min-width: &#039; + String(DESKTOP_MIN_WIDTH) + &#039;px)&#039;).matches&lt;br /&gt;
      );&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function remToPx(rem) {&lt;br /&gt;
    var fs = 16;&lt;br /&gt;
    try {&lt;br /&gt;
      fs = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;&lt;br /&gt;
    } catch (e) {}&lt;br /&gt;
    return rem * fs;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getDockTopPx() {&lt;br /&gt;
    var dock = document.getElementById(&#039;mdtDockLeft&#039;) || document.getElementById(&#039;mdtDockRight&#039;);&lt;br /&gt;
    if (dock &amp;amp;&amp;amp; dock.getBoundingClientRect) {&lt;br /&gt;
      return Math.round(dock.getBoundingClientRect().top);&lt;br /&gt;
    }&lt;br /&gt;
    return Math.round(remToPx(FALLBACK_TOP_REM));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeText(text) {&lt;br /&gt;
    return String(text || &#039;&#039;)&lt;br /&gt;
      .replace(/\s+/g, &#039; &#039;)&lt;br /&gt;
      .replace(/[\u25B8\u25BE]/g, &#039;&#039;)&lt;br /&gt;
      .trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function ensureHeadingIds(root) {&lt;br /&gt;
    var headings = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; headings.length; i++) {&lt;br /&gt;
      var h = headings[i];&lt;br /&gt;
      if (!h || h.id) continue;&lt;br /&gt;
      var hl = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
      if (hl &amp;amp;&amp;amp; hl.id) h.id = hl.id;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function shouldSkipHeading(h) {&lt;br /&gt;
    if (!h) return true;&lt;br /&gt;
    if (!h.id) return true;&lt;br /&gt;
    if (h.closest(&#039;#mw-site-navigation, #mw-related-navigation, .mw-portlet, .mdtRightRail&#039;)) return true;&lt;br /&gt;
    return false;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function collectGroups(root) {&lt;br /&gt;
    var nodes = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    var groups = [];&lt;br /&gt;
    var current = null;&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
      var h = nodes[i];&lt;br /&gt;
      if (shouldSkipHeading(h)) continue;&lt;br /&gt;
&lt;br /&gt;
      var id = h.id;&lt;br /&gt;
  var headline = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
  var text = normalizeText(headline ? headline.textContent : h.textContent);&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
&lt;br /&gt;
      if (h.tagName === &#039;H2&#039;) {&lt;br /&gt;
        current = { id: id, text: text, children: [] };&lt;br /&gt;
        groups.push(current);&lt;br /&gt;
      } else {&lt;br /&gt;
        if (!current) continue;&lt;br /&gt;
        current.children.push({ id: id, text: text });&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return groups;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function flattenIds(groups) {&lt;br /&gt;
    var ids = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      ids.push(groups[i].id);&lt;br /&gt;
      var children = groups[i].children || [];&lt;br /&gt;
      for (var j = 0; j &amp;lt; children.length; j++) ids.push(children[j].id);&lt;br /&gt;
    }&lt;br /&gt;
    return ids;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function injectCssOnce() {&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatTocStyle&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    var css = [&lt;br /&gt;
      &#039;#mw-content-text .mw-headline{scroll-margin-top:5rem;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* wrapper (mobile default: bottom-right) */&lt;br /&gt;
      &#039;#mdtFloatToc{position:fixed;right:0.9rem;bottom:1.1rem;top:auto;z-index:9999;font-family:inherit;display:block !important;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* open button */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocBtn{width:3rem;height:3rem;border-radius:999px;border:1px solid rgba(255,255,255,0.14);background:rgba(0,0,0,0.70);color:rgba(255,255,255,0.92);box-shadow:0 12px 28px rgba(0,0,0,0.28);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:900;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocBtn:hover{border-color:rgba(0,207,160,0.60);box-shadow:0 12px 28px rgba(0,0,0,0.28),0 0 0 3px rgba(0,207,160,0.18);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc.mdtFloatTocOpen .mdtFloatTocBtn{opacity:0;pointer-events:none;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* panel (mobile default: popup) */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocPanel{position:absolute;right:0;bottom:3.75rem;width:min(22rem,88vw);max-height:min(70vh,34rem);overflow:auto;padding:0.85rem 0.9rem;border-radius:16px;background:rgba(36,46,45,0.92);border:1px solid rgba(255,255,255,0.14);box-shadow:0 18px 44px rgba(0,0,0,0.32);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:rgba(255,255,255,0.92);display:none;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc.mdtFloatTocOpen .mdtFloatTocPanel{display:block;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* head */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocHead{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;padding:0 0 0.55rem 0;margin:0 0 0.6rem 0;border-bottom:1px solid rgba(255,255,255,0.10);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTitle{font-weight:900;opacity:0.9;letter-spacing:0.06em;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTop,#mdtFloatToc .mdtFloatTocClose{border:0;background:transparent;color:inherit;cursor:pointer;padding:0;font-family:inherit;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTop{display:inline-flex;align-items:center;gap:0.55rem;font-weight:900;color:var(--mdtBrand2,#00cfa0);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocClose{width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.06);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocClose:hover{background:rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* list */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocList{list-style:none;margin:0;padding:0 0 0 0.85rem;border-left:1px solid rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocRow{display:flex;align-items:center;gap:0.35rem;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem{margin:0.18rem 0;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a,#mdtFloatToc .mdtFloatTocItem a:visited{color:rgba(255,255,255,0.86);text-decoration:none;font-weight:750;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a:hover{color:var(--mdtBrand2,#00cfa0);text-decoration:underline;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a.mdtFloatTocActive{color:var(--mdtBrand2,#00cfa0);text-decoration:underline;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* sub list */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroupToggle{border:0;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.80);cursor:pointer;padding:0;width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroupToggle:hover{background:rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroup.mdtFloatTocGroupOpen .mdtFloatTocGroupToggle{color:var(--mdtBrand2,#00cfa0);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocSublist{list-style:none;margin:0.35rem 0 0.25rem;padding:0 0 0 0.85rem;border-left:1px solid rgba(255,255,255,0.12);display:none;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroup.mdtFloatTocGroupOpen .mdtFloatTocSublist{display:block;}&#039;&lt;br /&gt;
    ].join(&#039;\n&#039;);&lt;br /&gt;
&lt;br /&gt;
    var style = document.createElement(&#039;style&#039;);&lt;br /&gt;
    style.id = &#039;mdtFloatTocStyle&#039;;&lt;br /&gt;
    style.type = &#039;text/css&#039;;&lt;br /&gt;
    style.textContent = css;&lt;br /&gt;
    document.head.appendChild(style);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function applyDesktopDock(wrap) {&lt;br /&gt;
    if (!wrap) return;&lt;br /&gt;
    var panel = wrap.querySelector(&#039;.mdtFloatTocPanel&#039;);&lt;br /&gt;
    if (!panel) return;&lt;br /&gt;
&lt;br /&gt;
    if (!isDesktop()) {&lt;br /&gt;
      wrap.style.top = &#039;&#039;;&lt;br /&gt;
      wrap.style.right = &#039;&#039;;&lt;br /&gt;
      wrap.style.bottom = &#039;&#039;;&lt;br /&gt;
      panel.style.position = &#039;&#039;;&lt;br /&gt;
      panel.style.top = &#039;&#039;;&lt;br /&gt;
      panel.style.right = &#039;&#039;;&lt;br /&gt;
      panel.style.bottom = &#039;&#039;;&lt;br /&gt;
      panel.style.left = &#039;&#039;;&lt;br /&gt;
      panel.style.width = &#039;&#039;;&lt;br /&gt;
      panel.style.maxHeight = &#039;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var topPx = getDockTopPx();&lt;br /&gt;
    wrap.style.top = String(topPx) + &#039;px&#039;;&lt;br /&gt;
    wrap.style.right = String(GAP_PX) + &#039;px&#039;;&lt;br /&gt;
    wrap.style.bottom = &#039;auto&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Fit into the right gutter: don&#039;t cover the white content card&lt;br /&gt;
    var content = document.getElementById(&#039;mw-content&#039;) || document.getElementById(&#039;content&#039;);&lt;br /&gt;
    if (!content || !content.getBoundingClientRect) return;&lt;br /&gt;
&lt;br /&gt;
    var rect = content.getBoundingClientRect();&lt;br /&gt;
    var leftPx = Math.round(rect.right + GAP_PX);&lt;br /&gt;
    var available = Math.round(window.innerWidth - leftPx - GAP_PX);&lt;br /&gt;
&lt;br /&gt;
    // No right gutter -&amp;gt; keep mobile popup style&lt;br /&gt;
    if (available &amp;lt; 220) return;&lt;br /&gt;
&lt;br /&gt;
  panel.style.position = &#039;fixed&#039;;&lt;br /&gt;
  panel.style.top = String(topPx) + &#039;px&#039;;&lt;br /&gt;
  panel.style.right = String(GAP_PX) + &#039;px&#039;;&lt;br /&gt;
  panel.style.bottom = &#039;auto&#039;;&lt;br /&gt;
  panel.style.left = String(leftPx) + &#039;px&#039;;&lt;br /&gt;
  panel.style.width = &#039;auto&#039;;&lt;br /&gt;
  panel.style.maxHeight = &#039;calc(100vh - &#039; + String(topPx + GAP_PX) + &#039;px)&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Default open once per page load&lt;br /&gt;
    if (wrap.getAttribute(&#039;data-mdtDefaultOpen&#039;) !== &#039;1&#039;) {&lt;br /&gt;
      wrap.classList.add(&#039;mdtFloatTocOpen&#039;);&lt;br /&gt;
      wrap.setAttribute(&#039;data-mdtDefaultOpen&#039;, &#039;1&#039;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildPanel(groups) {&lt;br /&gt;
    injectCssOnce();&lt;br /&gt;
&lt;br /&gt;
    var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
    wrap.id = &#039;mdtFloatToc&#039;;&lt;br /&gt;
    wrap.className = &#039;mdtFloatToc&#039;;&lt;br /&gt;
&lt;br /&gt;
    var openBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    openBtn.type = &#039;button&#039;;&lt;br /&gt;
    openBtn.className = &#039;mdtFloatTocBtn&#039;;&lt;br /&gt;
    openBtn.setAttribute(&#039;aria-label&#039;, &#039;\u76ee\u5f55&#039;);&lt;br /&gt;
    openBtn.textContent = &#039;\u2261&#039;;&lt;br /&gt;
    wrap.appendChild(openBtn);&lt;br /&gt;
&lt;br /&gt;
    var panel = document.createElement(&#039;div&#039;);&lt;br /&gt;
    panel.className = &#039;mdtFloatTocPanel&#039;;&lt;br /&gt;
    panel.setAttribute(&#039;role&#039;, &#039;dialog&#039;);&lt;br /&gt;
    panel.setAttribute(&#039;aria-label&#039;, &#039;\u76ee\u5f55&#039;);&lt;br /&gt;
    wrap.appendChild(panel);&lt;br /&gt;
&lt;br /&gt;
    var head = document.createElement(&#039;div&#039;);&lt;br /&gt;
    head.className = &#039;mdtFloatTocHead&#039;;&lt;br /&gt;
    panel.appendChild(head);&lt;br /&gt;
&lt;br /&gt;
    var topBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    topBtn.type = &#039;button&#039;;&lt;br /&gt;
    topBtn.className = &#039;mdtFloatTocTop&#039;;&lt;br /&gt;
    topBtn.textContent = &#039;\u2191 \u8fd4\u56de\u9876\u90e8&#039;;&lt;br /&gt;
    head.appendChild(topBtn);&lt;br /&gt;
&lt;br /&gt;
    var title = document.createElement(&#039;div&#039;);&lt;br /&gt;
    title.className = &#039;mdtFloatTocTitle&#039;;&lt;br /&gt;
    title.textContent = &#039;\u76ee\u5f55&#039;;&lt;br /&gt;
    head.appendChild(title);&lt;br /&gt;
&lt;br /&gt;
    var closeBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    closeBtn.type = &#039;button&#039;;&lt;br /&gt;
    closeBtn.className = &#039;mdtFloatTocClose&#039;;&lt;br /&gt;
    closeBtn.setAttribute(&#039;aria-label&#039;, &#039;\u5173\u95ed&#039;);&lt;br /&gt;
    closeBtn.textContent = &#039;X&#039;;&lt;br /&gt;
    head.appendChild(closeBtn);&lt;br /&gt;
&lt;br /&gt;
    var ul = document.createElement(&#039;ul&#039;);&lt;br /&gt;
    ul.className = &#039;mdtFloatTocList&#039;;&lt;br /&gt;
    panel.appendChild(ul);&lt;br /&gt;
&lt;br /&gt;
    function openPanel(open) {&lt;br /&gt;
      wrap.classList.toggle(&#039;mdtFloatTocOpen&#039;, open);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    openBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(true);&lt;br /&gt;
      applyDesktopDock(wrap);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    closeBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    topBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      if (!isDesktop()) openPanel(false);&lt;br /&gt;
      window.scrollTo({ top: 0, behavior: &#039;smooth&#039; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      (function (g) {&lt;br /&gt;
        var li = document.createElement(&#039;li&#039;);&lt;br /&gt;
        li.className = &#039;mdtFloatTocItem mdtFloatTocGroup&#039;;&lt;br /&gt;
&lt;br /&gt;
        var row = document.createElement(&#039;div&#039;);&lt;br /&gt;
        row.className = &#039;mdtFloatTocRow&#039;;&lt;br /&gt;
        li.appendChild(row);&lt;br /&gt;
&lt;br /&gt;
        var a = document.createElement(&#039;a&#039;);&lt;br /&gt;
        a.href = &#039;#&#039; + encodeURIComponent(g.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
        a.textContent = g.text;&lt;br /&gt;
        row.appendChild(a);&lt;br /&gt;
&lt;br /&gt;
        if (g.children &amp;amp;&amp;amp; g.children.length) {&lt;br /&gt;
          var toggle = document.createElement(&#039;button&#039;);&lt;br /&gt;
          toggle.type = &#039;button&#039;;&lt;br /&gt;
          toggle.className = &#039;mdtFloatTocGroupToggle&#039;;&lt;br /&gt;
          toggle.setAttribute(&#039;aria-label&#039;, &#039;\u5c55\u5f00/\u6536\u8d77&#039;);&lt;br /&gt;
          toggle.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          toggle.textContent = &#039;&amp;gt;&#039;;&lt;br /&gt;
          row.appendChild(toggle);&lt;br /&gt;
&lt;br /&gt;
          var sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtFloatTocSublist&#039;;&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
&lt;br /&gt;
          for (var j = 0; j &amp;lt; g.children.length; j++) {&lt;br /&gt;
            var c = g.children[j];&lt;br /&gt;
            var cli = document.createElement(&#039;li&#039;);&lt;br /&gt;
            cli.className = &#039;mdtFloatTocItem&#039;;&lt;br /&gt;
            var ca = document.createElement(&#039;a&#039;);&lt;br /&gt;
            ca.href = &#039;#&#039; + encodeURIComponent(c.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
            ca.textContent = c.text;&lt;br /&gt;
            cli.appendChild(ca);&lt;br /&gt;
            sub.appendChild(cli);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          toggle.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var open = li.classList.toggle(&#039;mdtFloatTocGroupOpen&#039;);&lt;br /&gt;
            toggle.setAttribute(&#039;aria-expanded&#039;, String(open));&lt;br /&gt;
            toggle.textContent = open ? &#039;v&#039; : &#039;&amp;gt;&#039;;&lt;br /&gt;
          });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ul.appendChild(li);&lt;br /&gt;
      })(groups[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Click a toc item -&amp;gt; smooth scroll&lt;br /&gt;
    wrap.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      var target = ev.target;&lt;br /&gt;
      if (!target) return;&lt;br /&gt;
      var a = target.closest ? target.closest(&#039;a&#039;) : null;&lt;br /&gt;
      if (!a) return;&lt;br /&gt;
&lt;br /&gt;
      var href = a.getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
      if (href.charAt(0) !== &#039;#&#039;) return;&lt;br /&gt;
&lt;br /&gt;
      ev.preventDefault();&lt;br /&gt;
      if (!isDesktop()) openPanel(false);&lt;br /&gt;
&lt;br /&gt;
      var id = decodeURIComponent(href.slice(1));&lt;br /&gt;
      var el = document.getElementById(id);&lt;br /&gt;
      if (el) {&lt;br /&gt;
        el.scrollIntoView({ behavior: &#039;smooth&#039;, block: &#039;start&#039; });&lt;br /&gt;
        try {&lt;br /&gt;
          history.replaceState(null, &#039;&#039;, &#039;#&#039; + encodeURIComponent(id));&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Mobile only: tap outside to close. Desktop: do nothing.&lt;br /&gt;
    document.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      if (isDesktop()) return;&lt;br /&gt;
      if (!wrap.classList.contains(&#039;mdtFloatTocOpen&#039;)) return;&lt;br /&gt;
      if (wrap.contains(ev.target)) return;&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Highlight active heading&lt;br /&gt;
    var linkById = {};&lt;br /&gt;
    var links = wrap.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
    for (var k = 0; k &amp;lt; links.length; k++) {&lt;br /&gt;
      var id2 = decodeURIComponent((links[k].getAttribute(&#039;href&#039;) || &#039;&#039;).slice(1));&lt;br /&gt;
      linkById[id2] = links[k];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ids = flattenIds(groups);&lt;br /&gt;
    var ticking = false;&lt;br /&gt;
&lt;br /&gt;
    function updateActive() {&lt;br /&gt;
      ticking = false;&lt;br /&gt;
&lt;br /&gt;
      var bestId = &#039;&#039;;&lt;br /&gt;
      var bestTop = -Infinity;&lt;br /&gt;
&lt;br /&gt;
      for (var i2 = 0; i2 &amp;lt; ids.length; i2++) {&lt;br /&gt;
        var el2 = document.getElementById(ids[i2]);&lt;br /&gt;
        if (!el2) continue;&lt;br /&gt;
        var rect = el2.getBoundingClientRect();&lt;br /&gt;
        if (rect.top &amp;lt;= 120 &amp;amp;&amp;amp; rect.top &amp;gt; bestTop) {&lt;br /&gt;
          bestTop = rect.top;&lt;br /&gt;
          bestId = ids[i2];&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var idKey in linkById) {&lt;br /&gt;
        linkById[idKey].classList.toggle(&#039;mdtFloatTocActive&#039;, idKey === bestId);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    window.addEventListener(&lt;br /&gt;
      &#039;scroll&#039;,&lt;br /&gt;
      function () {&lt;br /&gt;
        if (ticking) return;&lt;br /&gt;
        ticking = true;&lt;br /&gt;
        window.requestAnimationFrame(updateActive);&lt;br /&gt;
      },&lt;br /&gt;
      { passive: true }&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    return wrap;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var resizeBound = false;&lt;br /&gt;
&lt;br /&gt;
  function initFloatToc($content) {&lt;br /&gt;
    if (!isViewMode()) return;&lt;br /&gt;
&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatToc&#039;)) {&lt;br /&gt;
      applyDesktopDock(document.getElementById(&#039;mdtFloatToc&#039;));&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var content = $content &amp;amp;&amp;amp; $content[0] ? $content[0] : null;&lt;br /&gt;
    var root =&lt;br /&gt;
      content || document.querySelector(&#039;.mw-parser-output&#039;) || document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
    if (!root) return;&lt;br /&gt;
&lt;br /&gt;
    ensureHeadingIds(root);&lt;br /&gt;
    var groups = collectGroups(root);&lt;br /&gt;
    if (!groups.length) return;&lt;br /&gt;
&lt;br /&gt;
    var wrap = buildPanel(groups);&lt;br /&gt;
    document.body.appendChild(wrap);&lt;br /&gt;
&lt;br /&gt;
    applyDesktopDock(wrap);&lt;br /&gt;
&lt;br /&gt;
    if (!resizeBound) {&lt;br /&gt;
      resizeBound = true;&lt;br /&gt;
      window.addEventListener(&lt;br /&gt;
        &#039;resize&#039;,&lt;br /&gt;
        function () {&lt;br /&gt;
          var el = document.getElementById(&#039;mdtFloatToc&#039;);&lt;br /&gt;
          if (el) applyDesktopDock(el);&lt;br /&gt;
        },&lt;br /&gt;
        { passive: true }&lt;br /&gt;
      );&lt;br /&gt;
      window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        var el = document.getElementById(&#039;mdtFloatToc&#039;);&lt;br /&gt;
        if (el) applyDesktopDock(el);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(initFloatToc);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
        initFloatToc(null);&lt;br /&gt;
      });&lt;br /&gt;
    } else {&lt;br /&gt;
      initFloatToc(null);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* MDTWIKI_APPEND_ICON_TOOL v20260123&lt;br /&gt;
 * Paste this file at the END of MediaWiki:Common.js (do not replace your existing code).&lt;br /&gt;
 * Timeless skin only. Works in action=edit (source editor textarea wpTextbox1).&lt;br /&gt;
 */&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  if (!window.mw) return;&lt;br /&gt;
  if (window.__mdtIconEditorToolInit) return;&lt;br /&gt;
  window.__mdtIconEditorToolInit = true;&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    var skin = String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase();&lt;br /&gt;
    if (skin !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var action = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    if (action !== &#039;edit&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var MDT_ICON_SIZE = 18;&lt;br /&gt;
&lt;br /&gt;
    // Map: page title (wgPageName format) -&amp;gt; uploaded file name.&lt;br /&gt;
    // Add more entries as needed.&lt;br /&gt;
var MDT_ICON_MAP = {&lt;br /&gt;
&lt;br /&gt;
    &#039;\u94dc&#039;: &#039;Item-copper-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b0&#039;: &#039;Item-lead-ui.png&#039;,&lt;br /&gt;
    &#039;\u7164\u70ad&#039;: &#039;Item-coal-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u58a8&#039;: &#039;Item-graphite-ui.png&#039;,&lt;br /&gt;
    &#039;\u949b&#039;: &#039;Item-titanium-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b1&#039;: &#039;Item-thorium-ui.png&#039;,&lt;br /&gt;
    &#039;\u7845&#039;: &#039;Item-silicon-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2&#039;: &#039;Item-plastanium-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03&#039;: &#039;Item-phase-fabric-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u6d6a\u5408\u91d1&#039;: &#039;Item-surge-alloy-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u8350&#039;: &#039;Item-spore-pod-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99&#039;: &#039;Item-sand-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u70b8\u6df7\u5408\u7269&#039;: &#039;Item-blast-compound-ui.png&#039;,&lt;br /&gt;
    &#039;\u786b\u5316\u7269&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u94a2\u5316\u73bb\u7483&#039;: &#039;Item-metaglass-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e9f\u6599&#039;: &#039;Item-scrap-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c2\u53d8\u4ea7\u7269&#039;: &#039;Item-fissile-matter-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd&#039;: &#039;Item-beryllium-ui.png&#039;,&lt;br /&gt;
    &#039;\u949e&#039;: &#039;Item-tungsten-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u5316\u7269&#039;: &#039;Item-oxide-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u5316\u7269&#039;: &#039;Item-carbide-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f11\u7720\u56ca\u80bf&#039;: &#039;Item-dormant-cyst-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u6c34&#039;: &#039;Liquid-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23&#039;: &#039;Liquid-slag-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u6cb9&#039;: &#039;Liquid-oil-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b7\u51bb\u6db2&#039;: &#039;Liquid-cryofluid-ui.png&#039;,&lt;br /&gt;
    &#039;\u7624\u6db2&#039;: &#039;Liquid-neoplasm-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u6cb9&#039;: &#039;Liquid-arkycite-ui.png&#039;,&lt;br /&gt;
    &#039;\u92e0\u6db2&#039;: &#039;Liquid-gallium-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u6c27&#039;: &#039;Liquid-ozone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c22\u6c14&#039;: &#039;Liquid-hydrogen-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c2e\u6c14&#039;: &#039;Liquid-nitrogen-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c2e\u6c14&#039;: &#039;Liquid-cyanogen-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u5c16\u5200&#039;: &#039;Unit-dagger-ui.png&#039;,&lt;br /&gt;
    &#039;\u6218\u9524&#039;: &#039;Unit-mace-ui.png&#039;,&lt;br /&gt;
    &#039;\u5821\u5792&#039;: &#039;Unit-fortress-ui.png&#039;,&lt;br /&gt;
    &#039;\u65b0\u661f&#039;: &#039;Unit-nova-ui.png&#039;,&lt;br /&gt;
    &#039;\u6052\u661f&#039;: &#039;Unit-pulsar-ui.png&#039;,&lt;br /&gt;
    &#039;\u8000\u661f&#039;: &#039;Unit-quasar-ui.png&#039;,&lt;br /&gt;
    &#039;\u722c\u866b&#039;: &#039;Unit-crawler-ui.png&#039;,&lt;br /&gt;
    &#039;\u6bd2\u879e&#039;: &#039;Unit-atrax-ui.png&#039;,&lt;br /&gt;
    &#039;\u8840\u87b2&#039;: &#039;Unit-spiroct-ui.png&#039;,&lt;br /&gt;
    &#039;\u6bd2\u86c7&#039;: &#039;Unit-arkyid-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u874e&#039;: &#039;Unit-toxopid-ui.png&#039;,&lt;br /&gt;
    &#039;\u661f\u8f89&#039;: &#039;Unit-stell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u57b0&#039;: &#039;Unit-vela-ui.png&#039;,&lt;br /&gt;
    &#039;\u82cd\u7a79&#039;: &#039;Unit-corvus-ui.png&#039;,&lt;br /&gt;
    &#039;\u6708\u5f71&#039;: &#039;Unit-antumbra-ui.png&#039;,&lt;br /&gt;
    &#039;\u65e5\u8681&#039;: &#039;Unit-eclipse-ui.png&#039;,&lt;br /&gt;
    &#039;\u72ec\u5f71&#039;: &#039;Unit-obviate-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e7b\u578b&#039;: &#039;Unit-elude-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u50cf&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;\u96f7\u96f7&#039;: &#039;Unit-evoke-ui.png&#039;,&lt;br /&gt;
    &#039;\u8981\u585e&#039;: &#039;Unit-conquer-ui.png&#039;,&lt;br /&gt;
    &#039;\u68d2\u9c7c&#039;: &#039;Unit-bryde-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u9ca8&#039;: &#039;Unit-minke-ui.png&#039;,&lt;br /&gt;
    &#039;\u6218\u9cb8&#039;: &#039;Unit-sei-ui.png&#039;,&lt;br /&gt;
    &#039;\u86f9\u9f99&#039;: &#039;Unit-omura-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d77\u795e&#039;: &#039;Unit-retusa-ui.png&#039;,&lt;br /&gt;
    &#039;\u6f5c\u87ba&#039;: &#039;Unit-cyerce-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u9cca&#039;: &#039;Unit-oxynoe-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c5f\u8c5a&#039;: &#039;Unit-risso-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66&#039;: &#039;Unit-navanax-ui.png&#039;,&lt;br /&gt;
    &#039;\u9f99\u738b&#039;: &#039;Unit-anthicus-ui.png&#039;,&lt;br /&gt;
    &#039;\u963f\u5c14\u6cd5&#039;: &#039;Unit-alpha-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d1d\u5854&#039;: &#039;Unit-beta-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f3d\u9a6c&#039;: &#039;Unit-gamma-ui.png&#039;,&lt;br /&gt;
    &#039;\u6743\u6756&#039;: &#039;Unit-scepter-ui.png&#039;,&lt;br /&gt;
    &#039;\u738b\u5ea7&#039;: &#039;Unit-reign-ui.png&#039;,&lt;br /&gt;
    &#039;\u707e\u661f&#039;: &#039;Unit-scathe-ui.png&#039;,&lt;br /&gt;
    &#039;\u6b7b\u661f&#039;: &#039;Unit-horizon-ui.png&#039;,&lt;br /&gt;
    &#039;\u56f4\u62a4&#039;: &#039;Unit-avert-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f99\u8ff9&#039;: &#039;Unit-locus-ui.png&#039;,&lt;br /&gt;
    &#039;\u51c6\u7ef3&#039;: &#039;Unit-precept-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f81\u670d&#039;: &#039;Unit-vanquish-ui.png&#039;,&lt;br /&gt;
    &#039;\u9886\u4e3b&#039;: &#039;Unit-tecta-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u5b88&#039;: &#039;Unit-collaris-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u8d50&#039;: &#039;Unit-disrupt-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u707e&#039;: &#039;Unit-quell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u7406&#039;: &#039;Unit-elude-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u5e1d&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;\u62c9\u8131&#039;: &#039;Unit-flare-ui.png&#039;,&lt;br /&gt;
    &#039;\u906e\u853d&#039;: &#039;Unit-horizon-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d88\u6563&#039;: &#039;Unit-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;\u907c\u6b62&#039;: &#039;Unit-obviate-ui.png&#039;,&lt;br /&gt;
    &#039;\u60b2\u6071&#039;: &#039;Unit-merui-ui.png&#039;,&lt;br /&gt;
    &#039;\u82cf\u9192&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b56\u52a8&#039;: &#039;Unit-incite-ui.png&#039;,&lt;br /&gt;
    &#039;\u53d1\u6563&#039;: &#039;Unit-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d27\u8fd0\u65e0\u4eba\u673a&#039;: &#039;Unit-cargo-drone-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u914d\u65e0\u4eba\u673a&#039;: &#039;Unit-assembly-drone-ui.png&#039;,&lt;br /&gt;
    &#039;Latum&#039;: &#039;Unit-latum-ui.png&#039;,&lt;br /&gt;
    &#039;Renale&#039;: &#039;Unit-renale-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u5dee\u6270&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u60ac\u5d16&#039;: &#039;Block-cliff-ui.png&#039;,&lt;br /&gt;
    &#039;\u7802\u5ca9&#039;: &#039;Block-dacite-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66\u5ca9\u77f3\u5757&#039;: &#039;Block-basalt-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u7a91\u7089&#039;: &#039;Block-kiln-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u58a8\u538b\u7f29\u673a&#039;: &#039;Block-graphite-press-ui.png&#039;,&lt;br /&gt;
    &#039;\u591a\u91cd\u538b\u7f29\u673a&#039;: &#039;Block-multi-press-ui.png&#039;,&lt;br /&gt;
    &#039;\u654c\u4eba\u51fa\u751f\u70b9&#039;: &#039;Block-spawn-ui.png&#039;,&lt;br /&gt;
    &#039;\u79fb\u9664\u5899\u4f53&#039;: &#039;Block-remove-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u79fb\u9664\u77ff&#039;: &#039;Block-remove-ore-ui.png&#039;,&lt;br /&gt;
    &#039;\u521d\u4ee3\u6838\u5fc3&#039;: &#039;Block-core-shard-ui.png&#039;,&lt;br /&gt;
    &#039;\u6b21\u4ee3\u6838\u5fc3&#039;: &#039;Block-core-foundation-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ec8\u4ee3\u6838\u5fc3&#039;: &#039;Block-core-nucleus-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cc\u7ba1&#039;: &#039;Block-duo-ui.png&#039;,&lt;br /&gt;
    &#039;\u706b\u7130&#039;: &#039;Block-scorch-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u88c2&#039;: &#039;Block-ripple-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0\u970d&#039;: &#039;Block-hail-ui.png&#039;,&lt;br /&gt;
    &#039;\u84dd\u745e&#039;: &#039;Block-lancer-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f20\u9001\u5e26&#039;: &#039;Block-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u949b\u4f20\u9001\u5e26&#039;: &#039;Block-titanium-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2\u4f20\u9001\u5e26&#039;: &#039;Block-plastanium-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u7532\u4f20\u9001\u5e26&#039;: &#039;Block-armored-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u4ea4\u53c9\u5668&#039;: &#039;Block-junction-ui.png&#039;,&lt;br /&gt;
    &#039;\u8def\u7531\u5668&#039;: &#039;Block-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u914d\u5668&#039;: &#039;Block-distributor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u7c7b\u5668&#039;: &#039;Block-sorter-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cd\u5411\u5206\u7c7b\u5668&#039;: &#039;Block-inverted-sorter-ui.png&#039;,&lt;br /&gt;
    &#039;\u4fe1\u606f\u677f&#039;: &#039;Block-message-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u4fe1\u606f\u677f&#039;: &#039;Block-reinforced-message-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u4fe1\u606f\u677f&#039;: &#039;Block-world-message-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u5f00\u5173&#039;: &#039;Block-world-switch-ui.png&#039;,&lt;br /&gt;
    &#039;\u7167\u660e\u5668&#039;: &#039;Block-illuminator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ea2\u6d41\u95e8&#039;: &#039;Block-overflow-gate-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cd\u5411\u6ea2\u6d41\u95e8&#039;: &#039;Block-underflow-gate-ui.png&#039;,&lt;br /&gt;
    &#039;\u7845\u51b6\u70bc\u5382&#039;: &#039;Block-silicon-smelter-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u7f16\u7ec7\u5668&#039;: &#039;Block-phase-weaver-ui.png&#039;,&lt;br /&gt;
    &#039;\u7c89\u788e\u673a&#039;: &#039;Block-pulverizer-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b7\u51bb\u6db2\u6df7\u5408\u5668&#039;: &#039;Block-cryofluid-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u7089&#039;: &#039;Block-melter-ui.png&#039;,&lt;br /&gt;
    &#039;\u711a\u5316\u7089&#039;: &#039;Block-incinerator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u538b\u7f29\u673a&#039;: &#039;Block-spore-press-ui.png&#039;,&lt;br /&gt;
    &#039;\u5206\u79bb\u673a&#039;: &#039;Block-separator-ui.png&#039;,&lt;br /&gt;
    &#039;\u7164\u70ad\u79bb\u5fc3\u673a&#039;: &#039;Block-coal-centrifuge-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u529b\u8282\u70b9&#039;: &#039;Block-power-node-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u7535\u529b\u8282\u70b9&#039;: &#039;Block-power-node-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u6d6a\u7535\u529b\u5854&#039;: &#039;Block-surge-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e8c\u6781\u7ba1&#039;: &#039;Block-diode-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u6c60&#039;: &#039;Block-battery-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u7535\u6c60&#039;: &#039;Block-battery-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u706b\u529b\u53d1\u7535\u673a&#039;: &#039;Block-combustion-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6da1\u8f6e\u53d1\u7535\u673a&#039;: &#039;Block-steam-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6e29\u5dee\u53d1\u7535\u673a&#039;: &#039;Block-thermal-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b2\u51fb\u53cd\u5e94\u5806&#039;: &#039;Block-impact-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u68b0\u94bb\u5934&#039;: &#039;Block-mechanical-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c14\u52a8\u94bb\u5934&#039;: &#039;Block-pneumatic-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u94bb\u5934&#039;: &#039;Block-laser-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u62bd\u6c34\u673a&#039;: &#039;Block-water-extractor-ui.png&#039;,&lt;br /&gt;
    &#039;\u57f9\u517b\u673a&#039;: &#039;Block-cultivator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5bfc\u7ba1&#039;: &#039;Block-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u68b0\u6cf5&#039;: &#039;Block-mechanical-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u6e90&#039;: &#039;Block-item-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u9ed1\u6d1e&#039;: &#039;Block-item-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u6db2\u4f53\u6e90&#039;: &#039;Block-liquid-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u6db2\u4f53\u9ed1\u6d1e&#039;: &#039;Block-liquid-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u529b\u9ed1\u6d1e&#039;: &#039;Block-power-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u529b\u6e90&#039;: &#039;Block-power-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u5378\u5668&#039;: &#039;Block-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;\u4ed3\u5e93&#039;: &#039;Block-vault-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce2\u6d6a&#039;: &#039;Block-wave-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d77\u55d4&#039;: &#039;Block-tsunami-ui.png&#039;,&lt;br /&gt;
    &#039;\u8702\u7fa4&#039;: &#039;Block-swarmer-ui.png&#039;,&lt;br /&gt;
    &#039;\u9f50\u5c04&#039;: &#039;Block-salvo-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d6a\u6d8c&#039;: &#039;Block-surge-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u4f20\u9001\u5e26\u6865&#039;: &#039;Block-phase-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u4f20\u9001\u5e26\u6865&#039;: &#039;Block-bridge-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2\u538b\u7f29\u673a&#039;: &#039;Block-plastanium-compressor-ui.png&#039;,&lt;br /&gt;
    &#039;\u786b\u5316\u7269\u6df7\u5408\u5668&#039;: &#039;Block-sulfide-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u70b8\u7269\u6df7\u5408\u5668&#039;: &#039;Block-blast-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;\u592a\u9633\u80fd\u677f&#039;: &#039;Block-solar-panel-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u592a\u9633\u80fd\u677f&#039;: &#039;Block-solar-panel-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u6cb9\u94bb\u4e95&#039;: &#039;Block-oil-extractor-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ef4\u4fee\u70b9&#039;: &#039;Block-repair-point-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ef4\u4fee\u5854&#039;: &#039;Block-repair-turret-ui.png&#039;,&lt;br /&gt;
    &#039;\u8109\u51b2\u5bfc\u7ba1&#039;: &#039;Block-pulse-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u9540\u5bfc\u7ba1&#039;: &#039;Block-plated-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u5bfc\u7ba1\u6865&#039;: &#039;Block-phase-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u8def\u7531\u5668&#039;: &#039;Block-liquid-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u50a8\u7f50&#039;: &#039;Block-liquid-tank-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u5bb9\u5668&#039;: &#039;Block-liquid-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u4f53\u4ea4\u53c9\u5668&#039;: &#039;Block-liquid-junction-ui.png&#039;,&lt;br /&gt;
    &#039;\u5bfc\u7ba1\u6865&#039;: &#039;Block-bridge-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u56de\u8f6c\u6cf5&#039;: &#039;Block-rotary-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b1\u53cd\u5e94\u5806&#039;: &#039;Block-thorium-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d28\u91cf\u9a71\u52a8\u5668&#039;: &#039;Block-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u7834\u94bb\u5934&#039;: &#039;Block-blast-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u8109\u51b2\u6cf5&#039;: &#039;Block-impulse-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u80fd\u53d1\u7535\u673a&#039;: &#039;Block-differential-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u51b6\u70bc\u5382&#039;: &#039;Block-alloy-smelter-ui.png&#039;,&lt;br /&gt;
    &#039;\u4fee\u7406\u5668&#039;: &#039;Block-mender-ui.png&#039;,&lt;br /&gt;
    &#039;\u4fee\u7406\u6295\u5f71&#039;: &#039;Block-mend-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u5899&#039;: &#039;Block-surge-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5408\u91d1\u5899&#039;: &#039;Block-surge-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c14\u65cb&#039;: &#039;Block-cyclone-ui.png&#039;,&lt;br /&gt;
    &#039;\u96f7\u5149&#039;: &#039;Block-arc-ui.png&#039;,&lt;br /&gt;
    &#039;\u8109\u51b2\u5730\u96f7&#039;: &#039;Block-shock-mine-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u901f\u6295\u5f71&#039;: &#039;Block-overdrive-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u529b\u5899\u6295\u5f71&#039;: &#039;Block-force-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u5f27&#039;: &#039;Block-arc-ui.png&#039;,&lt;br /&gt;
    &#039;RTG\u53d1\u7535\u673a&#039;: &#039;Block-rtg-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e7b\u5f71&#039;: &#039;Block-phantom-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u6bc1&#039;: &#039;Block-meltdown-ui.png&#039;,&lt;br /&gt;
    &#039;\u5384\u5146&#039;: &#039;Block-afflict-ui.png&#039;,&lt;br /&gt;
    &#039;\u5bb9\u5668&#039;: &#039;Block-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u53d1\u5c04\u53f0&#039;: &#039;Block-launch-pad-ui.png&#039;,&lt;br /&gt;
    &#039;\u63a5\u6536\u53f0&#039;: &#039;Block-landing-pad-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c2\u89e3&#039;: &#039;Block-disassembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u9646\u519b\u5de5\u5382&#039;: &#039;Block-ground-factory-ui.png&#039;,&lt;br /&gt;
    &#039;\u7a7a\u519b\u5de5\u5382&#039;: &#039;Block-air-factory-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d77\u519b\u5de5\u5382&#039;: &#039;Block-naval-factory-ui.png&#039;,&lt;br /&gt;
    &#039;\u6570\u589e\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-additive-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u500d\u4e58\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-multiplicative-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u591a\u5e42\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-exponential-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u65e0\u91cf\u7ea7\u5355\u4f4d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-tetrative-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8377\u4f20\u9001\u5e26&#039;: &#039;Block-payload-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8377\u8def\u7531\u5668&#039;: &#039;Block-payload-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u7ba1\u9053&#039;: &#039;Block-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u7ba1\u9053\u8def\u7531\u5668&#039;: &#039;Block-duct-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u7269\u54c1\u7ba1\u9053\u6865&#039;: &#039;Block-duct-bridge-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u8f7d\u8379\u8d28\u91cf\u9a71\u52a8\u5668&#039;: &#039;Block-large-payload-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u9ed1\u6d1e&#039;: &#039;Block-payload-void-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u6e90&#039;: &#039;Block-payload-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u89e3\u79bb\u673a&#039;: &#039;Block-disassembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u80fd\u5759\u5759&#039;: &#039;Block-slag-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u901f\u7a84\u9876&#039;: &#039;Block-overdrive-dome-ui.png&#039;,&lt;br /&gt;
    &#039;\u884c\u661f\u9645\u52a0\u901f\u5668&#039;: &#039;Block-interplanetary-accelerator-ui.png&#039;,&lt;br /&gt;
    &#039;\u52cb\u7b51\u5668&#039;: &#039;Block-constructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u52cb\u7b51\u5668&#039;: &#039;Block-large-constructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u89e3\u6784\u5668&#039;: &#039;Block-deconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u88c5\u8f7d\u5668&#039;: &#039;Block-payload-loader-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u5378\u8f7d\u5668&#039;: &#039;Block-payload-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u6e90&#039;: &#039;Block-heat-source-ui.png&#039;,&lt;br /&gt;
    &#039;\u7a7a&#039;: &#039;Block-empty-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9\u5751&#039;: &#039;Block-rhyolite-crater-ui.png&#039;,&lt;br /&gt;
    &#039;\u7c97\u7cd9\u6d41\u7eb9\u5ca9&#039;: &#039;Block-rough-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9&#039;: &#039;Block-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3&#039;: &#039;Block-yellow-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3&#039;: &#039;Block-carbon-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u77f3&#039;: &#039;Block-ferric-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u9645\u77f3\u5751&#039;: &#039;Block-ferric-craters-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u77f3&#039;: &#039;Block-beryllic-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3&#039;: &#039;Block-crystalline-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u5730\u677f&#039;: &#039;Block-crystal-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u5730\u677f&#039;: &#039;Block-yellow-stone-plates-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3&#039;: &#039;Block-red-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ad8\u5bc6\u7ea2\u77f3&#039;: &#039;Block-dense-red-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u51b0&#039;: &#039;Block-red-ice-ui.png&#039;,&lt;br /&gt;
    //&#039;\u82b3\u6cb9&#039;: &#039;Block-arkyic-stone-ui.png&#039;,   这是地板！ai都不看重复的吗&lt;br /&gt;
    &#039;\u82b3\u77f3&#039;: &#039;Block-arkyic-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u77f3\u55b7\u53e3&#039;: &#039;Block-rhyolite-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3\u55b7\u53e3&#039;: &#039;Block-carbon-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u77f3\u55b7\u53e3&#039;: &#039;Block-arkyic-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u55b7\u53e3&#039;: &#039;Block-yellow-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3\u55b7\u53e3&#039;: &#039;Block-red-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u55b7\u53e3&#039;: &#039;Block-crystalline-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u5ca9\u77f3\u55b7\u53e3&#039;: &#039;Block-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66\u5ca9\u55b7\u53e3&#039;: &#039;Block-basalt-vent-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u5730\u57ab&#039;: &#039;Block-redmat-ui.png&#039;,&lt;br /&gt;
    &#039;\u84dd\u5730\u57ab&#039;: &#039;Block-bluemat-ui.png&#039;,&lt;br /&gt;
    &#039;\u6838\u5fc3\u533a&#039;: &#039;Block-core-zone-ui.png&#039;,&lt;br /&gt;
    &#039;\u98ce\u5316\u5899&#039;: &#039;Block-regolith-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u5899&#039;: &#039;Block-yellow-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9\u5899&#039;: &#039;Block-rhyolite-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3\u5899&#039;: &#039;Block-carbon-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u77f3\u5899&#039;: &#039;Block-ferric-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u77f3\u5899&#039;: &#039;Block-beryllic-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u77f3\u5899&#039;: &#039;Block-arkyic-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u5899&#039;: &#039;Block-crystalline-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u51b0\u5899&#039;: &#039;Block-red-ice-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3\u5899&#039;: &#039;Block-red-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u94bb\u5899&#039;: &#039;Block-red-diamond-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d64\u85fb&#039;: &#039;Block-redweed-ui.png&#039;,&lt;br /&gt;
    &#039;\u7d2b\u704c\u6728\u4e1b&#039;: &#039;Block-pur-bush-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u73ca\u745a&#039;: &#039;Block-yellowcoral-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u77f3\u5757&#039;: &#039;Block-carbon-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u94c1\u77f3\u5757&#039;: &#039;Block-ferric-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u77f3\u5757&#039;: &#039;Block-beryllic-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ec4\u77f3\u5757&#039;: &#039;Block-yellow-stone-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u82b3\u77f3\u5757&#039;: &#039;Block-arkyic-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c34\u6676\u7c07&#039;: &#039;Block-crystal-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;\u9c9c\u8273\u6c34\u6676\u7c07&#039;: &#039;Block-vibrant-crystal-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;\u98ce\u5316\u6676\u4f53&#039;: &#039;Block-weathered-crystal-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u7403&#039;: &#039;Block-crystal-orbs-ui.png&#039;,&lt;br /&gt;
    &#039;\u6676\u77f3\u5757&#039;: &#039;Block-crystal-blocks-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u51b0\u77f3\u5757&#039;: &#039;Block-red-ice-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u77f3\u5757&#039;: &#039;Block-rhyolite-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ea2\u77f3\u5757&#039;: &#039;Block-red-stone-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u58a8\u5899&#039;: &#039;Block-graphitic-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u5f27\u7845\u7089&#039;: &#039;Block-silicon-arc-furnace-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u89e3\u673a&#039;: &#039;Block-electrolyzer-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u6c14\u6536\u96c6\u5668&#039;: &#039;Block-atmospheric-concentrator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u5316\u5ba4&#039;: &#039;Block-oxidation-chamber-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u5236\u70ed\u673a&#039;: &#039;Block-electric-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u5236\u70ed\u673a&#039;: &#039;Block-slag-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5236\u70ed\u673a&#039;: &#039;Block-phase-heater-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u4f20\u8f93\u673a&#039;: &#039;Block-heat-redirector-ui.png&#039;,&lt;br /&gt;
    &#039;\u5c0f\u578b\u70ed\u91cf\u4f20\u8f93\u673a&#039;: &#039;Block-small-heat-redirector-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u8def\u7531\u5668&#039;: &#039;Block-heat-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u711a\u5316\u7089&#039;: &#039;Block-slag-incinerator-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u5316\u7269\u5759\u5759&#039;: &#039;Block-carbide-crucible-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u79bb\u5fc3\u673a&#039;: &#039;Block-slag-centrifuge-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u5759\u5759&#039;: &#039;Block-alloy-crucible-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c27\u5408\u6210\u673a&#039;: &#039;Block-cyanogen-synthesizer-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u5408\u6210\u673a&#039;: &#039;Block-phase-synthesizer-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u91cf\u53cd\u5e94\u5806&#039;: &#039;Block-heat-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u94bd\u5899&#039;: &#039;Block-beryllium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u94bd\u5899&#039;: &#039;Block-beryllium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u949e\u5899&#039;: &#039;Block-tungsten-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u949e\u5899&#039;: &#039;Block-tungsten-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u9632\u7206\u95f8\u95e8&#039;: &#039;Block-blast-door-ui.png&#039;,&lt;br /&gt;
    &#039;\u78b3\u5316\u7269\u5899&#039;: &#039;Block-carbide-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u78b3\u5316\u7269\u5899&#039;: &#039;Block-carbide-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u5408\u91d1\u5899&#039;: &#039;Block-reinforced-surge-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5f3a\u5316\u5408\u91d1\u5899&#039;: &#039;Block-reinforced-surge-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u76fe\u5899&#039;: &#039;Block-shielded-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u96f7\u8fbe&#039;: &#039;Block-radar-ui.png&#039;,&lt;br /&gt;
    &#039;\u5efa\u9020\u5854&#039;: &#039;Block-build-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u518d\u751f\u6295\u5f71\u5668&#039;: &#039;Block-regen-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u9707\u7206\u5854&#039;: &#039;Block-shockwave-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u62a4\u76fe\u6295\u5f71\u5668&#039;: &#039;Block-shield-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u62a4\u76fe\u6295\u5f71\u5668&#039;: &#039;Block-large-shield-projector-ui.png&#039;,&lt;br /&gt;
    &#039;\u88c5\u7532\u7ba1\u9053&#039;: &#039;Block-armored-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ea2\u6d41\u7ba1\u9053&#039;: &#039;Block-overflow-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u53cd\u5411\u6ea2\u6d41\u7ba1&#039;: &#039;Block-underflow-duct-ui.png&#039;,&lt;br /&gt;
    &#039;\u7ba1\u9053\u88c5\u5378\u5668&#039;: &#039;Block-duct-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u4f20\u9001\u5e26&#039;: &#039;Block-surge-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5408\u91d1\u8def\u7531\u5668&#039;: &#039;Block-surge-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u5355\u4f4d\u7269\u6d41\u88c5\u8f7d\u5668&#039;: &#039;Block-unit-cargo-loader-ui.png&#039;,&lt;br /&gt;
    &#039;\u5355\u4f4d\u7269\u6d41\u5378\u8f7d\u70b9&#039;: &#039;Block-unit-cargo-unload-point-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6cf5&#039;: &#039;Block-reinforced-pump-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u5bfc\u7ba1&#039;: &#039;Block-reinforced-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u4ea4\u53c9\u5668&#039;: &#039;Block-reinforced-liquid-junction-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u5e26\u6865&#039;: &#039;Block-reinforced-bridge-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u8def\u7531\u5668&#039;: &#039;Block-reinforced-liquid-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u5bb9\u5668&#039;: &#039;Block-reinforced-liquid-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u6d41\u4f53\u50a8\u7f50&#039;: &#039;Block-reinforced-liquid-tank-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u8282\u70b9&#039;: &#039;Block-beam-node-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u5854&#039;: &#039;Block-beam-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u6fc0\u5149\u8fde\u63a5\u5668&#039;: &#039;Block-beam-link-ui.png&#039;,&lt;br /&gt;
    &#039;\u6da1\u8f6e\u51b7\u51dd\u5668&#039;: &#039;Block-turbine-condenser-ui.png&#039;,&lt;br /&gt;
    &#039;\u5316\u5b66\u71c3\u70e7\u5ba4&#039;: &#039;Block-chemical-combustion-chamber-ui.png&#039;,&lt;br /&gt;
    &#039;\u70ed\u89e3\u53d1\u751f\u5668&#039;: &#039;Block-pyrolysis-generator-ui.png&#039;,&lt;br /&gt;
    &#039;\u6392\u6c14\u51b7\u51dd\u5668&#039;: &#039;Block-vent-condenser-ui.png&#039;,&lt;br /&gt;
    &#039;\u5899\u58c1\u7c89\u788e\u673a&#039;: &#039;Block-cliff-crusher-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ad8\u7ea7\u5899\u58c1\u7c89\u788e\u673a&#039;: &#039;Block-large-cliff-crusher-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b49\u79bb\u5b50\u94bb\u673a&#039;: &#039;Block-plasma-bore-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u7b49\u79bb\u5b50\u94bb\u673a&#039;: &#039;Block-large-plasma-bore-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b2\u51fb\u94bb\u5934&#039;: &#039;Block-impact-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u88c2\u94bb\u5934&#039;: &#039;Block-eruption-drill-ui.png&#039;,&lt;br /&gt;
    &#039;\u57ce\u5821\u6838\u5fc3&#039;: &#039;Block-core-citadel-ui.png&#039;,&lt;br /&gt;
    &#039;\u5821\u5792\u6838\u5fc3&#039;: &#039;Block-core-bastion-ui.png&#039;,&lt;br /&gt;
    &#039;\u536b\u57ce\u6838\u5fc3&#039;: &#039;Block-core-acropolis-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u5bb9\u5668&#039;: &#039;Block-reinforced-container-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u4ed3\u5e93&#039;: &#039;Block-reinforced-vault-ui.png&#039;,&lt;br /&gt;
    &#039;\u6495\u88c2&#039;: &#039;Block-ripper-ui.png&#039;,&lt;br /&gt;
    &#039;\u5347\u534e&#039;: &#039;Block-sublimate-ui.png&#039;,&lt;br /&gt;
    &#039;\u6cf0\u5766&#039;: &#039;Block-titan-ui.png&#039;,&lt;br /&gt;
    &#039;\u9a71\u79bb&#039;: &#039;Block-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;\u52ab\u96be&#039;: &#039;Block-afflict-ui.png&#039;,&lt;br /&gt;
    &#039;\u5149\u8f89&#039;: &#039;Block-lustre-ui.png&#039;,&lt;br /&gt;
    &#039;\u521b\u4f24&#039;: &#039;Block-scathe-ui.png&#039;,&lt;br /&gt;
    &#039;\u5766\u514b\u91cd\u6784\u5382&#039;: &#039;Block-tank-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u7532\u91cd\u6784\u5382&#039;: &#039;Block-mech-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u8239\u91cd\u6784\u5382&#039;: &#039;Block-ship-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5766\u514b\u7ec4\u88c5\u5382&#039;: &#039;Block-tank-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u8239\u7ec4\u88c5\u5382&#039;: &#039;Block-ship-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u7532\u7ec4\u88c5\u5382&#039;: &#039;Block-mech-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u8f7d\u8379\u4f20\u9001\u5e26&#039;: &#039;Block-reinforced-payload-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f3a\u5316\u8f7d\u8379\u8def\u7531\u5668&#039;: &#039;Block-reinforced-payload-router-ui.png&#039;,&lt;br /&gt;
    &#039;\u8f7d\u8379\u8d28\u91cf\u9a71\u52a8\u5668&#039;: &#039;Block-payload-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;\u89e3\u6784\u5668&#039;: &#039;Block-deconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;\u753b\u677f&#039;: &#039;Block-canvas-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u5904\u7406\u5668&#039;: &#039;Block-world-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u4e16\u754c\u5185\u5b58\u5143&#039;: &#039;Block-world-cell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5766\u514b\u5236\u9020\u5382&#039;: &#039;Block-tank-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u673a\u7532\u5236\u9020\u5382&#039;: &#039;Block-mech-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u98de\u8239\u5236\u9020\u5382&#039;: &#039;Block-ship-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ad8\u7ea7\u518d\u91cd\u6784\u5de5\u5382&#039;: &#039;Block-prime-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;\u5355\u4f4d\u7ef4\u4fee\u5854&#039;: &#039;Block-unit-repair-tower-ui.png&#039;,&lt;br /&gt;
    &#039;\u6269\u6563&#039;: &#039;Block-diffuse-ui.png&#039;,&lt;br /&gt;
    &#039;\u57fa\u672c\u88c5\u914d\u5382\u6a21\u5757&#039;: &#039;Block-basic-assembler-module-ui.png&#039;,&lt;br /&gt;
    &#039;\u5929\u8c26&#039;: &#039;Block-smite-ui.png&#039;,&lt;br /&gt;
    &#039;\u9b54\u7075&#039;: &#039;Block-malign-ui.png&#039;,&lt;br /&gt;
    &#039;\u901a\u91cf\u53cd\u5e94\u5806&#039;: &#039;Block-flux-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u7624\u53d8\u53cd\u5e94\u5806&#039;: &#039;Block-neoplasia-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f00\u5173&#039;: &#039;Block-switch-ui.png&#039;,&lt;br /&gt;
    &#039;\u5fae\u578b\u5904\u7406\u5668&#039;: &#039;Block-micro-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u903b\u8f91\u5904\u7406\u5668&#039;: &#039;Block-logic-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u6838\u5904\u7406\u5668&#039;: &#039;Block-hyper-processor-ui.png&#039;,&lt;br /&gt;
    &#039;\u903b\u8f91\u663e\u793a\u5c4f&#039;: &#039;Block-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u903b\u8f91\u663e\u793a\u5c4f&#039;: &#039;Block-large-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;\u903b\u8f91\u663e\u793a\u5355\u5143&#039;: &#039;Block-tile-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;\u5185\u5b58\u5143&#039;: &#039;Block-memory-cell-ui.png&#039;,&lt;br /&gt;
    &#039;\u5185\u5b58\u5e93&#039;: &#039;Block-memory-bank-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u8349\u5730&#039;: &#039;Block-grass-ui.png&#039;,&lt;br /&gt;
    &#039;\u77ff\u6e23\u6db2&#039;: &#039;Block-molten-slag-ui.png&#039;,&lt;br /&gt;
    //&#039;\u51b7\u51bb\u6db2&#039;: &#039;Block-pooled-cryofluid-ui.png&#039;,   这是地板！ai都不看重复的吗&lt;br /&gt;
    &#039;\u592a\u7a7a&#039;: &#039;Block-space-ui.png&#039;,&lt;br /&gt;
    &#039;\u76d0\u78b1\u5730&#039;: &#039;Block-salt-ui.png&#039;,&lt;br /&gt;
    &#039;\u76d0\u5899&#039;: &#039;Block-salt-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u9e4f\u5375\u77f3&#039;: &#039;Block-pebbles-ui.png&#039;,&lt;br /&gt;
    &#039;\u5377\u987b&#039;: &#039;Block-tendrils-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u5899&#039;: &#039;Block-sand-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u6811&#039;: &#039;Block-spore-pine-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u5899&#039;: &#039;Block-spore-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u5757&#039;: &#039;Block-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea\u77f3\u5757&#039;: &#039;Block-snow-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea\u6811&#039;: &#039;Block-snow-pine-ui.png&#039;,&lt;br /&gt;
    &#039;\u9875\u5ca9\u5730&#039;: &#039;Block-shale-ui.png&#039;,&lt;br /&gt;
    &#039;\u9875\u5ca9\u77f3\u5757&#039;: &#039;Block-shale-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u829c\u85fb\u5730&#039;: &#039;Block-moss-ui.png&#039;,&lt;br /&gt;
    &#039;\u704c\u6728\u4e1b&#039;: &#039;Block-shrubs-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u829c\u85fb\u5730&#039;: &#039;Block-spore-moss-ui.png&#039;,&lt;br /&gt;
    &#039;\u9875\u5ca9\u5899&#039;: &#039;Block-shale-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5e9f\u5899&#039;: &#039;Block-scrap-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5e9f\u5899&#039;: &#039;Block-scrap-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5de8\u578b\u5e9f\u5899&#039;: &#039;Block-scrap-wall-huge-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u5de8\u578b\u5e9f\u5899&#039;: &#039;Block-scrap-wall-gigantic-ui.png&#039;,&lt;br /&gt;
    &#039;\u63a8\u8fdb\u5668\u6b8b\u9ab5&#039;: &#039;Block-thruster-ui.png&#039;,&lt;br /&gt;
    &#039;\u6df1\u6c34&#039;: &#039;Block-deep-water-ui.png&#039;,&lt;br /&gt;
    //&#039;\u6c34&#039;: &#039;Block-shallow-water-ui.png&#039;,   这是地板！ai都不看重复的吗？&lt;br /&gt;
    &#039;\u6c61\u6c34&#039;: &#039;Block-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u6df1\u6c61\u6c34&#039;: &#039;Block-deep-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ed1\u6c99\u6c61\u6c34&#039;: &#039;Block-darksand-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u6cb9&#039;: &#039;Block-tar-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u5934&#039;: &#039;Block-stone-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u5b50&#039;: &#039;Block-sand-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ed1\u6c99&#039;: &#039;Block-darksand-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0&#039;: &#039;Block-ice-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea&#039;: &#039;Block-snow-ui.png&#039;,&lt;br /&gt;
    &#039;\u9676\u77f3\u5751&#039;: &#039;Block-crater.png&#039;,&lt;br /&gt;
    &#039;\u6d45\u6ee9&#039;: &#039;Block-shallow-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ed1\u6c99\u6d45\u6ee9&#039;: &#039;Block-darksand-water-ui.png&#039;,&lt;br /&gt;
    &#039;\u7126\u571f&#039;: &#039;Block-scorch-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b89\u5c71\u5ca9&#039;: &#039;Block-dacite-ui.png&#039;,&lt;br /&gt;
    &#039;\u6d41\u7eb9\u5ca9&#039;: &#039;Block-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b89\u5c71\u5ca9\u5899&#039;: &#039;Block-dacite-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b89\u5c71\u77f3\u5757&#039;: &#039;Block-dacite-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0\u96ea\u5730&#039;: &#039;Block-ice-snow-ui.png&#039;,&lt;br /&gt;
    &#039;\u77f3\u5899&#039;: &#039;Block-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u51b0\u5899&#039;: &#039;Block-ice-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u96ea\u5899&#039;: &#039;Block-snow-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u4e18\u5ca9&#039;: &#039;Block-dune-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u677e\u6811&#039;: &#039;Block-pine-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u571f&#039;: &#039;Block-dirt-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u571f\u5899&#039;: &#039;Block-dirt-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u5df4&#039;: &#039;Block-mud-ui.png&#039;,&lt;br /&gt;
    &#039;\u67af\u840e\u7684\u767d\u6811&#039;: &#039;Block-white-tree-dead-ui.png&#039;,&lt;br /&gt;
    &#039;\u767d\u6811&#039;: &#039;Block-white-tree-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u7c07&#039;: &#039;Block-spore-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f1&#039;: &#039;Block-metal-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f2&#039;: &#039;Block-metal-floor-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f3&#039;: &#039;Block-metal-floor-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f4&#039;: &#039;Block-metal-floor-4-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u677f5&#039;: &#039;Block-metal-floor-5-ui.png&#039;,&lt;br /&gt;
    &#039;\u635f\u574f\u7684\u91d1\u5c5e\u5730\u677f&#039;: &#039;Block-metal-floor-damaged-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa1&#039;: &#039;Block-metal-tiles-1-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa2&#039;: &#039;Block-metal-tiles-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa3&#039;: &#039;Block-metal-tiles-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa4&#039;: &#039;Block-metal-tiles-4-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa5&#039;: &#039;Block-metal-tiles-5-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa6&#039;: &#039;Block-metal-tiles-6-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa7&#039;: &#039;Block-metal-tiles-7-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa8&#039;: &#039;Block-metal-tiles-8-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa9&#039;: &#039;Block-metal-tiles-9-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa10&#039;: &#039;Block-metal-tiles-10-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa11&#039;: &#039;Block-metal-tiles-11-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa12&#039;: &#039;Block-metal-tiles-12-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u5730\u57fa13&#039;: &#039;Block-metal-tiles-13-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u58991&#039;: &#039;Block-metal-wall-1-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u58992&#039;: &#039;Block-metal-wall-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u91d1\u5c5e\u58993&#039;: &#039;Block-metal-wall-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u67d3\u8272\u5730\u677f&#039;: &#039;Block-colored-floor-ui.png&#039;,&lt;br /&gt;
    &#039;\u67d3\u8272\u5899\u58c8&#039;: &#039;Block-colored-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u6807\u8bc6\u8d34\u7247&#039;: &#039;Block-character-overlay-ui.png&#039;,&lt;br /&gt;
    &#039;\u6807\u8bc6\u8d34\u7247(\u767d\u8272)&#039;: &#039;Block-character-overlay-white-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b26\u6587\u8d34\u7247&#039;: &#039;Block-rune-overlay-ui.png&#039;,&lt;br /&gt;
    &#039;\u7b26\u6587\u8d34\u7247\uff08\u7ea2\u961f\uff09&#039;: &#039;Block-rune-overlay-crux-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f1&#039;: &#039;Block-dark-panel-1-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f2&#039;: &#039;Block-dark-panel-2-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f3&#039;: &#039;Block-dark-panel-3-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f4&#039;: &#039;Block-dark-panel-4-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f5&#039;: &#039;Block-dark-panel-5-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u9762\u677f6&#039;: &#039;Block-dark-panel-6-ui.png&#039;,&lt;br /&gt;
    &#039;\u6697\u91d1\u5c5e&#039;: &#039;Block-dark-metal-ui.png&#039;,&lt;br /&gt;
    &#039;\u7384\u6b66\u5ca9&#039;: &#039;Block-basalt-ui.png&#039;,&lt;br /&gt;
    &#039;\u707c\u70ed\u5ca9\u77f3&#039;: &#039;Block-hotrock-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u878d\u5ca9\u77f3&#039;: &#039;Block-magmarock-ui.png&#039;,&lt;br /&gt;
    &#039;\u94dc\u5899&#039;: &#039;Block-copper-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u94dc\u5899&#039;: &#039;Block-copper-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u949b\u5899&#039;: &#039;Block-titanium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u949b\u5899&#039;: &#039;Block-titanium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u5851\u94a2\u5899&#039;: &#039;Block-plastanium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u5851\u94a2\u5899&#039;: &#039;Block-plastanium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u76f8\u7ec7\u5e03\u5899&#039;: &#039;Block-phase-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u76f8\u7ec7\u5e03\u5899&#039;: &#039;Block-phase-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u94b1\u5899&#039;: &#039;Block-thorium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u578b\u94b1\u5899&#039;: &#039;Block-thorium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;\u95e8&#039;: &#039;Block-door-ui.png&#039;,&lt;br /&gt;
    &#039;\u5927\u95e8&#039;: &#039;Block-door-large-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u585e\u666e\u7f57&#039;: &#039;Planet-serpulo.png&#039;,&lt;br /&gt;
    &#039;\u57c3\u91cc\u514b\u5c14&#039;: &#039;Planet-erekir.png&#039;,&lt;br /&gt;
    &#039;\u592a\u9633&#039;: &#039;Sun.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u964d\u96e8&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u964d\u96ea&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u6c99\u5c18\u66b4&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u98ce\u66b4&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;\u96fe&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;\u71c3\u70e7&#039;: &#039;Status-burning-ui.png&#039;,&lt;br /&gt;
    &#039;\u51bb\u7ed3&#039;: &#039;Status-freezing-ui.png&#039;,&lt;br /&gt;
    &#039;\u6f6e\u6e7f&#039;: &#039;Status-wet-ui.png&#039;,&lt;br /&gt;
    &#039;\u6ce5\u6c61&#039;: &#039;Status-muddy-ui.png&#039;,&lt;br /&gt;
    &#039;\u7194\u5316&#039;: &#039;Status-melting-ui.png&#039;,&lt;br /&gt;
    &#039;\u5f31\u5316&#039;: &#039;Status-slow-ui.png&#039;,&lt;br /&gt;
    &#039;\u9ebb\u75f9&#039;: &#039;Status-electrified-ui.png&#039;,&lt;br /&gt;
    &#039;\u5b62\u5b50\u51cf\u901f&#039;: &#039;Status-spore-slowed-ui.png&#039;,&lt;br /&gt;
    &#039;\u6cb9\u6d78&#039;: &#039;Status-tarred-ui.png&#039;,&lt;br /&gt;
    &#039;\u8fc7\u8f7d&#039;: &#039;Status-overdrive-ui.png&#039;,&lt;br /&gt;
    &#039;\u8d85\u9891&#039;: &#039;Status-overclock-ui.png&#039;,&lt;br /&gt;
    &#039;\u7535\u51fb&#039;: &#039;Status-shocked-ui.png&#039;,&lt;br /&gt;
    &#039;\u7206\u70b8&#039;: &#039;Status-blasted-ui.png&#039;,&lt;br /&gt;
    &#039;\u8150\u8680&#039;: &#039;Status-corroded-ui.png&#039;,&lt;br /&gt;
    &#039;\u9759\u6b62&#039;: &#039;Status-unmoving-ui.png&#039;,&lt;br /&gt;
    &#039;Boss&#039;: &#039;Status-boss-ui.png&#039;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
    function getEditorTextarea() {&lt;br /&gt;
      return document.getElementById(&#039;wpTextbox1&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;textarea#wpTextbox1&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildIconWikitext(filename, title) {&lt;br /&gt;
      var file = String(filename);&lt;br /&gt;
      var t = String(title);&lt;br /&gt;
      return &#039;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:&#039; + file + &#039;|&#039; + String(MDT_ICON_SIZE) + &#039;px|link=&#039; + t + &#039;]]&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildTitlePattern(titles) {&lt;br /&gt;
      // Prefer longer first to avoid partial matches.&lt;br /&gt;
      var list = titles.slice().sort(function (a, b) { return b.length - a.length; });&lt;br /&gt;
      var escaped = [];&lt;br /&gt;
      for (var i = 0; i &amp;lt; list.length; i++) {&lt;br /&gt;
        escaped.push(list[i].replace(/[.*+?^${}()|[\]\\]/g, &#039;\\$&amp;amp;&#039;));&lt;br /&gt;
      }&lt;br /&gt;
      return escaped.join(&#039;|&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function convertWikitext(text) {&lt;br /&gt;
      var titles = Object.keys(MDT_ICON_MAP || {});&lt;br /&gt;
      if (!titles.length) return { text: text, changed: 0 };&lt;br /&gt;
&lt;br /&gt;
      var pattern = buildTitlePattern(titles);&lt;br /&gt;
&lt;br /&gt;
      // Only convert links like [[Title]] or [[Title|Label]].&lt;br /&gt;
      // Skip links already preceded by mdtPixelIcon span.&lt;br /&gt;
      var re = new RegExp(&#039;\\[\\[(&#039; + pattern + &#039;)(?:\\|[^\\]]*)?\\]\\]&#039;, &#039;g&#039;);&lt;br /&gt;
      &lt;br /&gt;
      var changed = 0;&lt;br /&gt;
      var out = text.replace(re, function (m, title, offset) {&lt;br /&gt;
        var before = text.slice(Math.max(0, offset - 120), offset);&lt;br /&gt;
        if (before.indexOf(&#039;class=&amp;quot;mdtPixelIcon&amp;quot;&#039;) !== -1) return m;&lt;br /&gt;
        if (/\[\[File:|\[\[Image:/i.test(m)) return m;&lt;br /&gt;
&lt;br /&gt;
        var filename = MDT_ICON_MAP[title];&lt;br /&gt;
        if (!filename) return m;&lt;br /&gt;
&lt;br /&gt;
        changed++;&lt;br /&gt;
        return buildIconWikitext(filename, title) + &#039; &#039; + m;&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      return { text: out, changed: changed };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function initEditorTool() {&lt;br /&gt;
      var ta = getEditorTextarea();&lt;br /&gt;
      if (!ta) return;&lt;br /&gt;
      if (ta.getAttribute(&#039;data-mdtIconTool&#039;) === &#039;1&#039;) return;&lt;br /&gt;
      ta.setAttribute(&#039;data-mdtIconTool&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
      var host = document.createElement(&#039;div&#039;);&lt;br /&gt;
      host.style.margin = &#039;0 0 8px 0&#039;;&lt;br /&gt;
      host.style.display = &#039;flex&#039;;&lt;br /&gt;
      host.style.gap = &#039;8px&#039;;&lt;br /&gt;
      host.style.flexWrap = &#039;wrap&#039;;&lt;br /&gt;
      host.style.alignItems = &#039;center&#039;;&lt;br /&gt;
&lt;br /&gt;
      var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
      btn.type = &#039;button&#039;;&lt;br /&gt;
      btn.className = &#039;mw-ui-button mw-ui-progressive&#039;;&lt;br /&gt;
      btn.textContent = &#039;\u4e00\u952e\u914d\u56fe\u6807&#039;;&lt;br /&gt;
&lt;br /&gt;
      var undo = document.createElement(&#039;button&#039;);&lt;br /&gt;
      undo.type = &#039;button&#039;;&lt;br /&gt;
      undo.className = &#039;mw-ui-button&#039;;&lt;br /&gt;
      undo.textContent = &#039;\u64a4\u9500\u914d\u56fe\u6807&#039;;&lt;br /&gt;
      undo.disabled = true;&lt;br /&gt;
&lt;br /&gt;
      var note = document.createElement(&#039;span&#039;);&lt;br /&gt;
      note.style.opacity = &#039;0.75&#039;;&lt;br /&gt;
      note.style.fontSize = &#039;12px&#039;;&lt;br /&gt;
      note.textContent = &#039;\u53ea\u5904\u7406\u005b\u005b\u002e\u002e\u002e\u005d\u005d\u94fe\u63a5&#039;;&lt;br /&gt;
&lt;br /&gt;
      host.appendChild(btn);&lt;br /&gt;
      host.appendChild(undo);&lt;br /&gt;
      host.appendChild(note);&lt;br /&gt;
&lt;br /&gt;
      if (ta.parentNode) ta.parentNode.insertBefore(host, ta);&lt;br /&gt;
&lt;br /&gt;
      var backup = &#039;&#039;;&lt;br /&gt;
      btn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
        var current = String(ta.value || &#039;&#039;);&lt;br /&gt;
        var result = convertWikitext(current);&lt;br /&gt;
        if (!result.changed) {&lt;br /&gt;
          alert(&#039;\u6ca1\u6709\u53ef\u66ff\u6362\u7684\u94fe\u63a5&#039;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        backup = current;&lt;br /&gt;
        undo.disabled = false;&lt;br /&gt;
        ta.value = result.text;&lt;br /&gt;
        alert(&#039;\u5df2\u63d2\u5165 &#039; + String(result.changed) + &#039; \u4e2a\u56fe\u6807&#039;);&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      undo.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
        if (!backup) {&lt;br /&gt;
          alert(&#039;\u6ca1\u6709\u5907\u4efd&#039;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        ta.value = backup;&lt;br /&gt;
        backup = &#039;&#039;;&lt;br /&gt;
        undo.disabled = true;&lt;br /&gt;
        alert(&#039;\u5df2\u64a4\u9500&#039;);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, initEditorTool);&lt;br /&gt;
    } else {&lt;br /&gt;
      initEditorTool();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* Mindustry 地图库小部件（MediaWiki）&lt;br /&gt;
 */&lt;br /&gt;
(() =&amp;gt; {&lt;br /&gt;
  &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  const DEFAULT_CONFIG = {&lt;br /&gt;
    apiBase: &amp;quot;https://api.mindustry.top/&amp;quot;,&lt;br /&gt;
    pageSize: 15,&lt;br /&gt;
    containerSelector: &amp;quot;.mindustry-map-widget&amp;quot;,&lt;br /&gt;
    enableInfiniteScroll: true,&lt;br /&gt;
    onlyOnPageNames: [&amp;quot;地图库&amp;quot;],&lt;br /&gt;
    showSort: true,&lt;br /&gt;
    maxTagOptions: 48,&lt;br /&gt;
    detailTemplate: &amp;quot;https://www.mindustry.top/map/{id}/latest&amp;quot;,&lt;br /&gt;
    tagOptions: null,&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  const userConfig =&lt;br /&gt;
    (typeof window !== &amp;quot;undefined&amp;quot; &amp;amp;&amp;amp; window.MindustryMapWidgetConfig) || {};&lt;br /&gt;
  const config = { ...DEFAULT_CONFIG, ...userConfig };&lt;br /&gt;
&lt;br /&gt;
  const sorters = [&lt;br /&gt;
    { value: &amp;quot;&amp;quot;, label: &amp;quot;热度&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;updateTime&amp;quot;, label: &amp;quot;更新时间&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;createTime&amp;quot;, label: &amp;quot;发布时间&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;download&amp;quot;, label: &amp;quot;下载量&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;rating&amp;quot;, label: &amp;quot;评分&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;like&amp;quot;, label: &amp;quot;点赞数&amp;quot; },&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  const normalizeApiBase = (base) =&amp;gt; (base.endsWith(&amp;quot;/&amp;quot;) ? base : base + &amp;quot;/&amp;quot;);&lt;br /&gt;
  config.apiBase = normalizeApiBase(String(config.apiBase || &amp;quot;&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
  function mapUrl(raw) {&lt;br /&gt;
    const s = String(raw || &amp;quot;&amp;quot;);&lt;br /&gt;
    if (s.startsWith(&amp;quot;/api/&amp;quot;)) return config.apiBase + s.substring(5);&lt;br /&gt;
    return s;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function resolveTemplate(template, vars) {&lt;br /&gt;
    let s = String(template || &amp;quot;&amp;quot;);&lt;br /&gt;
    for (const [k, v] of Object.entries(vars || {})) {&lt;br /&gt;
      s = s.replaceAll(`{${k}}`, String(v));&lt;br /&gt;
    }&lt;br /&gt;
    return s;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function el(tag, attrs, ...children) {&lt;br /&gt;
    const node = document.createElement(tag);&lt;br /&gt;
    if (attrs) {&lt;br /&gt;
      for (const [k, v] of Object.entries(attrs)) {&lt;br /&gt;
        if (v === undefined || v === null) continue;&lt;br /&gt;
        if (k === &amp;quot;class&amp;quot;) node.className = String(v);&lt;br /&gt;
        else if (k === &amp;quot;text&amp;quot;) node.textContent = String(v);&lt;br /&gt;
        else if (k === &amp;quot;html&amp;quot;) node.innerHTML = String(v);&lt;br /&gt;
        else if (k.startsWith(&amp;quot;on&amp;quot;) &amp;amp;&amp;amp; typeof v === &amp;quot;function&amp;quot;)&lt;br /&gt;
          node.addEventListener(k.substring(2), v);&lt;br /&gt;
        else node.setAttribute(k, String(v));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    for (const child of children.flat()) {&lt;br /&gt;
      if (child === undefined || child === null) continue;&lt;br /&gt;
      node.append(child instanceof Node ? child : document.createTextNode(String(child)));&lt;br /&gt;
    }&lt;br /&gt;
    return node;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function safeOpen(url) {&lt;br /&gt;
    window.open(url, &amp;quot;_blank&amp;quot;, &amp;quot;noopener,noreferrer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isFiveDigits(s) {&lt;br /&gt;
    return /^\d{5}$/.test(String(s || &amp;quot;&amp;quot;).trim());&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildSearchString(keyword, selectedTags, sort) {&lt;br /&gt;
    let s = String(keyword || &amp;quot;&amp;quot;).replace(/\s+/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
    for (const t of Array.isArray(selectedTags) ? selectedTags : []) {&lt;br /&gt;
      const tt = String(t || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      if (!tt) continue;&lt;br /&gt;
      s += ` ${tt} `;&lt;br /&gt;
    }&lt;br /&gt;
    if (sort) s += ` @sort:${sort} `;&lt;br /&gt;
    return s.replace(/\s+/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function mapsListUrl(begin, search) {&lt;br /&gt;
    const url = new URL(config.apiBase + &amp;quot;maps/list&amp;quot;);&lt;br /&gt;
    url.searchParams.set(&amp;quot;begin&amp;quot;, String(begin || 0));&lt;br /&gt;
    url.searchParams.set(&amp;quot;search&amp;quot;, String(search || &amp;quot;&amp;quot;));&lt;br /&gt;
    return url.toString();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function detailUrl(thread) {&lt;br /&gt;
    if (typeof config.detailUrl === &amp;quot;function&amp;quot;) return config.detailUrl(thread);&lt;br /&gt;
    const id = encodeURIComponent(String(thread));&lt;br /&gt;
    return resolveTemplate(config.detailTemplate, { id });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function downloadUrl(thread) {&lt;br /&gt;
    return mapUrl(`/api/maps/${encodeURIComponent(String(thread))}.msav`);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function setActiveButton(groupEl, value) {&lt;br /&gt;
    if (!groupEl) return;&lt;br /&gt;
    for (const btn of groupEl.querySelectorAll(&amp;quot;button[data-value]&amp;quot;)) {&lt;br /&gt;
      btn.classList.toggle(&lt;br /&gt;
        &amp;quot;is-active&amp;quot;,&lt;br /&gt;
        btn.getAttribute(&amp;quot;data-value&amp;quot;) === String(value || &amp;quot;&amp;quot;),&lt;br /&gt;
      );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function parseTag(raw) {&lt;br /&gt;
    const parts = String(raw || &amp;quot;&amp;quot;).split(&amp;quot;搂&amp;quot;);&lt;br /&gt;
    const text = (parts[0] || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
    const color = (parts[1] || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
    return { text, color };&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeTagOptions(raw) {&lt;br /&gt;
    const out = [];&lt;br /&gt;
    if (!raw) return out;&lt;br /&gt;
    const arr = Array.isArray(raw) ? raw : [raw];&lt;br /&gt;
    for (const item of arr) {&lt;br /&gt;
      if (typeof item === &amp;quot;string&amp;quot;) {&lt;br /&gt;
        const text = item.trim();&lt;br /&gt;
        if (text) out.push({ text, color: &amp;quot;&amp;quot; });&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      if (!item || typeof item !== &amp;quot;object&amp;quot;) continue;&lt;br /&gt;
      const text = String(item.text ?? item.label ?? &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
      const color = String(item.color ?? &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      out.push({ text, color });&lt;br /&gt;
    }&lt;br /&gt;
    return out;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizePageNameList(raw) {&lt;br /&gt;
    if (raw === null) return null;&lt;br /&gt;
    if (raw === undefined) return null;&lt;br /&gt;
    if (raw === false) return null;&lt;br /&gt;
    const arr = Array.isArray(raw) ? raw : [raw];&lt;br /&gt;
    const list = arr&lt;br /&gt;
      .map((it) =&amp;gt; String(it || &amp;quot;&amp;quot;).trim())&lt;br /&gt;
      .filter((it) =&amp;gt; it.length &amp;gt; 0);&lt;br /&gt;
    return list.length &amp;gt; 0 ? list : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function shouldInitOnThisPage() {&lt;br /&gt;
    const only = normalizePageNameList(config.onlyOnPageNames);&lt;br /&gt;
    if (!only) return true;&lt;br /&gt;
    if (!window.mw || !window.mw.config || typeof window.mw.config.get !== &amp;quot;function&amp;quot;) {&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
    const pageName = window.mw.config.get(&amp;quot;wgPageName&amp;quot;);&lt;br /&gt;
    if (!pageName) return true;&lt;br /&gt;
    return only.includes(String(pageName));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderWidget(root) {&lt;br /&gt;
    const state = {&lt;br /&gt;
      keyword: &amp;quot;&amp;quot;,&lt;br /&gt;
      sort: &amp;quot;&amp;quot;,&lt;br /&gt;
      selectedTags: [],&lt;br /&gt;
      begin: 0,&lt;br /&gt;
      hasNext: true,&lt;br /&gt;
      loading: false,&lt;br /&gt;
      abort: null,&lt;br /&gt;
      pagesLoaded: 0,&lt;br /&gt;
      tagStats: new Map(),&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    const searchInput = el(&amp;quot;input&amp;quot;, {&lt;br /&gt;
      type: &amp;quot;search&amp;quot;,&lt;br /&gt;
      placeholder: &amp;quot;查找地图名称（输入 5 位地图ID 可直接打开详情）&amp;quot;,&lt;br /&gt;
      value: &amp;quot;&amp;quot;,&lt;br /&gt;
    });&lt;br /&gt;
    const searchBtn = el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn mmw-btn-primary&amp;quot;, type: &amp;quot;button&amp;quot;, text: &amp;quot;搜索&amp;quot; });&lt;br /&gt;
    const clearBtn = el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn&amp;quot;, type: &amp;quot;button&amp;quot;, text: &amp;quot;清空&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    const searchRow = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-search mmw-search-row&amp;quot; }, searchInput, searchBtn, clearBtn);&lt;br /&gt;
&lt;br /&gt;
    const tagPickerGroup = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-tag-picker&amp;quot;, &amp;quot;data-group&amp;quot;: &amp;quot;tags&amp;quot; });&lt;br /&gt;
    const clearTagsBtn = el(&amp;quot;button&amp;quot;, {&lt;br /&gt;
      class: &amp;quot;mmw-tag mmw-tag-btn mmw-tag-clear&amp;quot;,&lt;br /&gt;
      type: &amp;quot;button&amp;quot;,&lt;br /&gt;
      text: &amp;quot;清除标签&amp;quot;,&lt;br /&gt;
      title: &amp;quot;清除已选择的标签&amp;quot;,&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    const tagRow = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-filter mmw-filter-tags&amp;quot; },&lt;br /&gt;
      el(&amp;quot;span&amp;quot;, { class: &amp;quot;mmw-filter-label&amp;quot;, text: &amp;quot;标签筛选：&amp;quot; }),&lt;br /&gt;
      tagPickerGroup,&lt;br /&gt;
      clearTagsBtn,&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const sortGroup = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-btn-group&amp;quot;, &amp;quot;data-group&amp;quot;: &amp;quot;sort&amp;quot; },&lt;br /&gt;
      ...sorters.map((s) =&amp;gt;&lt;br /&gt;
        el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn&amp;quot;, type: &amp;quot;button&amp;quot;, &amp;quot;data-value&amp;quot;: s.value, text: s.label }),&lt;br /&gt;
      ),&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const sortRow = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-filter&amp;quot; },&lt;br /&gt;
      el(&amp;quot;span&amp;quot;, { class: &amp;quot;mmw-filter-label&amp;quot;, text: &amp;quot;排序方式：&amp;quot; }),&lt;br /&gt;
      sortGroup,&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const filters = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-filters&amp;quot; },&lt;br /&gt;
      tagRow,&lt;br /&gt;
      config.showSort ? sortRow : null,&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const grid = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-grid&amp;quot; });&lt;br /&gt;
    const empty = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-muted&amp;quot;, text: &amp;quot;暂无数据（尝试切换筛选或关键词）&amp;quot; });&lt;br /&gt;
    const status = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-muted&amp;quot;, text: &amp;quot;&amp;quot; });&lt;br /&gt;
    const loadMoreBtn = el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn&amp;quot;, type: &amp;quot;button&amp;quot;, text: &amp;quot;加载更多&amp;quot; });&lt;br /&gt;
    const footer = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-footer&amp;quot; }, loadMoreBtn, status);&lt;br /&gt;
    const sentinel = el(&amp;quot;div&amp;quot;, { style: &amp;quot;height: 1px;&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    function setStatus(text) {&lt;br /&gt;
      status.textContent = String(text || &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function setLoading(loading) {&lt;br /&gt;
      state.loading = !!loading;&lt;br /&gt;
      loadMoreBtn.disabled = state.loading;&lt;br /&gt;
      searchBtn.disabled = state.loading;&lt;br /&gt;
      clearBtn.disabled = state.loading;&lt;br /&gt;
      clearTagsBtn.disabled = state.loading;&lt;br /&gt;
      setStatus(state.loading ? &amp;quot;加载中…&amp;quot; : &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function clearGrid() {&lt;br /&gt;
      grid.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
      grid.append(empty);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function mapTagTexts(map) {&lt;br /&gt;
      const rawTags = Array.isArray(map?.tags) ? map.tags : [];&lt;br /&gt;
      const texts = [];&lt;br /&gt;
      for (const raw of rawTags) {&lt;br /&gt;
        const { text } = parseTag(raw);&lt;br /&gt;
        if (text) texts.push(text);&lt;br /&gt;
      }&lt;br /&gt;
      return texts;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function updateTagStatsFromMaps(maps) {&lt;br /&gt;
      for (const map of Array.isArray(maps) ? maps : []) {&lt;br /&gt;
        for (const raw of Array.isArray(map?.tags) ? map.tags : []) {&lt;br /&gt;
          const { text, color } = parseTag(raw);&lt;br /&gt;
          if (!text) continue;&lt;br /&gt;
          const prev = state.tagStats.get(text);&lt;br /&gt;
          if (!prev) state.tagStats.set(text, { count: 1, color: color || &amp;quot;&amp;quot; });&lt;br /&gt;
          else state.tagStats.set(text, { count: prev.count + 1, color: prev.color || color || &amp;quot;&amp;quot; });&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function isTagSelected(tag) {&lt;br /&gt;
      return state.selectedTags.includes(String(tag));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function toggleTag(tag) {&lt;br /&gt;
      const t = String(tag || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      if (!t) return;&lt;br /&gt;
      if (isTagSelected(t)) state.selectedTags = state.selectedTags.filter((x) =&amp;gt; x !== t);&lt;br /&gt;
      else state.selectedTags = [...state.selectedTags, t];&lt;br /&gt;
      renderTagPicker();&lt;br /&gt;
      void load(true);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function clearTags() {&lt;br /&gt;
      if (state.selectedTags.length === 0) return;&lt;br /&gt;
      state.selectedTags = [];&lt;br /&gt;
      renderTagPicker();&lt;br /&gt;
      void load(true);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function renderTagPicker() {&lt;br /&gt;
      tagPickerGroup.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
      const selected = state.selectedTags.slice();&lt;br /&gt;
      const pinned = normalizeTagOptions(config.tagOptions).filter((it) =&amp;gt; !selected.includes(it.text));&lt;br /&gt;
      const entries = [...state.tagStats.entries()];&lt;br /&gt;
      entries.sort((a, b) =&amp;gt; {&lt;br /&gt;
        const ac = a[1]?.count ?? 0;&lt;br /&gt;
        const bc = b[1]?.count ?? 0;&lt;br /&gt;
        if (bc !== ac) return bc - ac;&lt;br /&gt;
        return a[0].localeCompare(b[0], &amp;quot;zh-Hans-CN-u-co-pinyin&amp;quot;);&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      const max = Math.max(0, Number(config.maxTagOptions || 0));&lt;br /&gt;
      const candidates = entries&lt;br /&gt;
        .map(([text, meta]) =&amp;gt; ({ text, color: meta?.color || &amp;quot;&amp;quot; }))&lt;br /&gt;
        .filter((it) =&amp;gt; !selected.includes(it.text) &amp;amp;&amp;amp; !pinned.some((p) =&amp;gt; p.text === it.text))&lt;br /&gt;
        .slice(0, max);&lt;br /&gt;
&lt;br /&gt;
      const renderOne = ({ text, color }) =&amp;gt; {&lt;br /&gt;
        const btn = el(&amp;quot;button&amp;quot;, {&lt;br /&gt;
          class: `mmw-tag mmw-tag-btn${isTagSelected(text) ? &amp;quot; is-active&amp;quot; : &amp;quot;&amp;quot;}`,&lt;br /&gt;
          type: &amp;quot;button&amp;quot;,&lt;br /&gt;
          text,&lt;br /&gt;
          &amp;quot;data-tag&amp;quot;: text,&lt;br /&gt;
        });&lt;br /&gt;
        if (color) {&lt;br /&gt;
          btn.style.borderColor = color;&lt;br /&gt;
          btn.style.color = color;&lt;br /&gt;
          btn.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        btn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; toggleTag(text));&lt;br /&gt;
        tagPickerGroup.append(btn);&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      for (const t of selected) renderOne({ text: t, color: state.tagStats.get(t)?.color || &amp;quot;&amp;quot; });&lt;br /&gt;
      for (const it of pinned) renderOne(it);&lt;br /&gt;
      for (const it of candidates) renderOne(it);&lt;br /&gt;
&lt;br /&gt;
      clearTagsBtn.style.display = state.selectedTags.length &amp;gt; 0 ? &amp;quot;&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function renderCard(map) {&lt;br /&gt;
      const previewSrc = mapUrl(map.preview);&lt;br /&gt;
      const card = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-card&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
      const previewLink = el(&amp;quot;a&amp;quot;, {&lt;br /&gt;
        class: &amp;quot;mmw-preview&amp;quot;,&lt;br /&gt;
        href: detailUrl(map.id),&lt;br /&gt;
        target: &amp;quot;_blank&amp;quot;,&lt;br /&gt;
        rel: &amp;quot;noopener noreferrer&amp;quot;,&lt;br /&gt;
        title: &amp;quot;打开详情&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      previewLink.append(el(&amp;quot;img&amp;quot;, { src: previewSrc, alt: &amp;quot;preview&amp;quot;, loading: &amp;quot;lazy&amp;quot; }));&lt;br /&gt;
&lt;br /&gt;
      const tagsEl = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-tags&amp;quot; });&lt;br /&gt;
      for (const rawTag of Array.isArray(map.tags) ? map.tags : []) {&lt;br /&gt;
        const { text, color } = parseTag(rawTag);&lt;br /&gt;
        if (!text) continue;&lt;br /&gt;
        const tagEl = el(&amp;quot;span&amp;quot;, { class: &amp;quot;mmw-tag&amp;quot;, text });&lt;br /&gt;
        if (color) {&lt;br /&gt;
          tagEl.style.borderColor = color;&lt;br /&gt;
          tagEl.style.color = color;&lt;br /&gt;
          tagEl.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        tagsEl.append(tagEl);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      const nameEl = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-name&amp;quot;, text: String(map.name || &amp;quot;&amp;quot;) });&lt;br /&gt;
      const descEl = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-desc&amp;quot;, text: String(map.desc || &amp;quot;&amp;quot;) });&lt;br /&gt;
&lt;br /&gt;
      const copyBtn = el(&amp;quot;button&amp;quot;, { type: &amp;quot;button&amp;quot;, text: &amp;quot;复制ID&amp;quot; });&lt;br /&gt;
      copyBtn.addEventListener(&amp;quot;click&amp;quot;, async () =&amp;gt; {&lt;br /&gt;
        const id = String(map.id ?? &amp;quot;&amp;quot;);&lt;br /&gt;
        try {&lt;br /&gt;
          await navigator.clipboard.writeText(id);&lt;br /&gt;
          setStatus(`已复制：${id}`);&lt;br /&gt;
          setTimeout(() =&amp;gt; setStatus(&amp;quot;&amp;quot;), 1200);&lt;br /&gt;
        } catch {&lt;br /&gt;
          window.prompt(&amp;quot;复制失败，请手动复制：&amp;quot;, id);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      const dlLink = el(&amp;quot;a&amp;quot;, {&lt;br /&gt;
        href: downloadUrl(map.id),&lt;br /&gt;
        target: &amp;quot;_blank&amp;quot;,&lt;br /&gt;
        rel: &amp;quot;noopener noreferrer&amp;quot;,&lt;br /&gt;
        text: &amp;quot;下载&amp;quot;,&lt;br /&gt;
        title: &amp;quot;下载 .msav&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      const detailLink = el(&amp;quot;a&amp;quot;, {&lt;br /&gt;
        href: detailUrl(map.id),&lt;br /&gt;
        target: &amp;quot;_blank&amp;quot;,&lt;br /&gt;
        rel: &amp;quot;noopener noreferrer&amp;quot;,&lt;br /&gt;
        text: &amp;quot;详情&amp;quot;,&lt;br /&gt;
        title: &amp;quot;打开详情&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      const actions = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-actions&amp;quot; }, copyBtn, dlLink, detailLink);&lt;br /&gt;
      const body = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-body&amp;quot; }, tagsEl, nameEl, descEl, actions);&lt;br /&gt;
&lt;br /&gt;
      card.append(previewLink, body);&lt;br /&gt;
      return card;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    async function fetchPage(begin) {&lt;br /&gt;
      if (state.abort) state.abort.abort();&lt;br /&gt;
      state.abort = new AbortController();&lt;br /&gt;
      const search = buildSearchString(state.keyword, state.selectedTags, state.sort);&lt;br /&gt;
      const url = mapsListUrl(begin, search);&lt;br /&gt;
      const res = await fetch(url, { signal: state.abort.signal, credentials: &amp;quot;omit&amp;quot; });&lt;br /&gt;
      if (!res.ok) throw new Error(`HTTP ${res.status}`);&lt;br /&gt;
      const data = await res.json();&lt;br /&gt;
      if (!Array.isArray(data)) return [];&lt;br /&gt;
      for (const it of data) {&lt;br /&gt;
        if (it &amp;amp;&amp;amp; typeof it === &amp;quot;object&amp;quot; &amp;amp;&amp;amp; &amp;quot;preview&amp;quot; in it) it.preview = mapUrl(it.preview);&lt;br /&gt;
      }&lt;br /&gt;
      return data;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    async function load(reset) {&lt;br /&gt;
      if (state.loading) return;&lt;br /&gt;
      if (reset) {&lt;br /&gt;
        state.begin = 0;&lt;br /&gt;
        state.hasNext = true;&lt;br /&gt;
        state.pagesLoaded = 0;&lt;br /&gt;
        clearGrid();&lt;br /&gt;
      }&lt;br /&gt;
      if (!state.hasNext) return;&lt;br /&gt;
&lt;br /&gt;
      setLoading(true);&lt;br /&gt;
      try {&lt;br /&gt;
        const page = await fetchPage(state.begin);&lt;br /&gt;
        updateTagStatsFromMaps(page);&lt;br /&gt;
        renderTagPicker();&lt;br /&gt;
        state.pagesLoaded += 1;&lt;br /&gt;
        state.begin += page.length;&lt;br /&gt;
        state.hasNext = page.length &amp;gt;= Number(config.pageSize || 15);&lt;br /&gt;
&lt;br /&gt;
        if (state.begin === page.length) grid.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
        const selected = state.selectedTags.slice();&lt;br /&gt;
        const filtered = selected.length === 0&lt;br /&gt;
          ? page&lt;br /&gt;
          : page.filter((m) =&amp;gt; {&lt;br /&gt;
              const texts = mapTagTexts(m);&lt;br /&gt;
              return selected.every((t) =&amp;gt; texts.includes(t));&lt;br /&gt;
            });&lt;br /&gt;
        for (const map of filtered) grid.append(renderCard(map));&lt;br /&gt;
&lt;br /&gt;
        if (grid.childElementCount === 0) grid.append(empty);&lt;br /&gt;
        loadMoreBtn.style.display = state.hasNext ? &amp;quot;&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
        setStatus(state.hasNext ? &amp;quot;&amp;quot; : &amp;quot;没有更多了&amp;quot;);&lt;br /&gt;
      } catch (e) {&lt;br /&gt;
        const msg = (e &amp;amp;&amp;amp; e.message) || String(e);&lt;br /&gt;
        const lower = String(msg || &amp;quot;&amp;quot;).toLowerCase();&lt;br /&gt;
        const maybeCors =&lt;br /&gt;
          lower.includes(&amp;quot;failed to fetch&amp;quot;) ||&lt;br /&gt;
          lower.includes(&amp;quot;networkerror&amp;quot;) ||&lt;br /&gt;
          lower.includes(&amp;quot;load failed&amp;quot;) ||&lt;br /&gt;
          lower.includes(&amp;quot;cors&amp;quot;);&lt;br /&gt;
        setStatus(&lt;br /&gt;
          maybeCors&lt;br /&gt;
            ? &amp;quot;加载失败：无法请求接口（可能是跨域 CORS），请检查 apiBase 是否允许当前 Wiki 域名访问&amp;quot;&lt;br /&gt;
            : `加载失败：${msg}`,&lt;br /&gt;
        );&lt;br /&gt;
      } finally {&lt;br /&gt;
        setLoading(false);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function applyFiltersUI() {&lt;br /&gt;
      setActiveButton(sortGroup, state.sort);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function commitSearch() {&lt;br /&gt;
      const key = String(searchInput.value || &amp;quot;&amp;quot;).replace(/\s+/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
      if (!key) {&lt;br /&gt;
        state.keyword = &amp;quot;&amp;quot;;&lt;br /&gt;
        void load(true);&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      if (isFiveDigits(key)) {&lt;br /&gt;
        safeOpen(detailUrl(key));&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      state.keyword = key;&lt;br /&gt;
      void load(true);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    sortGroup.addEventListener(&amp;quot;click&amp;quot;, (ev) =&amp;gt; {&lt;br /&gt;
      const btn = ev.target &amp;amp;&amp;amp; ev.target.closest &amp;amp;&amp;amp; ev.target.closest(&amp;quot;button[data-value]&amp;quot;);&lt;br /&gt;
      if (!btn) return;&lt;br /&gt;
      state.sort = btn.getAttribute(&amp;quot;data-value&amp;quot;) || &amp;quot;&amp;quot;;&lt;br /&gt;
      applyFiltersUI();&lt;br /&gt;
      void load(true);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    searchBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; commitSearch());&lt;br /&gt;
    clearBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; {&lt;br /&gt;
      searchInput.value = &amp;quot;&amp;quot;;&lt;br /&gt;
      state.keyword = &amp;quot;&amp;quot;;&lt;br /&gt;
      void load(true);&lt;br /&gt;
    });&lt;br /&gt;
    clearTagsBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; clearTags());&lt;br /&gt;
    searchInput.addEventListener(&amp;quot;keydown&amp;quot;, (ev) =&amp;gt; {&lt;br /&gt;
      if (ev.key === &amp;quot;Enter&amp;quot;) commitSearch();&lt;br /&gt;
    });&lt;br /&gt;
    searchInput.addEventListener(&amp;quot;change&amp;quot;, () =&amp;gt; commitSearch());&lt;br /&gt;
    loadMoreBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; void load(false));&lt;br /&gt;
&lt;br /&gt;
    clearGrid();&lt;br /&gt;
    applyFiltersUI();&lt;br /&gt;
    renderTagPicker();&lt;br /&gt;
&lt;br /&gt;
    root.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
    root.append(searchRow, filters, grid, sentinel, footer);&lt;br /&gt;
&lt;br /&gt;
    if (config.enableInfiniteScroll &amp;amp;&amp;amp; &amp;quot;IntersectionObserver&amp;quot; in window) {&lt;br /&gt;
      const io = new IntersectionObserver((entries) =&amp;gt; {&lt;br /&gt;
        for (const entry of entries) {&lt;br /&gt;
          if (!entry.isIntersecting) continue;&lt;br /&gt;
          if (state.loading || !state.hasNext) return;&lt;br /&gt;
          void load(false);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
      io.observe(sentinel);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void load(true);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function initAll(container) {&lt;br /&gt;
    if (!shouldInitOnThisPage()) return;&lt;br /&gt;
    const base = container instanceof Element ? container : document;&lt;br /&gt;
    const nodes = base.querySelectorAll(config.containerSelector);&lt;br /&gt;
    for (const node of nodes) renderWidget(node);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function onReady(fn) {&lt;br /&gt;
    if (document.readyState === &amp;quot;loading&amp;quot;) document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, fn);&lt;br /&gt;
    else fn();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (typeof window !== &amp;quot;undefined&amp;quot; &amp;amp;&amp;amp; window.mw &amp;amp;&amp;amp; typeof window.mw.hook === &amp;quot;function&amp;quot;) {&lt;br /&gt;
    window.mw.hook(&amp;quot;wikipage.content&amp;quot;).add(($content) =&amp;gt; {&lt;br /&gt;
      const root = ($content &amp;amp;&amp;amp; $content[0]) || document;&lt;br /&gt;
      initAll(root);&lt;br /&gt;
    });&lt;br /&gt;
  } else {&lt;br /&gt;
    onReady(() =&amp;gt; initAll(document));&lt;br /&gt;
  }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:Common.js&amp;diff=3491</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:Common.js&amp;diff=3491"/>
		<updated>2026-02-22T01:20:41Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​没力气改映射表错误了，仅仅只是做了unicdoe转中文。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* MediaWiki:Common.js */&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  function fallbackCopy(text) {&lt;br /&gt;
    if (!window.jQuery) return;&lt;br /&gt;
    var $ = window.jQuery;&lt;br /&gt;
    var $temp = $(&#039;&amp;lt;textarea&amp;gt;&#039;);&lt;br /&gt;
    $(&#039;body&#039;).append($temp);&lt;br /&gt;
    $temp.val(text).select();&lt;br /&gt;
    document.execCommand(&#039;copy&#039;);&lt;br /&gt;
    $temp.remove();&lt;br /&gt;
    alert(&#039;复制成功！&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 点击按钮复制内容：&amp;lt;button class=&amp;quot;copy-button&amp;quot; data-text=&amp;quot;...&amp;quot;&amp;gt;复制&amp;lt;/button&amp;gt;&lt;br /&gt;
  if (window.jQuery) {&lt;br /&gt;
    window.jQuery(function ($) {&lt;br /&gt;
      $(document).on(&#039;click&#039;, &#039;.copy-button&#039;, function () {&lt;br /&gt;
        var text = $(this).attr(&#039;data-text&#039;) || &#039;&#039;;&lt;br /&gt;
        if (navigator.clipboard &amp;amp;&amp;amp; navigator.clipboard.writeText) {&lt;br /&gt;
          navigator.clipboard.writeText(text).then(function () {&lt;br /&gt;
            alert(&#039;复制成功！&#039;);&lt;br /&gt;
          }, function () {&lt;br /&gt;
            fallbackCopy(text);&lt;br /&gt;
          });&lt;br /&gt;
        } else {&lt;br /&gt;
          fallbackCopy(text);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Timeless：把 Sidebar 里以 &amp;quot;-- &amp;quot; 开头的条目变成可折叠子项&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    if (mw.config.get(&#039;skin&#039;) !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function initNavTree() {&lt;br /&gt;
      var siteNav = document.getElementById(&#039;mw-site-navigation&#039;);&lt;br /&gt;
      if (!siteNav) return;&lt;br /&gt;
&lt;br /&gt;
      var pNav = siteNav.querySelector(&#039;#p-navigation&#039;);&lt;br /&gt;
      if (!pNav) return;&lt;br /&gt;
&lt;br /&gt;
      var root = pNav.querySelector(&#039;.mw-portlet-body &amp;gt; ul&#039;) ||&lt;br /&gt;
        pNav.querySelector(&#039;ul&#039;);&lt;br /&gt;
      if (!root) return;&lt;br /&gt;
&lt;br /&gt;
      if (root.getAttribute(&#039;data-mdtNav&#039;) === &#039;1&#039;) return;&lt;br /&gt;
      root.setAttribute(&#039;data-mdtNav&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
      var KEY = &#039;mdtNavTreeOpen&#039;;&lt;br /&gt;
      var store = {};&lt;br /&gt;
      try {&lt;br /&gt;
        store = JSON.parse(localStorage.getItem(KEY) || &#039;{}&#039;);&lt;br /&gt;
      } catch (e) {&lt;br /&gt;
        store = {};&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function getKey(li) {&lt;br /&gt;
        if (li &amp;amp;&amp;amp; li.id) return li.id;&lt;br /&gt;
        var a = li ? li.querySelector(&#039;a&#039;) : null;&lt;br /&gt;
        return a ? (a.getAttribute(&#039;href&#039;) || &#039;&#039;) : &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function setStored(li, open) {&lt;br /&gt;
        var k = getKey(li);&lt;br /&gt;
        if (!k) return;&lt;br /&gt;
        store[k] = open;&lt;br /&gt;
        try {&lt;br /&gt;
          localStorage.setItem(KEY, JSON.stringify(store));&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function setOpen(li, open, persist) {&lt;br /&gt;
        li.classList.toggle(&#039;mdtNavOpen&#039;, open);&lt;br /&gt;
        if (persist) setStored(li, open);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function ensureGroup(li) {&lt;br /&gt;
        li.classList.add(&#039;mdtNavGroup&#039;);&lt;br /&gt;
&lt;br /&gt;
        var sub = li.querySelector(&#039;ul.mdtNavSublist&#039;);&lt;br /&gt;
        if (!sub) {&lt;br /&gt;
          sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtNavSublist&#039;;&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var btn = li.querySelector(&#039;button.mdtNavToggle&#039;);&lt;br /&gt;
        if (!btn) {&lt;br /&gt;
          btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtNavToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          li.insertBefore(btn, sub);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var isOpen = li.classList.contains(&#039;mdtNavOpen&#039;);&lt;br /&gt;
            setOpen(li, !isOpen, true);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(!isOpen));&lt;br /&gt;
          });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var k = getKey(li);&lt;br /&gt;
        if (store[k] === true) {&lt;br /&gt;
          li.classList.add(&#039;mdtNavOpen&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return sub;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      var items = Array.prototype.slice.call(root.children);&lt;br /&gt;
      var lastAtDepth = [];&lt;br /&gt;
&lt;br /&gt;
      for (var i = 0; i &amp;lt; items.length; i++) {&lt;br /&gt;
        var li = items[i];&lt;br /&gt;
        if (!li || li.tagName !== &#039;LI&#039;) continue;&lt;br /&gt;
&lt;br /&gt;
        var a = li.querySelector(&#039;a&#039;);&lt;br /&gt;
        if (!a) continue;&lt;br /&gt;
&lt;br /&gt;
        var raw = (a.textContent || &#039;&#039;).trim();&lt;br /&gt;
        var m = raw.match(/^(-{2,})\s*(.*)$/);&lt;br /&gt;
&lt;br /&gt;
        var depth = 0;&lt;br /&gt;
        if (m) {&lt;br /&gt;
          depth = Math.min(Math.floor(m[1].length / 2), 3);&lt;br /&gt;
          a.textContent = m[2];&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        li.classList.add(&#039;mdtNavItem&#039;);&lt;br /&gt;
&lt;br /&gt;
        if (depth &amp;gt; 0 &amp;amp;&amp;amp; lastAtDepth[depth - 1]) {&lt;br /&gt;
          li.classList.add(&#039;mdtNavSubItem&#039;);&lt;br /&gt;
          li.classList.add(&#039;mdtNavDepth&#039; + String(depth));&lt;br /&gt;
          var sublist = ensureGroup(lastAtDepth[depth - 1]);&lt;br /&gt;
          sublist.appendChild(li);&lt;br /&gt;
        } else {&lt;br /&gt;
          depth = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        lastAtDepth[depth] = li;&lt;br /&gt;
        lastAtDepth.length = depth + 1;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      // 当前页面高亮 + 自动展开父级&lt;br /&gt;
      var current = (mw.config.get(&#039;wgPageName&#039;) || &#039;&#039;).replace(/ /g, &#039;_&#039;);&lt;br /&gt;
      var links = pNav.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
&lt;br /&gt;
      function titleFromHref(href) {&lt;br /&gt;
        var t = mw.util.getParamValue(&#039;title&#039;, href);&lt;br /&gt;
        if (t) return t.replace(/ /g, &#039;_&#039;);&lt;br /&gt;
&lt;br /&gt;
        var mark = &#039;/index.php/&#039;;&lt;br /&gt;
        var pos = href.indexOf(mark);&lt;br /&gt;
        if (pos !== -1) {&lt;br /&gt;
          return decodeURIComponent(href.slice(pos + mark.length))&lt;br /&gt;
            .replace(/ /g, &#039;_&#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var j = 0; j &amp;lt; links.length; j++) {&lt;br /&gt;
        var href = links[j].getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
        var page = titleFromHref(href);&lt;br /&gt;
&lt;br /&gt;
        if (page &amp;amp;&amp;amp; page === current) {&lt;br /&gt;
          links[j].classList.add(&#039;mdtNavActive&#039;);&lt;br /&gt;
&lt;br /&gt;
          var n = links[j].parentNode;&lt;br /&gt;
          while (n &amp;amp;&amp;amp; n !== root) {&lt;br /&gt;
            if (n.tagName === &#039;LI&#039; &amp;amp;&amp;amp; n.classList.contains(&#039;mdtNavGroup&#039;)) {&lt;br /&gt;
              setOpen(n, true, false);&lt;br /&gt;
              var btn = n.querySelector(&#039;button.mdtNavToggle&#039;);&lt;br /&gt;
              if (btn) btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
            }&lt;br /&gt;
            n = n.parentNode;&lt;br /&gt;
          }&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, initNavTree);&lt;br /&gt;
    } else {&lt;br /&gt;
      initNavTree();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // 可折叠标题：在标题旁边加一个展开/收起按钮&lt;br /&gt;
  // 用法：把任意标题写成：== 战役区块 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
  // 默认收起：== 战役区块 &amp;lt;span class=&amp;quot;mdtFold mdtFoldClosed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    var skin = String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase();&lt;br /&gt;
    if (skin !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var action = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    if (action === &#039;edit&#039; || action === &#039;submit&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function findHeading(node) {&lt;br /&gt;
      while (node &amp;amp;&amp;amp; node !== document.body) {&lt;br /&gt;
        if (node.nodeType === 1 &amp;amp;&amp;amp; /^H[1-6]$/.test(node.tagName)) return node;&lt;br /&gt;
        node = node.parentNode;&lt;br /&gt;
      }&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var KEY = &#039;mdtFoldSections&#039;;&lt;br /&gt;
    var store = {};&lt;br /&gt;
    try {&lt;br /&gt;
      store = JSON.parse(localStorage.getItem(KEY) || &#039;{}&#039;);&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      store = {};&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function saveStore() {&lt;br /&gt;
      try {&lt;br /&gt;
        localStorage.setItem(KEY, JSON.stringify(store));&lt;br /&gt;
      } catch (e) {}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHeadingBlock(headingEl) {&lt;br /&gt;
      if (!headingEl || !headingEl.parentElement) return headingEl;&lt;br /&gt;
&lt;br /&gt;
      // MediaWiki 新版可能会把 h2 包在 &amp;lt;div class=&amp;quot;mw-heading&amp;quot;&amp;gt; 里。&lt;br /&gt;
      // 如果不处理这个 wrapper，折叠只会影响 wrapper 内部（看起来“没效果”）。&lt;br /&gt;
      var p = headingEl.parentElement;&lt;br /&gt;
      if (p.classList &amp;amp;&amp;amp; p.classList.contains(&#039;mw-heading&#039;)) return p;&lt;br /&gt;
      return headingEl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHeadingLevelFromNode(node) {&lt;br /&gt;
      if (!node || node.nodeType !== 1) return null;&lt;br /&gt;
&lt;br /&gt;
      if (/^H[1-6]$/.test(node.tagName)) {&lt;br /&gt;
        return parseInt(String(node.tagName).slice(1), 10) || 6;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if (node.classList &amp;amp;&amp;amp; node.classList.contains(&#039;mw-heading&#039;)) {&lt;br /&gt;
        var h = node.querySelector(&#039;h1,h2,h3,h4,h5,h6&#039;);&lt;br /&gt;
        if (h &amp;amp;&amp;amp; /^H[1-6]$/.test(h.tagName)) {&lt;br /&gt;
          return parseInt(String(h.tagName).slice(1), 10) || 6;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function initFoldSections(root) {&lt;br /&gt;
      var content = root || document.getElementById(&#039;mw-content-text&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;.mw-parser-output&#039;) ||&lt;br /&gt;
        document.body;&lt;br /&gt;
      if (!content) return;&lt;br /&gt;
&lt;br /&gt;
      var nodes = [];&lt;br /&gt;
      var markers = content.querySelectorAll(&#039;.mdtFold&#039;);&lt;br /&gt;
      var headingNodes = content.querySelectorAll(&#039;h1.mdtFoldHeading,h2.mdtFoldHeading,h3.mdtFoldHeading,h4.mdtFoldHeading,h5.mdtFoldHeading,h6.mdtFoldHeading&#039;);&lt;br /&gt;
      for (var h = 0; h &amp;lt; headingNodes.length; h++) nodes.push(headingNodes[h]);&lt;br /&gt;
      for (var m = 0; m &amp;lt; markers.length; m++) nodes.push(markers[m]);&lt;br /&gt;
      if (!nodes.length) return;&lt;br /&gt;
&lt;br /&gt;
      for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
        (function (nodeOrMarker) {&lt;br /&gt;
          var marker = null;&lt;br /&gt;
          var heading = null;&lt;br /&gt;
&lt;br /&gt;
          if (nodeOrMarker &amp;amp;&amp;amp; nodeOrMarker.nodeType === 1 &amp;amp;&amp;amp; /^H[1-6]$/.test(nodeOrMarker.tagName)) {&lt;br /&gt;
            heading = nodeOrMarker;&lt;br /&gt;
          } else {&lt;br /&gt;
            marker = nodeOrMarker;&lt;br /&gt;
            heading = findHeading(marker);&lt;br /&gt;
          }&lt;br /&gt;
          if (!heading) return;&lt;br /&gt;
&lt;br /&gt;
          // 兼容：如果是通过 h2.mdtFoldHeading 触发，但里面也有 span.mdtFold，&lt;br /&gt;
          // 也要把 marker 当作触发点，这样可以读取默认收起并移除 marker。&lt;br /&gt;
          if (!marker) {&lt;br /&gt;
            marker = heading.querySelector(&#039;.mdtFold&#039;);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          var headingBlock = getHeadingBlock(heading);&lt;br /&gt;
          if (!headingBlock) return;&lt;br /&gt;
&lt;br /&gt;
          if (headingBlock.getAttribute(&#039;data-mdtFoldInit&#039;) === &#039;1&#039;) return;&lt;br /&gt;
          headingBlock.setAttribute(&#039;data-mdtFoldInit&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
          var level = parseInt(String(heading.tagName).slice(1), 10) || 2;&lt;br /&gt;
          var headline = heading.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
&lt;br /&gt;
          // Body: 优先折叠“紧跟着”的图标网格（你这个场景就是 h2 + .mdtIconGrid）。&lt;br /&gt;
          // 也支持手动标记：&amp;lt;div class=&amp;quot;mdtFoldBody&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
          var body = null;&lt;br /&gt;
          var nextEl = headingBlock.nextElementSibling;&lt;br /&gt;
          if (nextEl &amp;amp;&amp;amp; nextEl.classList) {&lt;br /&gt;
            if (nextEl.classList.contains(&#039;mdtFoldBody&#039;) || nextEl.classList.contains(&#039;mdtIconGrid&#039;)) {&lt;br /&gt;
              body = nextEl;&lt;br /&gt;
              body.classList.add(&#039;mdtFoldBody&#039;);&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // 自动模式：把标题后面直到下一个“同级或更高级标题”的所有节点包起来。&lt;br /&gt;
          if (!body) {&lt;br /&gt;
            body = document.createElement(&#039;div&#039;);&lt;br /&gt;
            body.className = &#039;mdtFoldBody&#039;;&lt;br /&gt;
&lt;br /&gt;
            var node = headingBlock.nextSibling;&lt;br /&gt;
            while (node) {&lt;br /&gt;
              var next = node.nextSibling;&lt;br /&gt;
              var nodeLevel = getHeadingLevelFromNode(node);&lt;br /&gt;
              if (nodeLevel !== null &amp;amp;&amp;amp; nodeLevel &amp;lt;= level) break;&lt;br /&gt;
              body.appendChild(node);&lt;br /&gt;
              node = next;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            headingBlock.parentNode.insertBefore(body, node);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Toggle button&lt;br /&gt;
          var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtFoldToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;true&#039;);&lt;br /&gt;
          btn.title = &#039;展开/收起&#039;;&lt;br /&gt;
          btn.textContent = &#039;▾&#039;;&lt;br /&gt;
&lt;br /&gt;
          // Inline style fallback: in case Timeless.css is not loaded yet.&lt;br /&gt;
          btn.style.width = &#039;1.6rem&#039;;&lt;br /&gt;
          btn.style.height = &#039;1.6rem&#039;;&lt;br /&gt;
          btn.style.marginLeft = &#039;0.25rem&#039;;&lt;br /&gt;
          btn.style.border = &#039;0&#039;;&lt;br /&gt;
          btn.style.padding = &#039;0&#039;;&lt;br /&gt;
          btn.style.borderRadius = &#039;10px&#039;;&lt;br /&gt;
          btn.style.display = &#039;inline-flex&#039;;&lt;br /&gt;
          btn.style.alignItems = &#039;center&#039;;&lt;br /&gt;
          btn.style.justifyContent = &#039;center&#039;;&lt;br /&gt;
          btn.style.background = &#039;rgba(0, 175, 137, 0.10)&#039;;&lt;br /&gt;
          btn.style.color = &#039;var(--mdtBrand)&#039;;&lt;br /&gt;
          btn.style.cursor = &#039;pointer&#039;;&lt;br /&gt;
          btn.style.fontFamily = &#039;inherit&#039;;&lt;br /&gt;
          btn.style.fontSize = &#039;16px&#039;;&lt;br /&gt;
          btn.style.fontWeight = &#039;700&#039;;&lt;br /&gt;
          btn.style.lineHeight = &#039;1&#039;;&lt;br /&gt;
          btn.style.boxShadow = &#039;none&#039;;&lt;br /&gt;
          btn.style.outline = &#039;none&#039;;&lt;br /&gt;
          btn.style.appearance = &#039;none&#039;;&lt;br /&gt;
          btn.style.webkitAppearance = &#039;none&#039;;&lt;br /&gt;
&lt;br /&gt;
          if (headline) {&lt;br /&gt;
            headline.classList.add(&#039;mdtFoldHeadline&#039;);&lt;br /&gt;
            headline.appendChild(btn);&lt;br /&gt;
          } else {&lt;br /&gt;
            var wrap = document.createElement(&#039;span&#039;);&lt;br /&gt;
            wrap.className = &#039;mdtFoldHeadline&#039;;&lt;br /&gt;
&lt;br /&gt;
            while (heading.firstChild) {&lt;br /&gt;
              wrap.appendChild(heading.firstChild);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            heading.appendChild(wrap);&lt;br /&gt;
            wrap.appendChild(btn);&lt;br /&gt;
            headline = wrap;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Marker/heading default state&lt;br /&gt;
          var defaultClosed = false;&lt;br /&gt;
          if (marker &amp;amp;&amp;amp; marker.classList &amp;amp;&amp;amp; marker.classList.contains(&#039;mdtFoldClosed&#039;)) {&lt;br /&gt;
            defaultClosed = true;&lt;br /&gt;
          }&lt;br /&gt;
          if (heading.classList &amp;amp;&amp;amp; heading.classList.contains(&#039;mdtFoldClosed&#039;)) {&lt;br /&gt;
            defaultClosed = true;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          // Remove marker to avoid extra spacing&lt;br /&gt;
          if (marker &amp;amp;&amp;amp; marker.parentNode) marker.parentNode.removeChild(marker);&lt;br /&gt;
&lt;br /&gt;
          var page = (mw.config.get(&#039;wgPageName&#039;) || &#039;&#039;).replace(/ /g, &#039;_&#039;);&lt;br /&gt;
          var id = &#039;&#039;;&lt;br /&gt;
          if (headline &amp;amp;&amp;amp; headline.id) id = headline.id;&lt;br /&gt;
          if (!id) id = (heading.textContent || &#039;&#039;).trim();&lt;br /&gt;
          var storageKey = page + &#039;::&#039; + id;&lt;br /&gt;
&lt;br /&gt;
          function setCollapsed(collapsed, persist) {&lt;br /&gt;
            headingBlock.classList.toggle(&#039;mdtFoldCollapsed&#039;, collapsed);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(!collapsed));&lt;br /&gt;
            btn.textContent = collapsed ? &#039;▸&#039; : &#039;▾&#039;;&lt;br /&gt;
            if (body) {&lt;br /&gt;
              body.classList.toggle(&#039;mdtFoldHidden&#039;, collapsed);&lt;br /&gt;
              // Ensure it works even if CSS is missing/cached.&lt;br /&gt;
              body.style.display = collapsed ? &#039;none&#039; : &#039;&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            if (persist) {&lt;br /&gt;
              store[storageKey] = collapsed;&lt;br /&gt;
              saveStore();&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          var collapsed = false;&lt;br /&gt;
          if (typeof store[storageKey] === &#039;boolean&#039;) {&lt;br /&gt;
            collapsed = store[storageKey];&lt;br /&gt;
          } else if (defaultClosed) {&lt;br /&gt;
            collapsed = true;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          setCollapsed(collapsed, false);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var isCollapsed = headingBlock.classList.contains(&#039;mdtFoldCollapsed&#039;);&lt;br /&gt;
            setCollapsed(!isCollapsed, true);&lt;br /&gt;
          });&lt;br /&gt;
        })(nodes[i]);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function runOnPage() {&lt;br /&gt;
      initFoldSections(document.getElementById(&#039;mw-content-text&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;.mw-parser-output&#039;) ||&lt;br /&gt;
        document.body);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // MediaWiki 推荐：内容渲染/替换后触发（兼容预览、部分皮肤/插件）。&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
        initFoldSections($content &amp;amp;&amp;amp; $content[0] ? $content[0] : null);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, runOnPage);&lt;br /&gt;
    } else {&lt;br /&gt;
      runOnPage();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  /* Timeless: 左/右侧栏抽屉 + 首页按钮 */&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    if (mw.config.get(&#039;skin&#039;) !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    function onReady(fn) {&lt;br /&gt;
      if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
        document.addEventListener(&#039;DOMContentLoaded&#039;, fn);&lt;br /&gt;
      } else {&lt;br /&gt;
        fn();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ICON_HOME =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var ICON_MENU =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var ICON_GEAR =&lt;br /&gt;
      &#039;&amp;lt;svg viewBox=&amp;quot;0 0 24 24&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M19.14 12.94c.04-.31.06-.63.06-.94s-.02-.63-.06-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.6-.22l-2.39.96c-.5-.38-1.04-.7-1.63-.94l-.36-2.54A.5.5 0 0 0 13.9 2h-3.8a.5.5 0 0 0-.49.42l-.36 2.54c-.59.24-1.13.56-1.63.94l-2.39-.96a.5.5 0 0 0-.6.22L2.71 8.48a.5.5 0 0 0 .12.64l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94L2.83 14.52a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.31.6.22l2.39-.96c.5.38 1.04.7 1.63.94l.36 2.54c.05.24.25.42.49.42h3.8c.24 0 .44-.18.49-.42l.36-2.54c.59-.24 1.13-.56 1.63-.94l2.39.96c.22.09.47 0 .6-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58zM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    function wrapIcon(svg) {&lt;br /&gt;
      var span = document.createElement(&#039;span&#039;);&lt;br /&gt;
      span.className = &#039;mdtDockIcon&#039;;&lt;br /&gt;
      span.innerHTML = svg;&lt;br /&gt;
      return span;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    onReady(function () {&lt;br /&gt;
      if (document.getElementById(&#039;mdtDockLeft&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
      var siteNav = document.getElementById(&#039;mw-site-navigation&#039;);&lt;br /&gt;
      var relatedNav = document.getElementById(&#039;mw-related-navigation&#039;);&lt;br /&gt;
      if (!siteNav &amp;amp;&amp;amp; !relatedNav) return;&lt;br /&gt;
&lt;br /&gt;
      document.body.classList.add(&#039;mdtDockEnabled&#039;);&lt;br /&gt;
&lt;br /&gt;
      var backdrop = document.createElement(&#039;div&#039;);&lt;br /&gt;
      backdrop.id = &#039;mdtDockBackdrop&#039;;&lt;br /&gt;
&lt;br /&gt;
      function syncBackdrop() {&lt;br /&gt;
        var open =&lt;br /&gt;
          document.body.classList.contains(&#039;mdtDockNavOpen&#039;) ||&lt;br /&gt;
          document.body.classList.contains(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
        backdrop.classList.toggle(&#039;is-active&#039;, open);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      function closeAll() {&lt;br /&gt;
        document.body.classList.remove(&#039;mdtDockNavOpen&#039;, &#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
        syncBackdrop();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      backdrop.addEventListener(&#039;click&#039;, closeAll);&lt;br /&gt;
      document.addEventListener(&#039;keydown&#039;, function (e) {&lt;br /&gt;
        if (e.key === &#039;Escape&#039;) closeAll();&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 左侧：홈 + 汉堡&lt;br /&gt;
      var left = document.createElement(&#039;div&#039;);&lt;br /&gt;
      left.id = &#039;mdtDockLeft&#039;;&lt;br /&gt;
&lt;br /&gt;
      var home = document.createElement(&#039;a&#039;);&lt;br /&gt;
      home.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
      home.href = mw.util.getUrl(&#039;首页&#039;); &lt;br /&gt;
      home.title = &#039;首页&#039;;&lt;br /&gt;
      home.setAttribute(&#039;aria-label&#039;, &#039;首页&#039;);&lt;br /&gt;
      home.appendChild(wrapIcon(ICON_HOME));&lt;br /&gt;
      left.appendChild(home);&lt;br /&gt;
&lt;br /&gt;
      if (siteNav) {&lt;br /&gt;
        var navBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
        navBtn.type = &#039;button&#039;;&lt;br /&gt;
        navBtn.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
        navBtn.title = &#039;导航&#039;;&lt;br /&gt;
        navBtn.setAttribute(&#039;aria-label&#039;, &#039;导航&#039;);&lt;br /&gt;
        navBtn.appendChild(wrapIcon(ICON_MENU));&lt;br /&gt;
        navBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
          var nowOpen = document.body.classList.toggle(&#039;mdtDockNavOpen&#039;);&lt;br /&gt;
          if (nowOpen) document.body.classList.remove(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
          syncBackdrop();&lt;br /&gt;
        });&lt;br /&gt;
        left.appendChild(navBtn);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
// 右侧：齿轮&lt;br /&gt;
var right = document.createElement(&#039;div&#039;);&lt;br /&gt;
right.id = &#039;mdtDockRight&#039;;&lt;br /&gt;
&lt;br /&gt;
if (relatedNav) {&lt;br /&gt;
  var toolsBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
  toolsBtn.type = &#039;button&#039;;&lt;br /&gt;
  toolsBtn.className = &#039;mdtDockBtn&#039;;&lt;br /&gt;
  toolsBtn.title = &#039;页面工具&#039;;&lt;br /&gt;
  toolsBtn.setAttribute(&#039;aria-label&#039;, &#039;页面工具&#039;);&lt;br /&gt;
  toolsBtn.appendChild(wrapIcon(ICON_GEAR));&lt;br /&gt;
  toolsBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
    var nowOpen = document.body.classList.toggle(&#039;mdtDockToolsOpen&#039;);&lt;br /&gt;
    if (nowOpen) document.body.classList.remove(&#039;mdtDockNavOpen&#039;);&lt;br /&gt;
    syncBackdrop();&lt;br /&gt;
  });&lt;br /&gt;
  left.appendChild(toolsBtn);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.body.appendChild(backdrop);&lt;br /&gt;
document.body.appendChild(left);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      document.body.appendChild(backdrop);&lt;br /&gt;
      document.body.appendChild(left);&lt;br /&gt;
      document.body.appendChild(right);&lt;br /&gt;
      syncBackdrop();&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  function isTimeless() {&lt;br /&gt;
    try {&lt;br /&gt;
      return String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase() === &#039;timeless&#039;;&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isViewMode() {&lt;br /&gt;
    var a = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    return a === &#039;view&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isMobileUA() {&lt;br /&gt;
    var ua = String(navigator.userAgent || &#039;&#039;);&lt;br /&gt;
    return /Mobi|Android|iPhone|iPad|iPod/i.test(ua);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeText(text) {&lt;br /&gt;
    return String(text || &#039;&#039;)&lt;br /&gt;
      .replace(/\s+/g, &#039; &#039;)&lt;br /&gt;
      .replace(/[▸▾]/g, &#039;&#039;)&lt;br /&gt;
      .trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function collectGroups(root) {&lt;br /&gt;
    var nodes = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    var groups = [];&lt;br /&gt;
    var current = null;&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
      var h = nodes[i];&lt;br /&gt;
      if (!h) continue;&lt;br /&gt;
&lt;br /&gt;
      var id = h.id || &#039;&#039;;&lt;br /&gt;
      if (!id) continue;&lt;br /&gt;
&lt;br /&gt;
      var text = normalizeText(h.textContent);&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
&lt;br /&gt;
      if (h.tagName === &#039;H2&#039;) {&lt;br /&gt;
        current = { id: id, text: text, children: [] };&lt;br /&gt;
        groups.push(current);&lt;br /&gt;
      } else {&lt;br /&gt;
        if (!current) continue;&lt;br /&gt;
        current.children.push({ id: id, text: text });&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return groups;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function flattenIds(groups) {&lt;br /&gt;
    var ids = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      ids.push(groups[i].id);&lt;br /&gt;
      var children = groups[i].children || [];&lt;br /&gt;
      for (var j = 0; j &amp;lt; children.length; j++) {&lt;br /&gt;
        ids.push(children[j].id);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return ids;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildPanel(groups) {&lt;br /&gt;
    var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
    wrap.id = &#039;mdtFloatToc&#039;;&lt;br /&gt;
    wrap.className = &#039;mdtFloatToc&#039;;&lt;br /&gt;
&lt;br /&gt;
    wrap.innerHTML =&lt;br /&gt;
      &amp;quot;&amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocBtn&#039; aria-label=&#039;目录&#039;&amp;gt;≡&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;&amp;lt;div class=&#039;mdtFloatTocPanel&#039; role=&#039;dialog&#039; aria-label=&#039;目录&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;div class=&#039;mdtFloatTocHead&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocTop&#039;&amp;gt;&amp;lt;span aria-hidden=&#039;true&#039;&amp;gt;↑&amp;lt;/span&amp;gt;返回顶部&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;div class=&#039;mdtFloatTocTitle&#039;&amp;gt;目录&amp;lt;/div&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;    &amp;lt;button type=&#039;button&#039; class=&#039;mdtFloatTocClose&#039; aria-label=&#039;关闭&#039;&amp;gt;✕&amp;lt;/button&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;/div&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;  &amp;lt;ul class=&#039;mdtFloatTocList&#039;&amp;gt;&amp;lt;/ul&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var ul = wrap.querySelector(&#039;.mdtFloatTocList&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      (function (g) {&lt;br /&gt;
        var li = document.createElement(&#039;li&#039;);&lt;br /&gt;
        li.className = &#039;mdtFloatTocItem mdtFloatTocGroup&#039;;&lt;br /&gt;
&lt;br /&gt;
        var row = document.createElement(&#039;div&#039;);&lt;br /&gt;
        row.className = &#039;mdtFloatTocRow&#039;;&lt;br /&gt;
&lt;br /&gt;
        var a = document.createElement(&#039;a&#039;);&lt;br /&gt;
        a.href = &#039;#&#039; + encodeURIComponent(g.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
        a.textContent = g.text;&lt;br /&gt;
        row.appendChild(a);&lt;br /&gt;
&lt;br /&gt;
        if (g.children &amp;amp;&amp;amp; g.children.length) {&lt;br /&gt;
          var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
          btn.type = &#039;button&#039;;&lt;br /&gt;
          btn.className = &#039;mdtFloatTocGroupToggle&#039;;&lt;br /&gt;
          btn.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          btn.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          btn.textContent = &#039;▸&#039;;&lt;br /&gt;
          row.appendChild(btn);&lt;br /&gt;
&lt;br /&gt;
          var sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtFloatTocSublist&#039;;&lt;br /&gt;
&lt;br /&gt;
          for (var j = 0; j &amp;lt; g.children.length; j++) {&lt;br /&gt;
            var c = g.children[j];&lt;br /&gt;
            var cli = document.createElement(&#039;li&#039;);&lt;br /&gt;
            cli.className = &#039;mdtFloatTocItem&#039;;&lt;br /&gt;
            cli.innerHTML = &amp;quot;&amp;lt;a href=&#039;#&amp;quot; + encodeURIComponent(c.id).replace(/%2F/g, &#039;/&#039;) + &amp;quot;&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
              mw.html.escape(c.text) + &amp;quot;&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
            sub.appendChild(cli);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          li.appendChild(row);&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
&lt;br /&gt;
          btn.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var open = li.classList.toggle(&#039;mdtFloatTocGroupOpen&#039;);&lt;br /&gt;
            btn.setAttribute(&#039;aria-expanded&#039;, String(open));&lt;br /&gt;
            btn.textContent = open ? &#039;▾&#039; : &#039;▸&#039;;&lt;br /&gt;
          });&lt;br /&gt;
        } else {&lt;br /&gt;
          li.appendChild(row);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ul.appendChild(li);&lt;br /&gt;
      })(groups[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function openPanel(open) {&lt;br /&gt;
      wrap.classList.toggle(&#039;mdtFloatTocOpen&#039;, open);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocBtn&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(true);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocClose&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    wrap.querySelector(&#039;.mdtFloatTocTop&#039;).addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
      window.scrollTo({ top: 0, behavior: &#039;smooth&#039; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Click a toc item -&amp;gt; close + smooth scroll&lt;br /&gt;
    wrap.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      var a = ev.target &amp;amp;&amp;amp; ev.target.closest ? ev.target.closest(&#039;a&#039;) : null;&lt;br /&gt;
      if (!a) return;&lt;br /&gt;
      var href = a.getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
      if (href.charAt(0) !== &#039;#&#039;) return;&lt;br /&gt;
&lt;br /&gt;
      ev.preventDefault();&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
&lt;br /&gt;
      var id = decodeURIComponent(href.slice(1));&lt;br /&gt;
      var target = document.getElementById(id);&lt;br /&gt;
      if (target) {&lt;br /&gt;
        target.scrollIntoView({ behavior: &#039;smooth&#039;, block: &#039;start&#039; });&lt;br /&gt;
        history.replaceState(null, &#039;&#039;, &#039;#&#039; + encodeURIComponent(id));&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Close when tapping outside&lt;br /&gt;
    document.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      if (!wrap.classList.contains(&#039;mdtFloatTocOpen&#039;)) return;&lt;br /&gt;
      if (wrap.contains(ev.target)) return;&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Highlight active heading&lt;br /&gt;
    var linkById = {};&lt;br /&gt;
    var links = wrap.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
    for (var k = 0; k &amp;lt; links.length; k++) {&lt;br /&gt;
      var id2 = decodeURIComponent((links[k].getAttribute(&#039;href&#039;) || &#039;&#039;).slice(1));&lt;br /&gt;
      linkById[id2] = links[k];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ids = flattenIds(groups);&lt;br /&gt;
    var ticking = false;&lt;br /&gt;
    function updateActive() {&lt;br /&gt;
      ticking = false;&lt;br /&gt;
&lt;br /&gt;
      var bestId = &#039;&#039;;&lt;br /&gt;
      var bestTop = -Infinity;&lt;br /&gt;
      for (var i2 = 0; i2 &amp;lt; ids.length; i2++) {&lt;br /&gt;
        var el = document.getElementById(ids[i2]);&lt;br /&gt;
        if (!el) continue;&lt;br /&gt;
        var rect = el.getBoundingClientRect();&lt;br /&gt;
        if (rect.top &amp;lt;= 120 &amp;amp;&amp;amp; rect.top &amp;gt; bestTop) {&lt;br /&gt;
          bestTop = rect.top;&lt;br /&gt;
          bestId = ids[i2];&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var idKey in linkById) {&lt;br /&gt;
        linkById[idKey].classList.toggle(&#039;mdtFloatTocActive&#039;, idKey === bestId);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    window.addEventListener(&#039;scroll&#039;, function () {&lt;br /&gt;
      if (ticking) return;&lt;br /&gt;
      ticking = true;&lt;br /&gt;
      window.requestAnimationFrame(updateActive);&lt;br /&gt;
    }, { passive: true });&lt;br /&gt;
&lt;br /&gt;
    return wrap;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function ensureHeadingIds(root) {&lt;br /&gt;
    var headings = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; headings.length; i++) {&lt;br /&gt;
      var h = headings[i];&lt;br /&gt;
      if (h.id) continue;&lt;br /&gt;
      var hl = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
      if (hl &amp;amp;&amp;amp; hl.id) h.id = hl.id;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function initFloatToc($content) {&lt;br /&gt;
    if (!isTimeless() || !isViewMode() || !isMobileUA()) return;&lt;br /&gt;
&lt;br /&gt;
    var content = $content &amp;amp;&amp;amp; $content[0] ? $content[0] : null;&lt;br /&gt;
    var root = content || document.querySelector(&#039;.mw-parser-output&#039;) || document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
    if (!root) return;&lt;br /&gt;
&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatToc&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    ensureHeadingIds(root);&lt;br /&gt;
    var groups = collectGroups(root);&lt;br /&gt;
    if (!groups.length) return;&lt;br /&gt;
&lt;br /&gt;
    document.body.appendChild(buildPanel(groups));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;, &#039;mediawiki.html&#039;]).then(function () {&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(initFloatToc);&lt;br /&gt;
    }&lt;br /&gt;
    initFloatToc(null);&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
  MDT Float TOC (desktop: dock to top-right gutter, default open)&lt;br /&gt;
  Paste this whole file into: MediaWiki:Common.js (very bottom)&lt;br /&gt;
*/&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  var DESKTOP_MIN_WIDTH = 1000;&lt;br /&gt;
  var GAP_PX = 12;&lt;br /&gt;
  var FALLBACK_TOP_REM = 4.1;&lt;br /&gt;
&lt;br /&gt;
  function isViewMode() {&lt;br /&gt;
    try {&lt;br /&gt;
      return String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase() === &#039;view&#039;;&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isDesktop() {&lt;br /&gt;
    try {&lt;br /&gt;
      return (&lt;br /&gt;
        window.matchMedia &amp;amp;&amp;amp;&lt;br /&gt;
        window.matchMedia(&#039;(min-width: &#039; + String(DESKTOP_MIN_WIDTH) + &#039;px)&#039;).matches&lt;br /&gt;
      );&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function remToPx(rem) {&lt;br /&gt;
    var fs = 16;&lt;br /&gt;
    try {&lt;br /&gt;
      fs = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;&lt;br /&gt;
    } catch (e) {}&lt;br /&gt;
    return rem * fs;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getDockTopPx() {&lt;br /&gt;
    var dock = document.getElementById(&#039;mdtDockLeft&#039;) || document.getElementById(&#039;mdtDockRight&#039;);&lt;br /&gt;
    if (dock &amp;amp;&amp;amp; dock.getBoundingClientRect) {&lt;br /&gt;
      return Math.round(dock.getBoundingClientRect().top);&lt;br /&gt;
    }&lt;br /&gt;
    return Math.round(remToPx(FALLBACK_TOP_REM));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeText(text) {&lt;br /&gt;
    return String(text || &#039;&#039;)&lt;br /&gt;
      .replace(/\s+/g, &#039; &#039;)&lt;br /&gt;
      .replace(/[▸▾]/g, &#039;&#039;)&lt;br /&gt;
      .trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function ensureHeadingIds(root) {&lt;br /&gt;
    var headings = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    for (var i = 0; i &amp;lt; headings.length; i++) {&lt;br /&gt;
      var h = headings[i];&lt;br /&gt;
      if (!h || h.id) continue;&lt;br /&gt;
      var hl = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
      if (hl &amp;amp;&amp;amp; hl.id) h.id = hl.id;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function shouldSkipHeading(h) {&lt;br /&gt;
    if (!h) return true;&lt;br /&gt;
    if (!h.id) return true;&lt;br /&gt;
    if (h.closest(&#039;#mw-site-navigation, #mw-related-navigation, .mw-portlet, .mdtRightRail&#039;)) return true;&lt;br /&gt;
    return false;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function collectGroups(root) {&lt;br /&gt;
    var nodes = root.querySelectorAll(&#039;h2, h3&#039;);&lt;br /&gt;
    var groups = [];&lt;br /&gt;
    var current = null;&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; nodes.length; i++) {&lt;br /&gt;
      var h = nodes[i];&lt;br /&gt;
      if (shouldSkipHeading(h)) continue;&lt;br /&gt;
&lt;br /&gt;
      var id = h.id;&lt;br /&gt;
  var headline = h.querySelector(&#039;.mw-headline&#039;);&lt;br /&gt;
  var text = normalizeText(headline ? headline.textContent : h.textContent);&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
&lt;br /&gt;
      if (h.tagName === &#039;H2&#039;) {&lt;br /&gt;
        current = { id: id, text: text, children: [] };&lt;br /&gt;
        groups.push(current);&lt;br /&gt;
      } else {&lt;br /&gt;
        if (!current) continue;&lt;br /&gt;
        current.children.push({ id: id, text: text });&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return groups;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function flattenIds(groups) {&lt;br /&gt;
    var ids = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      ids.push(groups[i].id);&lt;br /&gt;
      var children = groups[i].children || [];&lt;br /&gt;
      for (var j = 0; j &amp;lt; children.length; j++) ids.push(children[j].id);&lt;br /&gt;
    }&lt;br /&gt;
    return ids;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function injectCssOnce() {&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatTocStyle&#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    var css = [&lt;br /&gt;
      &#039;#mw-content-text .mw-headline{scroll-margin-top:5rem;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* wrapper (mobile default: bottom-right) */&lt;br /&gt;
      &#039;#mdtFloatToc{position:fixed;right:0.9rem;bottom:1.1rem;top:auto;z-index:9999;font-family:inherit;display:block !important;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* open button */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocBtn{width:3rem;height:3rem;border-radius:999px;border:1px solid rgba(255,255,255,0.14);background:rgba(0,0,0,0.70);color:rgba(255,255,255,0.92);box-shadow:0 12px 28px rgba(0,0,0,0.28);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:900;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocBtn:hover{border-color:rgba(0,207,160,0.60);box-shadow:0 12px 28px rgba(0,0,0,0.28),0 0 0 3px rgba(0,207,160,0.18);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc.mdtFloatTocOpen .mdtFloatTocBtn{opacity:0;pointer-events:none;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* panel (mobile default: popup) */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocPanel{position:absolute;right:0;bottom:3.75rem;width:min(22rem,88vw);max-height:min(70vh,34rem);overflow:auto;padding:0.85rem 0.9rem;border-radius:16px;background:rgba(36,46,45,0.92);border:1px solid rgba(255,255,255,0.14);box-shadow:0 18px 44px rgba(0,0,0,0.32);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:rgba(255,255,255,0.92);display:none;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc.mdtFloatTocOpen .mdtFloatTocPanel{display:block;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* head */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocHead{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;padding:0 0 0.55rem 0;margin:0 0 0.6rem 0;border-bottom:1px solid rgba(255,255,255,0.10);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTitle{font-weight:900;opacity:0.9;letter-spacing:0.06em;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTop,#mdtFloatToc .mdtFloatTocClose{border:0;background:transparent;color:inherit;cursor:pointer;padding:0;font-family:inherit;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocTop{display:inline-flex;align-items:center;gap:0.55rem;font-weight:900;color:var(--mdtBrand2,#00cfa0);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocClose{width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.06);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocClose:hover{background:rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* list */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocList{list-style:none;margin:0;padding:0 0 0 0.85rem;border-left:1px solid rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocRow{display:flex;align-items:center;gap:0.35rem;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem{margin:0.18rem 0;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a,#mdtFloatToc .mdtFloatTocItem a:visited{color:rgba(255,255,255,0.86);text-decoration:none;font-weight:750;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a:hover{color:var(--mdtBrand2,#00cfa0);text-decoration:underline;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocItem a.mdtFloatTocActive{color:var(--mdtBrand2,#00cfa0);text-decoration:underline;}&#039;,&lt;br /&gt;
&lt;br /&gt;
      /* sub list */&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroupToggle{border:0;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.80);cursor:pointer;padding:0;width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroupToggle:hover{background:rgba(255,255,255,0.12);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroup.mdtFloatTocGroupOpen .mdtFloatTocGroupToggle{color:var(--mdtBrand2,#00cfa0);}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocSublist{list-style:none;margin:0.35rem 0 0.25rem;padding:0 0 0 0.85rem;border-left:1px solid rgba(255,255,255,0.12);display:none;}&#039;,&lt;br /&gt;
      &#039;#mdtFloatToc .mdtFloatTocGroup.mdtFloatTocGroupOpen .mdtFloatTocSublist{display:block;}&#039;&lt;br /&gt;
    ].join(&#039;\n&#039;);&lt;br /&gt;
&lt;br /&gt;
    var style = document.createElement(&#039;style&#039;);&lt;br /&gt;
    style.id = &#039;mdtFloatTocStyle&#039;;&lt;br /&gt;
    style.type = &#039;text/css&#039;;&lt;br /&gt;
    style.textContent = css;&lt;br /&gt;
    document.head.appendChild(style);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function applyDesktopDock(wrap) {&lt;br /&gt;
    if (!wrap) return;&lt;br /&gt;
    var panel = wrap.querySelector(&#039;.mdtFloatTocPanel&#039;);&lt;br /&gt;
    if (!panel) return;&lt;br /&gt;
&lt;br /&gt;
    if (!isDesktop()) {&lt;br /&gt;
      wrap.style.top = &#039;&#039;;&lt;br /&gt;
      wrap.style.right = &#039;&#039;;&lt;br /&gt;
      wrap.style.bottom = &#039;&#039;;&lt;br /&gt;
      panel.style.position = &#039;&#039;;&lt;br /&gt;
      panel.style.top = &#039;&#039;;&lt;br /&gt;
      panel.style.right = &#039;&#039;;&lt;br /&gt;
      panel.style.bottom = &#039;&#039;;&lt;br /&gt;
      panel.style.left = &#039;&#039;;&lt;br /&gt;
      panel.style.width = &#039;&#039;;&lt;br /&gt;
      panel.style.maxHeight = &#039;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var topPx = getDockTopPx();&lt;br /&gt;
    wrap.style.top = String(topPx) + &#039;px&#039;;&lt;br /&gt;
    wrap.style.right = String(GAP_PX) + &#039;px&#039;;&lt;br /&gt;
    wrap.style.bottom = &#039;auto&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Fit into the right gutter: don&#039;t cover the white content card&lt;br /&gt;
    var content = document.getElementById(&#039;mw-content&#039;) || document.getElementById(&#039;content&#039;);&lt;br /&gt;
    if (!content || !content.getBoundingClientRect) return;&lt;br /&gt;
&lt;br /&gt;
    var rect = content.getBoundingClientRect();&lt;br /&gt;
    var leftPx = Math.round(rect.right + GAP_PX);&lt;br /&gt;
    var available = Math.round(window.innerWidth - leftPx - GAP_PX);&lt;br /&gt;
&lt;br /&gt;
    // No right gutter -&amp;gt; keep mobile popup style&lt;br /&gt;
    if (available &amp;lt; 220) return;&lt;br /&gt;
&lt;br /&gt;
  panel.style.position = &#039;fixed&#039;;&lt;br /&gt;
  panel.style.top = String(topPx) + &#039;px&#039;;&lt;br /&gt;
  panel.style.right = String(GAP_PX) + &#039;px&#039;;&lt;br /&gt;
  panel.style.bottom = &#039;auto&#039;;&lt;br /&gt;
  panel.style.left = String(leftPx) + &#039;px&#039;;&lt;br /&gt;
  panel.style.width = &#039;auto&#039;;&lt;br /&gt;
  panel.style.maxHeight = &#039;calc(100vh - &#039; + String(topPx + GAP_PX) + &#039;px)&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Default open once per page load&lt;br /&gt;
    if (wrap.getAttribute(&#039;data-mdtDefaultOpen&#039;) !== &#039;1&#039;) {&lt;br /&gt;
      wrap.classList.add(&#039;mdtFloatTocOpen&#039;);&lt;br /&gt;
      wrap.setAttribute(&#039;data-mdtDefaultOpen&#039;, &#039;1&#039;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildPanel(groups) {&lt;br /&gt;
    injectCssOnce();&lt;br /&gt;
&lt;br /&gt;
    var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
    wrap.id = &#039;mdtFloatToc&#039;;&lt;br /&gt;
    wrap.className = &#039;mdtFloatToc&#039;;&lt;br /&gt;
&lt;br /&gt;
    var openBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    openBtn.type = &#039;button&#039;;&lt;br /&gt;
    openBtn.className = &#039;mdtFloatTocBtn&#039;;&lt;br /&gt;
    openBtn.setAttribute(&#039;aria-label&#039;, &#039;目录&#039;);&lt;br /&gt;
    openBtn.textContent = &#039;≡&#039;;&lt;br /&gt;
    wrap.appendChild(openBtn);&lt;br /&gt;
&lt;br /&gt;
    var panel = document.createElement(&#039;div&#039;);&lt;br /&gt;
    panel.className = &#039;mdtFloatTocPanel&#039;;&lt;br /&gt;
    panel.setAttribute(&#039;role&#039;, &#039;dialog&#039;);&lt;br /&gt;
    panel.setAttribute(&#039;aria-label&#039;, &#039;目录&#039;);&lt;br /&gt;
    wrap.appendChild(panel);&lt;br /&gt;
&lt;br /&gt;
    var head = document.createElement(&#039;div&#039;);&lt;br /&gt;
    head.className = &#039;mdtFloatTocHead&#039;;&lt;br /&gt;
    panel.appendChild(head);&lt;br /&gt;
&lt;br /&gt;
    var topBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    topBtn.type = &#039;button&#039;;&lt;br /&gt;
    topBtn.className = &#039;mdtFloatTocTop&#039;;&lt;br /&gt;
    topBtn.textContent = &#039;↑ 返回顶部&#039;;&lt;br /&gt;
    head.appendChild(topBtn);&lt;br /&gt;
&lt;br /&gt;
    var title = document.createElement(&#039;div&#039;);&lt;br /&gt;
    title.className = &#039;mdtFloatTocTitle&#039;;&lt;br /&gt;
    title.textContent = &#039;目录&#039;;&lt;br /&gt;
    head.appendChild(title);&lt;br /&gt;
&lt;br /&gt;
    var closeBtn = document.createElement(&#039;button&#039;);&lt;br /&gt;
    closeBtn.type = &#039;button&#039;;&lt;br /&gt;
    closeBtn.className = &#039;mdtFloatTocClose&#039;;&lt;br /&gt;
    closeBtn.setAttribute(&#039;aria-label&#039;, &#039;关闭&#039;);&lt;br /&gt;
    closeBtn.textContent = &#039;X&#039;;&lt;br /&gt;
    head.appendChild(closeBtn);&lt;br /&gt;
&lt;br /&gt;
    var ul = document.createElement(&#039;ul&#039;);&lt;br /&gt;
    ul.className = &#039;mdtFloatTocList&#039;;&lt;br /&gt;
    panel.appendChild(ul);&lt;br /&gt;
&lt;br /&gt;
    function openPanel(open) {&lt;br /&gt;
      wrap.classList.toggle(&#039;mdtFloatTocOpen&#039;, open);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    openBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(true);&lt;br /&gt;
      applyDesktopDock(wrap);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    closeBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    topBtn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
      if (!isDesktop()) openPanel(false);&lt;br /&gt;
      window.scrollTo({ top: 0, behavior: &#039;smooth&#039; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0; i &amp;lt; groups.length; i++) {&lt;br /&gt;
      (function (g) {&lt;br /&gt;
        var li = document.createElement(&#039;li&#039;);&lt;br /&gt;
        li.className = &#039;mdtFloatTocItem mdtFloatTocGroup&#039;;&lt;br /&gt;
&lt;br /&gt;
        var row = document.createElement(&#039;div&#039;);&lt;br /&gt;
        row.className = &#039;mdtFloatTocRow&#039;;&lt;br /&gt;
        li.appendChild(row);&lt;br /&gt;
&lt;br /&gt;
        var a = document.createElement(&#039;a&#039;);&lt;br /&gt;
        a.href = &#039;#&#039; + encodeURIComponent(g.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
        a.textContent = g.text;&lt;br /&gt;
        row.appendChild(a);&lt;br /&gt;
&lt;br /&gt;
        if (g.children &amp;amp;&amp;amp; g.children.length) {&lt;br /&gt;
          var toggle = document.createElement(&#039;button&#039;);&lt;br /&gt;
          toggle.type = &#039;button&#039;;&lt;br /&gt;
          toggle.className = &#039;mdtFloatTocGroupToggle&#039;;&lt;br /&gt;
          toggle.setAttribute(&#039;aria-label&#039;, &#039;展开/收起&#039;);&lt;br /&gt;
          toggle.setAttribute(&#039;aria-expanded&#039;, &#039;false&#039;);&lt;br /&gt;
          toggle.textContent = &#039;&amp;gt;&#039;;&lt;br /&gt;
          row.appendChild(toggle);&lt;br /&gt;
&lt;br /&gt;
          var sub = document.createElement(&#039;ul&#039;);&lt;br /&gt;
          sub.className = &#039;mdtFloatTocSublist&#039;;&lt;br /&gt;
          li.appendChild(sub);&lt;br /&gt;
&lt;br /&gt;
          for (var j = 0; j &amp;lt; g.children.length; j++) {&lt;br /&gt;
            var c = g.children[j];&lt;br /&gt;
            var cli = document.createElement(&#039;li&#039;);&lt;br /&gt;
            cli.className = &#039;mdtFloatTocItem&#039;;&lt;br /&gt;
            var ca = document.createElement(&#039;a&#039;);&lt;br /&gt;
            ca.href = &#039;#&#039; + encodeURIComponent(c.id).replace(/%2F/g, &#039;/&#039;);&lt;br /&gt;
            ca.textContent = c.text;&lt;br /&gt;
            cli.appendChild(ca);&lt;br /&gt;
            sub.appendChild(cli);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          toggle.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
            ev.preventDefault();&lt;br /&gt;
            ev.stopPropagation();&lt;br /&gt;
            var open = li.classList.toggle(&#039;mdtFloatTocGroupOpen&#039;);&lt;br /&gt;
            toggle.setAttribute(&#039;aria-expanded&#039;, String(open));&lt;br /&gt;
            toggle.textContent = open ? &#039;v&#039; : &#039;&amp;gt;&#039;;&lt;br /&gt;
          });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ul.appendChild(li);&lt;br /&gt;
      })(groups[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Click a toc item -&amp;gt; smooth scroll&lt;br /&gt;
    wrap.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      var target = ev.target;&lt;br /&gt;
      if (!target) return;&lt;br /&gt;
      var a = target.closest ? target.closest(&#039;a&#039;) : null;&lt;br /&gt;
      if (!a) return;&lt;br /&gt;
&lt;br /&gt;
      var href = a.getAttribute(&#039;href&#039;) || &#039;&#039;;&lt;br /&gt;
      if (href.charAt(0) !== &#039;#&#039;) return;&lt;br /&gt;
&lt;br /&gt;
      ev.preventDefault();&lt;br /&gt;
      if (!isDesktop()) openPanel(false);&lt;br /&gt;
&lt;br /&gt;
      var id = decodeURIComponent(href.slice(1));&lt;br /&gt;
      var el = document.getElementById(id);&lt;br /&gt;
      if (el) {&lt;br /&gt;
        el.scrollIntoView({ behavior: &#039;smooth&#039;, block: &#039;start&#039; });&lt;br /&gt;
        try {&lt;br /&gt;
          history.replaceState(null, &#039;&#039;, &#039;#&#039; + encodeURIComponent(id));&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Mobile only: tap outside to close. Desktop: do nothing.&lt;br /&gt;
    document.addEventListener(&#039;click&#039;, function (ev) {&lt;br /&gt;
      if (isDesktop()) return;&lt;br /&gt;
      if (!wrap.classList.contains(&#039;mdtFloatTocOpen&#039;)) return;&lt;br /&gt;
      if (wrap.contains(ev.target)) return;&lt;br /&gt;
      openPanel(false);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Highlight active heading&lt;br /&gt;
    var linkById = {};&lt;br /&gt;
    var links = wrap.querySelectorAll(&#039;a&#039;);&lt;br /&gt;
    for (var k = 0; k &amp;lt; links.length; k++) {&lt;br /&gt;
      var id2 = decodeURIComponent((links[k].getAttribute(&#039;href&#039;) || &#039;&#039;).slice(1));&lt;br /&gt;
      linkById[id2] = links[k];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var ids = flattenIds(groups);&lt;br /&gt;
    var ticking = false;&lt;br /&gt;
&lt;br /&gt;
    function updateActive() {&lt;br /&gt;
      ticking = false;&lt;br /&gt;
&lt;br /&gt;
      var bestId = &#039;&#039;;&lt;br /&gt;
      var bestTop = -Infinity;&lt;br /&gt;
&lt;br /&gt;
      for (var i2 = 0; i2 &amp;lt; ids.length; i2++) {&lt;br /&gt;
        var el2 = document.getElementById(ids[i2]);&lt;br /&gt;
        if (!el2) continue;&lt;br /&gt;
        var rect = el2.getBoundingClientRect();&lt;br /&gt;
        if (rect.top &amp;lt;= 120 &amp;amp;&amp;amp; rect.top &amp;gt; bestTop) {&lt;br /&gt;
          bestTop = rect.top;&lt;br /&gt;
          bestId = ids[i2];&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for (var idKey in linkById) {&lt;br /&gt;
        linkById[idKey].classList.toggle(&#039;mdtFloatTocActive&#039;, idKey === bestId);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    window.addEventListener(&lt;br /&gt;
      &#039;scroll&#039;,&lt;br /&gt;
      function () {&lt;br /&gt;
        if (ticking) return;&lt;br /&gt;
        ticking = true;&lt;br /&gt;
        window.requestAnimationFrame(updateActive);&lt;br /&gt;
      },&lt;br /&gt;
      { passive: true }&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    return wrap;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var resizeBound = false;&lt;br /&gt;
&lt;br /&gt;
  function initFloatToc($content) {&lt;br /&gt;
    if (!isViewMode()) return;&lt;br /&gt;
&lt;br /&gt;
    if (document.getElementById(&#039;mdtFloatToc&#039;)) {&lt;br /&gt;
      applyDesktopDock(document.getElementById(&#039;mdtFloatToc&#039;));&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var content = $content &amp;amp;&amp;amp; $content[0] ? $content[0] : null;&lt;br /&gt;
    var root =&lt;br /&gt;
      content || document.querySelector(&#039;.mw-parser-output&#039;) || document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
    if (!root) return;&lt;br /&gt;
&lt;br /&gt;
    ensureHeadingIds(root);&lt;br /&gt;
    var groups = collectGroups(root);&lt;br /&gt;
    if (!groups.length) return;&lt;br /&gt;
&lt;br /&gt;
    var wrap = buildPanel(groups);&lt;br /&gt;
    document.body.appendChild(wrap);&lt;br /&gt;
&lt;br /&gt;
    applyDesktopDock(wrap);&lt;br /&gt;
&lt;br /&gt;
    if (!resizeBound) {&lt;br /&gt;
      resizeBound = true;&lt;br /&gt;
      window.addEventListener(&lt;br /&gt;
        &#039;resize&#039;,&lt;br /&gt;
        function () {&lt;br /&gt;
          var el = document.getElementById(&#039;mdtFloatToc&#039;);&lt;br /&gt;
          if (el) applyDesktopDock(el);&lt;br /&gt;
        },&lt;br /&gt;
        { passive: true }&lt;br /&gt;
      );&lt;br /&gt;
      window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        var el = document.getElementById(&#039;mdtFloatToc&#039;);&lt;br /&gt;
        if (el) applyDesktopDock(el);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    if (mw.hook &amp;amp;&amp;amp; window.jQuery) {&lt;br /&gt;
      mw.hook(&#039;wikipage.content&#039;).add(initFloatToc);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
        initFloatToc(null);&lt;br /&gt;
      });&lt;br /&gt;
    } else {&lt;br /&gt;
      initFloatToc(null);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* MDTWIKI_APPEND_ICON_TOOL v20260123&lt;br /&gt;
 * Paste this file at the END of MediaWiki:Common.js (do not replace your existing code).&lt;br /&gt;
 * Timeless skin only. Works in action=edit (source editor textarea wpTextbox1).&lt;br /&gt;
 */&lt;br /&gt;
(function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  if (!window.mw) return;&lt;br /&gt;
  if (window.__mdtIconEditorToolInit) return;&lt;br /&gt;
  window.__mdtIconEditorToolInit = true;&lt;br /&gt;
&lt;br /&gt;
  mw.loader.using([&#039;mediawiki.util&#039;], function () {&lt;br /&gt;
    var skin = String(mw.config.get(&#039;skin&#039;) || &#039;&#039;).toLowerCase();&lt;br /&gt;
    if (skin !== &#039;timeless&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var action = String(mw.config.get(&#039;wgAction&#039;) || &#039;view&#039;).toLowerCase();&lt;br /&gt;
    if (action !== &#039;edit&#039;) return;&lt;br /&gt;
&lt;br /&gt;
    var MDT_ICON_SIZE = 18;&lt;br /&gt;
&lt;br /&gt;
    // Map: page title (wgPageName format) -&amp;gt; uploaded file name.&lt;br /&gt;
    // Add more entries as needed.&lt;br /&gt;
var MDT_ICON_MAP = {&lt;br /&gt;
&lt;br /&gt;
    &#039;铜&#039;: &#039;Item-copper-ui.png&#039;,&lt;br /&gt;
    &#039;钰&#039;: &#039;Item-lead-ui.png&#039;,&lt;br /&gt;
    &#039;煤炭&#039;: &#039;Item-coal-ui.png&#039;,&lt;br /&gt;
    &#039;石墨&#039;: &#039;Item-graphite-ui.png&#039;,&lt;br /&gt;
    &#039;钛&#039;: &#039;Item-titanium-ui.png&#039;,&lt;br /&gt;
    &#039;钱&#039;: &#039;Item-thorium-ui.png&#039;,&lt;br /&gt;
    &#039;硅&#039;: &#039;Item-silicon-ui.png&#039;,&lt;br /&gt;
    &#039;塑钢&#039;: &#039;Item-plastanium-ui.png&#039;,&lt;br /&gt;
    &#039;相织布&#039;: &#039;Item-phase-fabric-ui.png&#039;,&lt;br /&gt;
    &#039;巨浪合金&#039;: &#039;Item-surge-alloy-ui.png&#039;,&lt;br /&gt;
    &#039;孢子荐&#039;: &#039;Item-spore-pod-ui.png&#039;,&lt;br /&gt;
    &#039;沙&#039;: &#039;Item-sand-ui.png&#039;,&lt;br /&gt;
    &#039;爆炸混合物&#039;: &#039;Item-blast-compound-ui.png&#039;,&lt;br /&gt;
    &#039;硫化物&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;钢化玻璃&#039;: &#039;Item-metaglass-ui.png&#039;,&lt;br /&gt;
    &#039;废料&#039;: &#039;Item-scrap-ui.png&#039;,&lt;br /&gt;
    &#039;裂变产物&#039;: &#039;Item-fissile-matter-ui.png&#039;,&lt;br /&gt;
    &#039;钽&#039;: &#039;Item-beryllium-ui.png&#039;,&lt;br /&gt;
    &#039;钞&#039;: &#039;Item-tungsten-ui.png&#039;,&lt;br /&gt;
    &#039;氧化物&#039;: &#039;Item-oxide-ui.png&#039;,&lt;br /&gt;
    &#039;碳化物&#039;: &#039;Item-carbide-ui.png&#039;,&lt;br /&gt;
    &#039;休眠囊肿&#039;: &#039;Item-dormant-cyst-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;水&#039;: &#039;Liquid-water-ui.png&#039;,&lt;br /&gt;
    &#039;矿渣&#039;: &#039;Liquid-slag-ui.png&#039;,&lt;br /&gt;
    &#039;石油&#039;: &#039;Liquid-oil-ui.png&#039;,&lt;br /&gt;
    &#039;冷冻液&#039;: &#039;Liquid-cryofluid-ui.png&#039;,&lt;br /&gt;
    &#039;瘤液&#039;: &#039;Liquid-neoplasm-ui.png&#039;,&lt;br /&gt;
    &#039;芳油&#039;: &#039;Liquid-arkycite-ui.png&#039;,&lt;br /&gt;
    &#039;鋠液&#039;: &#039;Liquid-gallium-ui.png&#039;,&lt;br /&gt;
    &#039;氧氧&#039;: &#039;Liquid-ozone-ui.png&#039;,&lt;br /&gt;
    &#039;氢气&#039;: &#039;Liquid-hydrogen-ui.png&#039;,&lt;br /&gt;
    &#039;氮气&#039;: &#039;Liquid-nitrogen-ui.png&#039;,&lt;br /&gt;
    &#039;氮气&#039;: &#039;Liquid-cyanogen-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;尖刀&#039;: &#039;Unit-dagger-ui.png&#039;,&lt;br /&gt;
    &#039;战锤&#039;: &#039;Unit-mace-ui.png&#039;,&lt;br /&gt;
    &#039;堡垒&#039;: &#039;Unit-fortress-ui.png&#039;,&lt;br /&gt;
    &#039;新星&#039;: &#039;Unit-nova-ui.png&#039;,&lt;br /&gt;
    &#039;恒星&#039;: &#039;Unit-pulsar-ui.png&#039;,&lt;br /&gt;
    &#039;耀星&#039;: &#039;Unit-quasar-ui.png&#039;,&lt;br /&gt;
    &#039;爬虫&#039;: &#039;Unit-crawler-ui.png&#039;,&lt;br /&gt;
    &#039;毒螞&#039;: &#039;Unit-atrax-ui.png&#039;,&lt;br /&gt;
    &#039;血螲&#039;: &#039;Unit-spiroct-ui.png&#039;,&lt;br /&gt;
    &#039;毒蛇&#039;: &#039;Unit-arkyid-ui.png&#039;,&lt;br /&gt;
    &#039;天蝎&#039;: &#039;Unit-toxopid-ui.png&#039;,&lt;br /&gt;
    &#039;星辉&#039;: &#039;Unit-stell-ui.png&#039;,&lt;br /&gt;
    &#039;天垰&#039;: &#039;Unit-vela-ui.png&#039;,&lt;br /&gt;
    &#039;苍穹&#039;: &#039;Unit-corvus-ui.png&#039;,&lt;br /&gt;
    &#039;月影&#039;: &#039;Unit-antumbra-ui.png&#039;,&lt;br /&gt;
    &#039;日蚁&#039;: &#039;Unit-eclipse-ui.png&#039;,&lt;br /&gt;
    &#039;独影&#039;: &#039;Unit-obviate-ui.png&#039;,&lt;br /&gt;
    &#039;幻型&#039;: &#039;Unit-elude-ui.png&#039;,&lt;br /&gt;
    &#039;巨像&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;雷雷&#039;: &#039;Unit-evoke-ui.png&#039;,&lt;br /&gt;
    &#039;要塞&#039;: &#039;Unit-conquer-ui.png&#039;,&lt;br /&gt;
    &#039;棒鱼&#039;: &#039;Unit-bryde-ui.png&#039;,&lt;br /&gt;
    &#039;飞鲨&#039;: &#039;Unit-minke-ui.png&#039;,&lt;br /&gt;
    &#039;战鲸&#039;: &#039;Unit-sei-ui.png&#039;,&lt;br /&gt;
    &#039;蛹龙&#039;: &#039;Unit-omura-ui.png&#039;,&lt;br /&gt;
    &#039;海神&#039;: &#039;Unit-retusa-ui.png&#039;,&lt;br /&gt;
    &#039;潜螺&#039;: &#039;Unit-cyerce-ui.png&#039;,&lt;br /&gt;
    &#039;电鳊&#039;: &#039;Unit-oxynoe-ui.png&#039;,&lt;br /&gt;
    &#039;江豚&#039;: &#039;Unit-risso-ui.png&#039;,&lt;br /&gt;
    &#039;玄武&#039;: &#039;Unit-navanax-ui.png&#039;,&lt;br /&gt;
    &#039;龙王&#039;: &#039;Unit-anthicus-ui.png&#039;,&lt;br /&gt;
    &#039;阿尔法&#039;: &#039;Unit-alpha-ui.png&#039;,&lt;br /&gt;
    &#039;贝塔&#039;: &#039;Unit-beta-ui.png&#039;,&lt;br /&gt;
    &#039;伽马&#039;: &#039;Unit-gamma-ui.png&#039;,&lt;br /&gt;
    &#039;权杖&#039;: &#039;Unit-scepter-ui.png&#039;,&lt;br /&gt;
    &#039;王座&#039;: &#039;Unit-reign-ui.png&#039;,&lt;br /&gt;
    &#039;灾星&#039;: &#039;Unit-scathe-ui.png&#039;,&lt;br /&gt;
    &#039;死星&#039;: &#039;Unit-horizon-ui.png&#039;,&lt;br /&gt;
    &#039;围护&#039;: &#039;Unit-avert-ui.png&#039;,&lt;br /&gt;
    &#039;徙迹&#039;: &#039;Unit-locus-ui.png&#039;,&lt;br /&gt;
    &#039;准绳&#039;: &#039;Unit-precept-ui.png&#039;,&lt;br /&gt;
    &#039;征服&#039;: &#039;Unit-vanquish-ui.png&#039;,&lt;br /&gt;
    &#039;领主&#039;: &#039;Unit-tecta-ui.png&#039;,&lt;br /&gt;
    &#039;天守&#039;: &#039;Unit-collaris-ui.png&#039;,&lt;br /&gt;
    &#039;天赐&#039;: &#039;Unit-disrupt-ui.png&#039;,&lt;br /&gt;
    &#039;天灾&#039;: &#039;Unit-quell-ui.png&#039;,&lt;br /&gt;
    &#039;天理&#039;: &#039;Unit-elude-ui.png&#039;,&lt;br /&gt;
    &#039;天帝&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;拉脱&#039;: &#039;Unit-flare-ui.png&#039;,&lt;br /&gt;
    &#039;遮蔽&#039;: &#039;Unit-horizon-ui.png&#039;,&lt;br /&gt;
    &#039;消散&#039;: &#039;Unit-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;遼止&#039;: &#039;Unit-obviate-ui.png&#039;,&lt;br /&gt;
    &#039;悲恱&#039;: &#039;Unit-merui-ui.png&#039;,&lt;br /&gt;
    &#039;苏醒&#039;: &#039;Unit-emanate-ui.png&#039;,&lt;br /&gt;
    &#039;策动&#039;: &#039;Unit-incite-ui.png&#039;,&lt;br /&gt;
    &#039;发散&#039;: &#039;Unit-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;货运无人机&#039;: &#039;Unit-cargo-drone-ui.png&#039;,&lt;br /&gt;
    &#039;装配无人机&#039;: &#039;Unit-assembly-drone-ui.png&#039;,&lt;br /&gt;
    &#039;Latum&#039;: &#039;Unit-latum-ui.png&#039;,&lt;br /&gt;
    &#039;Renale&#039;: &#039;Unit-renale-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;差扰&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;悬崖&#039;: &#039;Block-cliff-ui.png&#039;,&lt;br /&gt;
    &#039;砂岩&#039;: &#039;Block-dacite-ui.png&#039;,&lt;br /&gt;
    &#039;玄武岩石块&#039;: &#039;Block-basalt-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;窑炉&#039;: &#039;Block-kiln-ui.png&#039;,&lt;br /&gt;
    &#039;石墨压缩机&#039;: &#039;Block-graphite-press-ui.png&#039;,&lt;br /&gt;
    &#039;多重压缩机&#039;: &#039;Block-multi-press-ui.png&#039;,&lt;br /&gt;
    &#039;敌人出生点&#039;: &#039;Block-spawn-ui.png&#039;,&lt;br /&gt;
    &#039;移除墙体&#039;: &#039;Block-remove-wall-ui.png&#039;,&lt;br /&gt;
    &#039;移除矿&#039;: &#039;Block-remove-ore-ui.png&#039;,&lt;br /&gt;
    &#039;初代核心&#039;: &#039;Block-core-shard-ui.png&#039;,&lt;br /&gt;
    &#039;次代核心&#039;: &#039;Block-core-foundation-ui.png&#039;,&lt;br /&gt;
    &#039;终代核心&#039;: &#039;Block-core-nucleus-ui.png&#039;,&lt;br /&gt;
    &#039;双管&#039;: &#039;Block-duo-ui.png&#039;,&lt;br /&gt;
    &#039;火焰&#039;: &#039;Block-scorch-ui.png&#039;,&lt;br /&gt;
    &#039;分裂&#039;: &#039;Block-ripple-ui.png&#039;,&lt;br /&gt;
    &#039;冰霍&#039;: &#039;Block-hail-ui.png&#039;,&lt;br /&gt;
    &#039;蓝瑞&#039;: &#039;Block-lancer-ui.png&#039;,&lt;br /&gt;
    &#039;传送带&#039;: &#039;Block-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;钛传送带&#039;: &#039;Block-titanium-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;塑钢传送带&#039;: &#039;Block-plastanium-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;装甲传送带&#039;: &#039;Block-armored-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;交叉器&#039;: &#039;Block-junction-ui.png&#039;,&lt;br /&gt;
    &#039;路由器&#039;: &#039;Block-router-ui.png&#039;,&lt;br /&gt;
    &#039;分配器&#039;: &#039;Block-distributor-ui.png&#039;,&lt;br /&gt;
    &#039;分类器&#039;: &#039;Block-sorter-ui.png&#039;,&lt;br /&gt;
    &#039;反向分类器&#039;: &#039;Block-inverted-sorter-ui.png&#039;,&lt;br /&gt;
    &#039;信息板&#039;: &#039;Block-message-ui.png&#039;,&lt;br /&gt;
    &#039;强化信息板&#039;: &#039;Block-reinforced-message-ui.png&#039;,&lt;br /&gt;
    &#039;世界信息板&#039;: &#039;Block-world-message-ui.png&#039;,&lt;br /&gt;
    &#039;世界开关&#039;: &#039;Block-world-switch-ui.png&#039;,&lt;br /&gt;
    &#039;照明器&#039;: &#039;Block-illuminator-ui.png&#039;,&lt;br /&gt;
    &#039;溢流门&#039;: &#039;Block-overflow-gate-ui.png&#039;,&lt;br /&gt;
    &#039;反向溢流门&#039;: &#039;Block-underflow-gate-ui.png&#039;,&lt;br /&gt;
    &#039;硅冶炼厂&#039;: &#039;Block-silicon-smelter-ui.png&#039;,&lt;br /&gt;
    &#039;相织布编织器&#039;: &#039;Block-phase-weaver-ui.png&#039;,&lt;br /&gt;
    &#039;粉碎机&#039;: &#039;Block-pulverizer-ui.png&#039;,&lt;br /&gt;
    &#039;冷冻液混合器&#039;: &#039;Block-cryofluid-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;熔炉&#039;: &#039;Block-melter-ui.png&#039;,&lt;br /&gt;
    &#039;焚化炉&#039;: &#039;Block-incinerator-ui.png&#039;,&lt;br /&gt;
    &#039;孢子压缩机&#039;: &#039;Block-spore-press-ui.png&#039;,&lt;br /&gt;
    &#039;分离机&#039;: &#039;Block-separator-ui.png&#039;,&lt;br /&gt;
    &#039;煤炭离心机&#039;: &#039;Block-coal-centrifuge-ui.png&#039;,&lt;br /&gt;
    &#039;电力节点&#039;: &#039;Block-power-node-ui.png&#039;,&lt;br /&gt;
    &#039;大型电力节点&#039;: &#039;Block-power-node-large-ui.png&#039;,&lt;br /&gt;
    &#039;巨浪电力塔&#039;: &#039;Block-surge-tower-ui.png&#039;,&lt;br /&gt;
    &#039;二极管&#039;: &#039;Block-diode-ui.png&#039;,&lt;br /&gt;
    &#039;电池&#039;: &#039;Block-battery-ui.png&#039;,&lt;br /&gt;
    &#039;大型电池&#039;: &#039;Block-battery-large-ui.png&#039;,&lt;br /&gt;
    &#039;火力发电机&#039;: &#039;Block-combustion-generator-ui.png&#039;,&lt;br /&gt;
    &#039;涡轮发电机&#039;: &#039;Block-steam-generator-ui.png&#039;,&lt;br /&gt;
    &#039;温差发电机&#039;: &#039;Block-thermal-generator-ui.png&#039;,&lt;br /&gt;
    &#039;冲击反应堆&#039;: &#039;Block-impact-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;机械钻头&#039;: &#039;Block-mechanical-drill-ui.png&#039;,&lt;br /&gt;
    &#039;气动钻头&#039;: &#039;Block-pneumatic-drill-ui.png&#039;,&lt;br /&gt;
    &#039;激光钻头&#039;: &#039;Block-laser-drill-ui.png&#039;,&lt;br /&gt;
    &#039;抽水机&#039;: &#039;Block-water-extractor-ui.png&#039;,&lt;br /&gt;
    &#039;培养机&#039;: &#039;Block-cultivator-ui.png&#039;,&lt;br /&gt;
    &#039;导管&#039;: &#039;Block-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;机械泵&#039;: &#039;Block-mechanical-pump-ui.png&#039;,&lt;br /&gt;
    &#039;物品源&#039;: &#039;Block-item-source-ui.png&#039;,&lt;br /&gt;
    &#039;物品黑洞&#039;: &#039;Block-item-void-ui.png&#039;,&lt;br /&gt;
    &#039;液体源&#039;: &#039;Block-liquid-source-ui.png&#039;,&lt;br /&gt;
    &#039;液体黑洞&#039;: &#039;Block-liquid-void-ui.png&#039;,&lt;br /&gt;
    &#039;电力黑洞&#039;: &#039;Block-power-void-ui.png&#039;,&lt;br /&gt;
    &#039;电力源&#039;: &#039;Block-power-source-ui.png&#039;,&lt;br /&gt;
    &#039;装卸器&#039;: &#039;Block-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;仓库&#039;: &#039;Block-vault-ui.png&#039;,&lt;br /&gt;
    &#039;波浪&#039;: &#039;Block-wave-ui.png&#039;,&lt;br /&gt;
    &#039;海嗔&#039;: &#039;Block-tsunami-ui.png&#039;,&lt;br /&gt;
    &#039;蜂群&#039;: &#039;Block-swarmer-ui.png&#039;,&lt;br /&gt;
    &#039;齐射&#039;: &#039;Block-salvo-ui.png&#039;,&lt;br /&gt;
    &#039;浪涌&#039;: &#039;Block-surge-ui.png&#039;,&lt;br /&gt;
    &#039;相织布传送带桥&#039;: &#039;Block-phase-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;传送带桥&#039;: &#039;Block-bridge-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;塑钢压缩机&#039;: &#039;Block-plastanium-compressor-ui.png&#039;,&lt;br /&gt;
    &#039;硫化物混合器&#039;: &#039;Block-sulfide-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;爆炸物混合器&#039;: &#039;Block-blast-mixer-ui.png&#039;,&lt;br /&gt;
    &#039;太阳能板&#039;: &#039;Block-solar-panel-ui.png&#039;,&lt;br /&gt;
    &#039;大型太阳能板&#039;: &#039;Block-solar-panel-large-ui.png&#039;,&lt;br /&gt;
    &#039;石油钻井&#039;: &#039;Block-oil-extractor-ui.png&#039;,&lt;br /&gt;
    &#039;维修点&#039;: &#039;Block-repair-point-ui.png&#039;,&lt;br /&gt;
    &#039;维修塔&#039;: &#039;Block-repair-turret-ui.png&#039;,&lt;br /&gt;
    &#039;脉冲导管&#039;: &#039;Block-pulse-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;电镀导管&#039;: &#039;Block-plated-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;相织布导管桥&#039;: &#039;Block-phase-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;流体路由器&#039;: &#039;Block-liquid-router-ui.png&#039;,&lt;br /&gt;
    &#039;流体储罐&#039;: &#039;Block-liquid-tank-ui.png&#039;,&lt;br /&gt;
    &#039;流体容器&#039;: &#039;Block-liquid-container-ui.png&#039;,&lt;br /&gt;
    &#039;流体交叉器&#039;: &#039;Block-liquid-junction-ui.png&#039;,&lt;br /&gt;
    &#039;导管桥&#039;: &#039;Block-bridge-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;回转泵&#039;: &#039;Block-rotary-pump-ui.png&#039;,&lt;br /&gt;
    &#039;钱反应堆&#039;: &#039;Block-thorium-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;质量驱动器&#039;: &#039;Block-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;爆破钻头&#039;: &#039;Block-blast-drill-ui.png&#039;,&lt;br /&gt;
    &#039;脉冲泵&#039;: &#039;Block-impulse-pump-ui.png&#039;,&lt;br /&gt;
    &#039;热能发电机&#039;: &#039;Block-differential-generator-ui.png&#039;,&lt;br /&gt;
    &#039;合金冶炼厂&#039;: &#039;Block-alloy-smelter-ui.png&#039;,&lt;br /&gt;
    &#039;修理器&#039;: &#039;Block-mender-ui.png&#039;,&lt;br /&gt;
    &#039;修理投影&#039;: &#039;Block-mend-projector-ui.png&#039;,&lt;br /&gt;
    &#039;合金墙&#039;: &#039;Block-surge-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型合金墙&#039;: &#039;Block-surge-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;气旋&#039;: &#039;Block-cyclone-ui.png&#039;,&lt;br /&gt;
    &#039;雷光&#039;: &#039;Block-arc-ui.png&#039;,&lt;br /&gt;
    &#039;脉冲地雷&#039;: &#039;Block-shock-mine-ui.png&#039;,&lt;br /&gt;
    &#039;超速投影&#039;: &#039;Block-overdrive-projector-ui.png&#039;,&lt;br /&gt;
    &#039;力墙投影&#039;: &#039;Block-force-projector-ui.png&#039;,&lt;br /&gt;
    &#039;电弧&#039;: &#039;Block-arc-ui.png&#039;,&lt;br /&gt;
    &#039;RTG发电机&#039;: &#039;Block-rtg-generator-ui.png&#039;,&lt;br /&gt;
    &#039;幻影&#039;: &#039;Block-phantom-ui.png&#039;,&lt;br /&gt;
    &#039;熔毁&#039;: &#039;Block-meltdown-ui.png&#039;,&lt;br /&gt;
    &#039;厄兆&#039;: &#039;Block-afflict-ui.png&#039;,&lt;br /&gt;
    &#039;容器&#039;: &#039;Block-container-ui.png&#039;,&lt;br /&gt;
    &#039;发射台&#039;: &#039;Block-launch-pad-ui.png&#039;,&lt;br /&gt;
    &#039;接收台&#039;: &#039;Block-landing-pad-ui.png&#039;,&lt;br /&gt;
    &#039;裂解&#039;: &#039;Block-disassembler-ui.png&#039;,&lt;br /&gt;
    &#039;陆军工厂&#039;: &#039;Block-ground-factory-ui.png&#039;,&lt;br /&gt;
    &#039;空军工厂&#039;: &#039;Block-air-factory-ui.png&#039;,&lt;br /&gt;
    &#039;海军工厂&#039;: &#039;Block-naval-factory-ui.png&#039;,&lt;br /&gt;
    &#039;数增级单位重构工厂&#039;: &#039;Block-additive-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;倍乘级单位重构工厂&#039;: &#039;Block-multiplicative-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;多幂级单位重构工厂&#039;: &#039;Block-exponential-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;无量级单位重构工厂&#039;: &#039;Block-tetrative-reconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;载荷传送带&#039;: &#039;Block-payload-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;载荷路由器&#039;: &#039;Block-payload-router-ui.png&#039;,&lt;br /&gt;
    &#039;物品管道&#039;: &#039;Block-duct-ui.png&#039;,&lt;br /&gt;
    &#039;物品管道路由器&#039;: &#039;Block-duct-router-ui.png&#039;,&lt;br /&gt;
    &#039;物品管道桥&#039;: &#039;Block-duct-bridge-ui.png&#039;,&lt;br /&gt;
    &#039;大型载荹质量驱动器&#039;: &#039;Block-large-payload-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;载荹黑洞&#039;: &#039;Block-payload-void-ui.png&#039;,&lt;br /&gt;
    &#039;载荹源&#039;: &#039;Block-payload-source-ui.png&#039;,&lt;br /&gt;
    &#039;解离机&#039;: &#039;Block-disassembler-ui.png&#039;,&lt;br /&gt;
    &#039;热能坙坙&#039;: &#039;Block-slag-heater-ui.png&#039;,&lt;br /&gt;
    &#039;超速窄顶&#039;: &#039;Block-overdrive-dome-ui.png&#039;,&lt;br /&gt;
    &#039;行星际加速器&#039;: &#039;Block-interplanetary-accelerator-ui.png&#039;,&lt;br /&gt;
    &#039;勋筑器&#039;: &#039;Block-constructor-ui.png&#039;,&lt;br /&gt;
    &#039;大型勋筑器&#039;: &#039;Block-large-constructor-ui.png&#039;,&lt;br /&gt;
    &#039;大型解构器&#039;: &#039;Block-deconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;载荹装载器&#039;: &#039;Block-payload-loader-ui.png&#039;,&lt;br /&gt;
    &#039;载荹卸载器&#039;: &#039;Block-payload-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;热量源&#039;: &#039;Block-heat-source-ui.png&#039;,&lt;br /&gt;
    &#039;空&#039;: &#039;Block-empty-ui.png&#039;,&lt;br /&gt;
    &#039;流纹岩坑&#039;: &#039;Block-rhyolite-crater-ui.png&#039;,&lt;br /&gt;
    &#039;粗糙流纹岩&#039;: &#039;Block-rough-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;流纹岩&#039;: &#039;Block-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;黄石&#039;: &#039;Block-yellow-stone-ui.png&#039;,&lt;br /&gt;
    &#039;碳石&#039;: &#039;Block-carbon-stone-ui.png&#039;,&lt;br /&gt;
    &#039;铁石&#039;: &#039;Block-ferric-stone-ui.png&#039;,&lt;br /&gt;
    &#039;铁际石坑&#039;: &#039;Block-ferric-craters-ui.png&#039;,&lt;br /&gt;
    &#039;钽石&#039;: &#039;Block-beryllic-stone-ui.png&#039;,&lt;br /&gt;
    &#039;晶石&#039;: &#039;Block-crystalline-stone-ui.png&#039;,&lt;br /&gt;
    &#039;晶石地板&#039;: &#039;Block-crystal-floor-ui.png&#039;,&lt;br /&gt;
    &#039;黄石地板&#039;: &#039;Block-yellow-stone-plates-ui.png&#039;,&lt;br /&gt;
    &#039;红石&#039;: &#039;Block-red-stone-ui.png&#039;,&lt;br /&gt;
    &#039;高密红石&#039;: &#039;Block-dense-red-stone-ui.png&#039;,&lt;br /&gt;
    &#039;红冰&#039;: &#039;Block-red-ice-ui.png&#039;,&lt;br /&gt;
    //&#039;芳油&#039;: &#039;Block-arkyic-stone-ui.png&#039;,   这是地板！ai都不看重复的吗&lt;br /&gt;
    &#039;芳石&#039;: &#039;Block-arkyic-stone-ui.png&#039;,&lt;br /&gt;
    &#039;流纹石喷口&#039;: &#039;Block-rhyolite-vent-ui.png&#039;,&lt;br /&gt;
    &#039;碳石喷口&#039;: &#039;Block-carbon-vent-ui.png&#039;,&lt;br /&gt;
    &#039;芳石喷口&#039;: &#039;Block-arkyic-vent-ui.png&#039;,&lt;br /&gt;
    &#039;黄石喷口&#039;: &#039;Block-yellow-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;红石喷口&#039;: &#039;Block-red-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;晶石喷口&#039;: &#039;Block-crystalline-vent-ui.png&#039;,&lt;br /&gt;
    &#039;岩石喷口&#039;: &#039;Block-stone-vent-ui.png&#039;,&lt;br /&gt;
    &#039;玄武岩喷口&#039;: &#039;Block-basalt-vent-ui.png&#039;,&lt;br /&gt;
    &#039;红地垫&#039;: &#039;Block-redmat-ui.png&#039;,&lt;br /&gt;
    &#039;蓝地垫&#039;: &#039;Block-bluemat-ui.png&#039;,&lt;br /&gt;
    &#039;核心区&#039;: &#039;Block-core-zone-ui.png&#039;,&lt;br /&gt;
    &#039;风化墙&#039;: &#039;Block-regolith-wall-ui.png&#039;,&lt;br /&gt;
    &#039;黄石墙&#039;: &#039;Block-yellow-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;流纹岩墙&#039;: &#039;Block-rhyolite-wall-ui.png&#039;,&lt;br /&gt;
    &#039;碳石墙&#039;: &#039;Block-carbon-wall-ui.png&#039;,&lt;br /&gt;
    &#039;铁石墙&#039;: &#039;Block-ferric-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;钽石墙&#039;: &#039;Block-beryllic-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;芳石墙&#039;: &#039;Block-arkyic-wall-ui.png&#039;,&lt;br /&gt;
    &#039;晶石墙&#039;: &#039;Block-crystalline-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;红冰墙&#039;: &#039;Block-red-ice-wall-ui.png&#039;,&lt;br /&gt;
    &#039;红石墙&#039;: &#039;Block-red-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;红钻墙&#039;: &#039;Block-red-diamond-wall-ui.png&#039;,&lt;br /&gt;
    &#039;赤藻&#039;: &#039;Block-redweed-ui.png&#039;,&lt;br /&gt;
    &#039;紫灌木丛&#039;: &#039;Block-pur-bush-ui.png&#039;,&lt;br /&gt;
    &#039;黄珊瑚&#039;: &#039;Block-yellowcoral-ui.png&#039;,&lt;br /&gt;
    &#039;碳石块&#039;: &#039;Block-carbon-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;铁石块&#039;: &#039;Block-ferric-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;钽石块&#039;: &#039;Block-beryllic-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;黄石块&#039;: &#039;Block-yellow-stone-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;芳石块&#039;: &#039;Block-arkyic-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;水晶簇&#039;: &#039;Block-crystal-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;鲜艳水晶簇&#039;: &#039;Block-vibrant-crystal-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;风化晶体&#039;: &#039;Block-weathered-crystal-ui.png&#039;,&lt;br /&gt;
    &#039;晶石球&#039;: &#039;Block-crystal-orbs-ui.png&#039;,&lt;br /&gt;
    &#039;晶石块&#039;: &#039;Block-crystal-blocks-ui.png&#039;,&lt;br /&gt;
    &#039;红冰石块&#039;: &#039;Block-red-ice-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;流纹石块&#039;: &#039;Block-rhyolite-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;红石块&#039;: &#039;Block-red-stone-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;石墨墙&#039;: &#039;Block-graphitic-wall-ui.png&#039;,&lt;br /&gt;
    &#039;电弧硅炉&#039;: &#039;Block-silicon-arc-furnace-ui.png&#039;,&lt;br /&gt;
    &#039;电解机&#039;: &#039;Block-electrolyzer-ui.png&#039;,&lt;br /&gt;
    &#039;大气收集器&#039;: &#039;Block-atmospheric-concentrator-ui.png&#039;,&lt;br /&gt;
    &#039;氧化室&#039;: &#039;Block-oxidation-chamber-ui.png&#039;,&lt;br /&gt;
    &#039;电制热机&#039;: &#039;Block-electric-heater-ui.png&#039;,&lt;br /&gt;
    &#039;矿渣制热机&#039;: &#039;Block-slag-heater-ui.png&#039;,&lt;br /&gt;
    &#039;相织制热机&#039;: &#039;Block-phase-heater-ui.png&#039;,&lt;br /&gt;
    &#039;热量传输机&#039;: &#039;Block-heat-redirector-ui.png&#039;,&lt;br /&gt;
    &#039;小型热量传输机&#039;: &#039;Block-small-heat-redirector-ui.png&#039;,&lt;br /&gt;
    &#039;热量路由器&#039;: &#039;Block-heat-router-ui.png&#039;,&lt;br /&gt;
    &#039;矿渣焚化炉&#039;: &#039;Block-slag-incinerator-ui.png&#039;,&lt;br /&gt;
    &#039;碳化物坙坙&#039;: &#039;Block-carbide-crucible-ui.png&#039;,&lt;br /&gt;
    &#039;矿渣离心机&#039;: &#039;Block-slag-centrifuge-ui.png&#039;,&lt;br /&gt;
    &#039;合金坙坙&#039;: &#039;Block-alloy-crucible-ui.png&#039;,&lt;br /&gt;
    &#039;氧合成机&#039;: &#039;Block-cyanogen-synthesizer-ui.png&#039;,&lt;br /&gt;
    &#039;相织布合成机&#039;: &#039;Block-phase-synthesizer-ui.png&#039;,&lt;br /&gt;
    &#039;热量反应堆&#039;: &#039;Block-heat-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;钽墙&#039;: &#039;Block-beryllium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型钽墙&#039;: &#039;Block-beryllium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;钞墙&#039;: &#039;Block-tungsten-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型钞墙&#039;: &#039;Block-tungsten-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;防爆闸门&#039;: &#039;Block-blast-door-ui.png&#039;,&lt;br /&gt;
    &#039;碳化物墙&#039;: &#039;Block-carbide-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型碳化物墙&#039;: &#039;Block-carbide-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;强化合金墙&#039;: &#039;Block-reinforced-surge-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型强化合金墙&#039;: &#039;Block-reinforced-surge-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;盾墙&#039;: &#039;Block-shielded-wall-ui.png&#039;,&lt;br /&gt;
    &#039;雷达&#039;: &#039;Block-radar-ui.png&#039;,&lt;br /&gt;
    &#039;建造塔&#039;: &#039;Block-build-tower-ui.png&#039;,&lt;br /&gt;
    &#039;再生投影器&#039;: &#039;Block-regen-projector-ui.png&#039;,&lt;br /&gt;
    &#039;震爆塔&#039;: &#039;Block-shockwave-tower-ui.png&#039;,&lt;br /&gt;
    &#039;护盾投影器&#039;: &#039;Block-shield-projector-ui.png&#039;,&lt;br /&gt;
    &#039;大型护盾投影器&#039;: &#039;Block-large-shield-projector-ui.png&#039;,&lt;br /&gt;
    &#039;装甲管道&#039;: &#039;Block-armored-duct-ui.png&#039;,&lt;br /&gt;
    &#039;溢流管道&#039;: &#039;Block-overflow-duct-ui.png&#039;,&lt;br /&gt;
    &#039;反向溢流管&#039;: &#039;Block-underflow-duct-ui.png&#039;,&lt;br /&gt;
    &#039;管道装卸器&#039;: &#039;Block-duct-unloader-ui.png&#039;,&lt;br /&gt;
    &#039;合金传送带&#039;: &#039;Block-surge-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;合金路由器&#039;: &#039;Block-surge-router-ui.png&#039;,&lt;br /&gt;
    &#039;单位物流装载器&#039;: &#039;Block-unit-cargo-loader-ui.png&#039;,&lt;br /&gt;
    &#039;单位物流卸载点&#039;: &#039;Block-unit-cargo-unload-point-ui.png&#039;,&lt;br /&gt;
    &#039;强化泵&#039;: &#039;Block-reinforced-pump-ui.png&#039;,&lt;br /&gt;
    &#039;强化导管&#039;: &#039;Block-reinforced-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;强化流体交叉器&#039;: &#039;Block-reinforced-liquid-junction-ui.png&#039;,&lt;br /&gt;
    &#039;强化流体带桥&#039;: &#039;Block-reinforced-bridge-conduit-ui.png&#039;,&lt;br /&gt;
    &#039;强化流体路由器&#039;: &#039;Block-reinforced-liquid-router-ui.png&#039;,&lt;br /&gt;
    &#039;强化流体容器&#039;: &#039;Block-reinforced-liquid-container-ui.png&#039;,&lt;br /&gt;
    &#039;强化流体储罐&#039;: &#039;Block-reinforced-liquid-tank-ui.png&#039;,&lt;br /&gt;
    &#039;激光节点&#039;: &#039;Block-beam-node-ui.png&#039;,&lt;br /&gt;
    &#039;激光塔&#039;: &#039;Block-beam-tower-ui.png&#039;,&lt;br /&gt;
    &#039;激光连接器&#039;: &#039;Block-beam-link-ui.png&#039;,&lt;br /&gt;
    &#039;涡轮冷凝器&#039;: &#039;Block-turbine-condenser-ui.png&#039;,&lt;br /&gt;
    &#039;化学燃烧室&#039;: &#039;Block-chemical-combustion-chamber-ui.png&#039;,&lt;br /&gt;
    &#039;热解发生器&#039;: &#039;Block-pyrolysis-generator-ui.png&#039;,&lt;br /&gt;
    &#039;排气冷凝器&#039;: &#039;Block-vent-condenser-ui.png&#039;,&lt;br /&gt;
    &#039;墙壁粉碎机&#039;: &#039;Block-cliff-crusher-ui.png&#039;,&lt;br /&gt;
    &#039;高级墙壁粉碎机&#039;: &#039;Block-large-cliff-crusher-ui.png&#039;,&lt;br /&gt;
    &#039;等离子钻机&#039;: &#039;Block-plasma-bore-ui.png&#039;,&lt;br /&gt;
    &#039;大型等离子钻机&#039;: &#039;Block-large-plasma-bore-ui.png&#039;,&lt;br /&gt;
    &#039;冲击钻头&#039;: &#039;Block-impact-drill-ui.png&#039;,&lt;br /&gt;
    &#039;爆裂钻头&#039;: &#039;Block-eruption-drill-ui.png&#039;,&lt;br /&gt;
    &#039;城堡核心&#039;: &#039;Block-core-citadel-ui.png&#039;,&lt;br /&gt;
    &#039;堡垒核心&#039;: &#039;Block-core-bastion-ui.png&#039;,&lt;br /&gt;
    &#039;卫城核心&#039;: &#039;Block-core-acropolis-ui.png&#039;,&lt;br /&gt;
    &#039;强化容器&#039;: &#039;Block-reinforced-container-ui.png&#039;,&lt;br /&gt;
    &#039;强化仓库&#039;: &#039;Block-reinforced-vault-ui.png&#039;,&lt;br /&gt;
    &#039;撕裂&#039;: &#039;Block-ripper-ui.png&#039;,&lt;br /&gt;
    &#039;升华&#039;: &#039;Block-sublimate-ui.png&#039;,&lt;br /&gt;
    &#039;泰坦&#039;: &#039;Block-titan-ui.png&#039;,&lt;br /&gt;
    &#039;驱离&#039;: &#039;Block-disperse-ui.png&#039;,&lt;br /&gt;
    &#039;劫难&#039;: &#039;Block-afflict-ui.png&#039;,&lt;br /&gt;
    &#039;光辉&#039;: &#039;Block-lustre-ui.png&#039;,&lt;br /&gt;
    &#039;创伤&#039;: &#039;Block-scathe-ui.png&#039;,&lt;br /&gt;
    &#039;坦克重构厂&#039;: &#039;Block-tank-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;机甲重构厂&#039;: &#039;Block-mech-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;飞船重构厂&#039;: &#039;Block-ship-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;坦克组装厂&#039;: &#039;Block-tank-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;飞船组装厂&#039;: &#039;Block-ship-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;机甲组装厂&#039;: &#039;Block-mech-assembler-ui.png&#039;,&lt;br /&gt;
    &#039;强化载荹传送带&#039;: &#039;Block-reinforced-payload-conveyor-ui.png&#039;,&lt;br /&gt;
    &#039;强化载荹路由器&#039;: &#039;Block-reinforced-payload-router-ui.png&#039;,&lt;br /&gt;
    &#039;载荹质量驱动器&#039;: &#039;Block-payload-mass-driver-ui.png&#039;,&lt;br /&gt;
    &#039;解构器&#039;: &#039;Block-deconstructor-ui.png&#039;,&lt;br /&gt;
    &#039;画板&#039;: &#039;Block-canvas-ui.png&#039;,&lt;br /&gt;
    &#039;世界处理器&#039;: &#039;Block-world-processor-ui.png&#039;,&lt;br /&gt;
    &#039;世界内存元&#039;: &#039;Block-world-cell-ui.png&#039;,&lt;br /&gt;
    &#039;坦克制造厂&#039;: &#039;Block-tank-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;机甲制造厂&#039;: &#039;Block-mech-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;飞船制造厂&#039;: &#039;Block-ship-fabricator-ui.png&#039;,&lt;br /&gt;
    &#039;高级再重构工厂&#039;: &#039;Block-prime-refabricator-ui.png&#039;,&lt;br /&gt;
    &#039;单位维修塔&#039;: &#039;Block-unit-repair-tower-ui.png&#039;,&lt;br /&gt;
    &#039;扩散&#039;: &#039;Block-diffuse-ui.png&#039;,&lt;br /&gt;
    &#039;基本装配厂模块&#039;: &#039;Block-basic-assembler-module-ui.png&#039;,&lt;br /&gt;
    &#039;天谦&#039;: &#039;Block-smite-ui.png&#039;,&lt;br /&gt;
    &#039;魔灵&#039;: &#039;Block-malign-ui.png&#039;,&lt;br /&gt;
    &#039;通量反应堆&#039;: &#039;Block-flux-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;瘤变反应堆&#039;: &#039;Block-neoplasia-reactor-ui.png&#039;,&lt;br /&gt;
    &#039;开关&#039;: &#039;Block-switch-ui.png&#039;,&lt;br /&gt;
    &#039;微型处理器&#039;: &#039;Block-micro-processor-ui.png&#039;,&lt;br /&gt;
    &#039;逻辑处理器&#039;: &#039;Block-logic-processor-ui.png&#039;,&lt;br /&gt;
    &#039;超核处理器&#039;: &#039;Block-hyper-processor-ui.png&#039;,&lt;br /&gt;
    &#039;逻辑显示屏&#039;: &#039;Block-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;大型逻辑显示屏&#039;: &#039;Block-large-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;逻辑显示单元&#039;: &#039;Block-tile-logic-display-ui.png&#039;,&lt;br /&gt;
    &#039;内存元&#039;: &#039;Block-memory-cell-ui.png&#039;,&lt;br /&gt;
    &#039;内存库&#039;: &#039;Block-memory-bank-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;草地&#039;: &#039;Block-grass-ui.png&#039;,&lt;br /&gt;
    &#039;矿渣液&#039;: &#039;Block-molten-slag-ui.png&#039;,&lt;br /&gt;
    //&#039;冷冻液&#039;: &#039;Block-pooled-cryofluid-ui.png&#039;,   这是地板！ai都不看重复的吗&lt;br /&gt;
    &#039;太空&#039;: &#039;Block-space-ui.png&#039;,&lt;br /&gt;
    &#039;盐碱地&#039;: &#039;Block-salt-ui.png&#039;,&lt;br /&gt;
    &#039;盐墙&#039;: &#039;Block-salt-wall-ui.png&#039;,&lt;br /&gt;
    &#039;鹏卵石&#039;: &#039;Block-pebbles-ui.png&#039;,&lt;br /&gt;
    &#039;卷须&#039;: &#039;Block-tendrils-ui.png&#039;,&lt;br /&gt;
    &#039;沙墙&#039;: &#039;Block-sand-wall-ui.png&#039;,&lt;br /&gt;
    &#039;孢子树&#039;: &#039;Block-spore-pine-ui.png&#039;,&lt;br /&gt;
    &#039;孢子墙&#039;: &#039;Block-spore-wall-ui.png&#039;,&lt;br /&gt;
    &#039;石块&#039;: &#039;Block-stone-ui.png&#039;,&lt;br /&gt;
    &#039;雪石块&#039;: &#039;Block-snow-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;雪树&#039;: &#039;Block-snow-pine-ui.png&#039;,&lt;br /&gt;
    &#039;页岩地&#039;: &#039;Block-shale-ui.png&#039;,&lt;br /&gt;
    &#039;页岩石块&#039;: &#039;Block-shale-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;芜藻地&#039;: &#039;Block-moss-ui.png&#039;,&lt;br /&gt;
    &#039;灌木丛&#039;: &#039;Block-shrubs-ui.png&#039;,&lt;br /&gt;
    &#039;孢子芜藻地&#039;: &#039;Block-spore-moss-ui.png&#039;,&lt;br /&gt;
    &#039;页岩墙&#039;: &#039;Block-shale-wall-ui.png&#039;,&lt;br /&gt;
    &#039;废墙&#039;: &#039;Block-scrap-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型废墙&#039;: &#039;Block-scrap-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;巨型废墙&#039;: &#039;Block-scrap-wall-huge-ui.png&#039;,&lt;br /&gt;
    &#039;超巨型废墙&#039;: &#039;Block-scrap-wall-gigantic-ui.png&#039;,&lt;br /&gt;
    &#039;推进器残骵&#039;: &#039;Block-thruster-ui.png&#039;,&lt;br /&gt;
    &#039;深水&#039;: &#039;Block-deep-water-ui.png&#039;,&lt;br /&gt;
    //&#039;水&#039;: &#039;Block-shallow-water-ui.png&#039;,   这是地板！ai都不看重复的吗？&lt;br /&gt;
    &#039;污水&#039;: &#039;Block-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;深污水&#039;: &#039;Block-deep-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;黑沙污水&#039;: &#039;Block-darksand-tainted-water-ui.png&#039;,&lt;br /&gt;
    &#039;石油&#039;: &#039;Block-tar-ui.png&#039;,&lt;br /&gt;
    &#039;石头&#039;: &#039;Block-stone-ui.png&#039;,&lt;br /&gt;
    &#039;沙子&#039;: &#039;Block-sand-floor-ui.png&#039;,&lt;br /&gt;
    &#039;黑沙&#039;: &#039;Block-darksand-ui.png&#039;,&lt;br /&gt;
    &#039;冰&#039;: &#039;Block-ice-ui.png&#039;,&lt;br /&gt;
    &#039;雪&#039;: &#039;Block-snow-ui.png&#039;,&lt;br /&gt;
    &#039;陶石坑&#039;: &#039;Block-crater.png&#039;,&lt;br /&gt;
    &#039;浅滩&#039;: &#039;Block-shallow-water-ui.png&#039;,&lt;br /&gt;
    &#039;黑沙浅滩&#039;: &#039;Block-darksand-water-ui.png&#039;,&lt;br /&gt;
    &#039;焦土&#039;: &#039;Block-scorch-ui.png&#039;,&lt;br /&gt;
    &#039;安山岩&#039;: &#039;Block-dacite-ui.png&#039;,&lt;br /&gt;
    &#039;流纹岩&#039;: &#039;Block-rhyolite-ui.png&#039;,&lt;br /&gt;
    &#039;安山岩墙&#039;: &#039;Block-dacite-wall-ui.png&#039;,&lt;br /&gt;
    &#039;安山石块&#039;: &#039;Block-dacite-boulder-ui.png&#039;,&lt;br /&gt;
    &#039;冰雪地&#039;: &#039;Block-ice-snow-ui.png&#039;,&lt;br /&gt;
    &#039;石墙&#039;: &#039;Block-stone-wall-ui.png&#039;,&lt;br /&gt;
    &#039;冰墙&#039;: &#039;Block-ice-wall-ui.png&#039;,&lt;br /&gt;
    &#039;雪墙&#039;: &#039;Block-snow-wall-ui.png&#039;,&lt;br /&gt;
    &#039;沙丘岩&#039;: &#039;Block-dune-wall-ui.png&#039;,&lt;br /&gt;
    &#039;松树&#039;: &#039;Block-pine-ui.png&#039;,&lt;br /&gt;
    &#039;泥土&#039;: &#039;Block-dirt-ui.png&#039;,&lt;br /&gt;
    &#039;泥土墙&#039;: &#039;Block-dirt-wall-ui.png&#039;,&lt;br /&gt;
    &#039;泥巴&#039;: &#039;Block-mud-ui.png&#039;,&lt;br /&gt;
    &#039;枯萎的白树&#039;: &#039;Block-white-tree-dead-ui.png&#039;,&lt;br /&gt;
    &#039;白树&#039;: &#039;Block-white-tree-ui.png&#039;,&lt;br /&gt;
    &#039;孢子簇&#039;: &#039;Block-spore-cluster-ui.png&#039;,&lt;br /&gt;
    &#039;金属地板1&#039;: &#039;Block-metal-floor-ui.png&#039;,&lt;br /&gt;
    &#039;金属地板2&#039;: &#039;Block-metal-floor-2-ui.png&#039;,&lt;br /&gt;
    &#039;金属地板3&#039;: &#039;Block-metal-floor-3-ui.png&#039;,&lt;br /&gt;
    &#039;金属地板4&#039;: &#039;Block-metal-floor-4-ui.png&#039;,&lt;br /&gt;
    &#039;金属地板5&#039;: &#039;Block-metal-floor-5-ui.png&#039;,&lt;br /&gt;
    &#039;损坏的金属地板&#039;: &#039;Block-metal-floor-damaged-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基1&#039;: &#039;Block-metal-tiles-1-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基2&#039;: &#039;Block-metal-tiles-2-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基3&#039;: &#039;Block-metal-tiles-3-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基4&#039;: &#039;Block-metal-tiles-4-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基5&#039;: &#039;Block-metal-tiles-5-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基6&#039;: &#039;Block-metal-tiles-6-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基7&#039;: &#039;Block-metal-tiles-7-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基8&#039;: &#039;Block-metal-tiles-8-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基9&#039;: &#039;Block-metal-tiles-9-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基10&#039;: &#039;Block-metal-tiles-10-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基11&#039;: &#039;Block-metal-tiles-11-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基12&#039;: &#039;Block-metal-tiles-12-ui.png&#039;,&lt;br /&gt;
    &#039;金属地基13&#039;: &#039;Block-metal-tiles-13-ui.png&#039;,&lt;br /&gt;
    &#039;金属墙1&#039;: &#039;Block-metal-wall-1-ui.png&#039;,&lt;br /&gt;
    &#039;金属墙2&#039;: &#039;Block-metal-wall-2-ui.png&#039;,&lt;br /&gt;
    &#039;金属墙3&#039;: &#039;Block-metal-wall-3-ui.png&#039;,&lt;br /&gt;
    &#039;染色地板&#039;: &#039;Block-colored-floor-ui.png&#039;,&lt;br /&gt;
    &#039;染色墙壈&#039;: &#039;Block-colored-wall-ui.png&#039;,&lt;br /&gt;
    &#039;标识贴片&#039;: &#039;Block-character-overlay-ui.png&#039;,&lt;br /&gt;
    &#039;标识贴片(白色)&#039;: &#039;Block-character-overlay-white-ui.png&#039;,&lt;br /&gt;
    &#039;符文贴片&#039;: &#039;Block-rune-overlay-ui.png&#039;,&lt;br /&gt;
    &#039;符文贴片（红队）&#039;: &#039;Block-rune-overlay-crux-ui.png&#039;,&lt;br /&gt;
    &#039;暗面板1&#039;: &#039;Block-dark-panel-1-ui.png&#039;,&lt;br /&gt;
    &#039;暗面板2&#039;: &#039;Block-dark-panel-2-ui.png&#039;,&lt;br /&gt;
    &#039;暗面板3&#039;: &#039;Block-dark-panel-3-ui.png&#039;,&lt;br /&gt;
    &#039;暗面板4&#039;: &#039;Block-dark-panel-4-ui.png&#039;,&lt;br /&gt;
    &#039;暗面板5&#039;: &#039;Block-dark-panel-5-ui.png&#039;,&lt;br /&gt;
    &#039;暗面板6&#039;: &#039;Block-dark-panel-6-ui.png&#039;,&lt;br /&gt;
    &#039;暗金属&#039;: &#039;Block-dark-metal-ui.png&#039;,&lt;br /&gt;
    &#039;玄武岩&#039;: &#039;Block-basalt-ui.png&#039;,&lt;br /&gt;
    &#039;灼热岩石&#039;: &#039;Block-hotrock-ui.png&#039;,&lt;br /&gt;
    &#039;熔融岩石&#039;: &#039;Block-magmarock-ui.png&#039;,&lt;br /&gt;
    &#039;铜墙&#039;: &#039;Block-copper-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型铜墙&#039;: &#039;Block-copper-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;钛墙&#039;: &#039;Block-titanium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型钛墙&#039;: &#039;Block-titanium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;塑钢墙&#039;: &#039;Block-plastanium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型塑钢墙&#039;: &#039;Block-plastanium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;相织布墙&#039;: &#039;Block-phase-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型相织布墙&#039;: &#039;Block-phase-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;钱墙&#039;: &#039;Block-thorium-wall-ui.png&#039;,&lt;br /&gt;
    &#039;大型钱墙&#039;: &#039;Block-thorium-wall-large-ui.png&#039;,&lt;br /&gt;
    &#039;门&#039;: &#039;Block-door-ui.png&#039;,&lt;br /&gt;
    &#039;大门&#039;: &#039;Block-door-large-ui.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;塞普罗&#039;: &#039;Planet-serpulo.png&#039;,&lt;br /&gt;
    &#039;埃里克尔&#039;: &#039;Planet-erekir.png&#039;,&lt;br /&gt;
    &#039;太阳&#039;: &#039;Sun.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;降雨&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;降雪&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;沙尘暴&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;孢子风暴&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
    &#039;雾&#039;: &#039;ohno.png&#039;,&lt;br /&gt;
&lt;br /&gt;
    &#039;燃烧&#039;: &#039;Status-burning-ui.png&#039;,&lt;br /&gt;
    &#039;冻结&#039;: &#039;Status-freezing-ui.png&#039;,&lt;br /&gt;
    &#039;潮湿&#039;: &#039;Status-wet-ui.png&#039;,&lt;br /&gt;
    &#039;泥污&#039;: &#039;Status-muddy-ui.png&#039;,&lt;br /&gt;
    &#039;熔化&#039;: &#039;Status-melting-ui.png&#039;,&lt;br /&gt;
    &#039;弱化&#039;: &#039;Status-slow-ui.png&#039;,&lt;br /&gt;
    &#039;麻痹&#039;: &#039;Status-electrified-ui.png&#039;,&lt;br /&gt;
    &#039;孢子减速&#039;: &#039;Status-spore-slowed-ui.png&#039;,&lt;br /&gt;
    &#039;油浸&#039;: &#039;Status-tarred-ui.png&#039;,&lt;br /&gt;
    &#039;过载&#039;: &#039;Status-overdrive-ui.png&#039;,&lt;br /&gt;
    &#039;超频&#039;: &#039;Status-overclock-ui.png&#039;,&lt;br /&gt;
    &#039;电击&#039;: &#039;Status-shocked-ui.png&#039;,&lt;br /&gt;
    &#039;爆炸&#039;: &#039;Status-blasted-ui.png&#039;,&lt;br /&gt;
    &#039;腐蚀&#039;: &#039;Status-corroded-ui.png&#039;,&lt;br /&gt;
    &#039;静止&#039;: &#039;Status-unmoving-ui.png&#039;,&lt;br /&gt;
    &#039;Boss&#039;: &#039;Status-boss-ui.png&#039;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
    function getEditorTextarea() {&lt;br /&gt;
      return document.getElementById(&#039;wpTextbox1&#039;) ||&lt;br /&gt;
        document.querySelector(&#039;textarea#wpTextbox1&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildIconWikitext(filename, title) {&lt;br /&gt;
      var file = String(filename);&lt;br /&gt;
      var t = String(title);&lt;br /&gt;
      return &#039;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:&#039; + file + &#039;|&#039; + String(MDT_ICON_SIZE) + &#039;px|link=&#039; + t + &#039;]]&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildTitlePattern(titles) {&lt;br /&gt;
      // Prefer longer first to avoid partial matches.&lt;br /&gt;
      var list = titles.slice().sort(function (a, b) { return b.length - a.length; });&lt;br /&gt;
      var escaped = [];&lt;br /&gt;
      for (var i = 0; i &amp;lt; list.length; i++) {&lt;br /&gt;
        escaped.push(list[i].replace(/[.*+?^${}()|[\]\\]/g, &#039;\\$&amp;amp;&#039;));&lt;br /&gt;
      }&lt;br /&gt;
      return escaped.join(&#039;|&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function convertWikitext(text) {&lt;br /&gt;
      var titles = Object.keys(MDT_ICON_MAP || {});&lt;br /&gt;
      if (!titles.length) return { text: text, changed: 0 };&lt;br /&gt;
&lt;br /&gt;
      var pattern = buildTitlePattern(titles);&lt;br /&gt;
&lt;br /&gt;
      // Only convert links like [[Title]] or [[Title|Label]].&lt;br /&gt;
      // Skip links already preceded by mdtPixelIcon span.&lt;br /&gt;
      var re = new RegExp(&#039;\\[\\[(&#039; + pattern + &#039;)(?:\\|[^\\]]*)?\\]\\]&#039;, &#039;g&#039;);&lt;br /&gt;
      &lt;br /&gt;
      var changed = 0;&lt;br /&gt;
      var out = text.replace(re, function (m, title, offset) {&lt;br /&gt;
        var before = text.slice(Math.max(0, offset - 120), offset);&lt;br /&gt;
        if (before.indexOf(&#039;class=&amp;quot;mdtPixelIcon&amp;quot;&#039;) !== -1) return m;&lt;br /&gt;
        if (/\[\[File:|\[\[Image:/i.test(m)) return m;&lt;br /&gt;
&lt;br /&gt;
        var filename = MDT_ICON_MAP[title];&lt;br /&gt;
        if (!filename) return m;&lt;br /&gt;
&lt;br /&gt;
        changed++;&lt;br /&gt;
        return buildIconWikitext(filename, title) + &#039; &#039; + m;&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      return { text: out, changed: changed };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function initEditorTool() {&lt;br /&gt;
      var ta = getEditorTextarea();&lt;br /&gt;
      if (!ta) return;&lt;br /&gt;
      if (ta.getAttribute(&#039;data-mdtIconTool&#039;) === &#039;1&#039;) return;&lt;br /&gt;
      ta.setAttribute(&#039;data-mdtIconTool&#039;, &#039;1&#039;);&lt;br /&gt;
&lt;br /&gt;
      var host = document.createElement(&#039;div&#039;);&lt;br /&gt;
      host.style.margin = &#039;0 0 8px 0&#039;;&lt;br /&gt;
      host.style.display = &#039;flex&#039;;&lt;br /&gt;
      host.style.gap = &#039;8px&#039;;&lt;br /&gt;
      host.style.flexWrap = &#039;wrap&#039;;&lt;br /&gt;
      host.style.alignItems = &#039;center&#039;;&lt;br /&gt;
&lt;br /&gt;
      var btn = document.createElement(&#039;button&#039;);&lt;br /&gt;
      btn.type = &#039;button&#039;;&lt;br /&gt;
      btn.className = &#039;mw-ui-button mw-ui-progressive&#039;;&lt;br /&gt;
      btn.textContent = &#039;一键配图标&#039;;&lt;br /&gt;
&lt;br /&gt;
      var undo = document.createElement(&#039;button&#039;);&lt;br /&gt;
      undo.type = &#039;button&#039;;&lt;br /&gt;
      undo.className = &#039;mw-ui-button&#039;;&lt;br /&gt;
      undo.textContent = &#039;撤销配图标&#039;;&lt;br /&gt;
      undo.disabled = true;&lt;br /&gt;
&lt;br /&gt;
      var note = document.createElement(&#039;span&#039;);&lt;br /&gt;
      note.style.opacity = &#039;0.75&#039;;&lt;br /&gt;
      note.style.fontSize = &#039;12px&#039;;&lt;br /&gt;
      note.textContent = &#039;只处理[[...]]链接&#039;;&lt;br /&gt;
&lt;br /&gt;
      host.appendChild(btn);&lt;br /&gt;
      host.appendChild(undo);&lt;br /&gt;
      host.appendChild(note);&lt;br /&gt;
&lt;br /&gt;
      if (ta.parentNode) ta.parentNode.insertBefore(host, ta);&lt;br /&gt;
&lt;br /&gt;
      var backup = &#039;&#039;;&lt;br /&gt;
      btn.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
        var current = String(ta.value || &#039;&#039;);&lt;br /&gt;
        var result = convertWikitext(current);&lt;br /&gt;
        if (!result.changed) {&lt;br /&gt;
          alert(&#039;没有可替换的链接&#039;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        backup = current;&lt;br /&gt;
        undo.disabled = false;&lt;br /&gt;
        ta.value = result.text;&lt;br /&gt;
        alert(&#039;已插入 &#039; + String(result.changed) + &#039; 个图标&#039;);&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      undo.addEventListener(&#039;click&#039;, function () {&lt;br /&gt;
        if (!backup) {&lt;br /&gt;
          alert(&#039;没有备份&#039;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        ta.value = backup;&lt;br /&gt;
        backup = &#039;&#039;;&lt;br /&gt;
        undo.disabled = true;&lt;br /&gt;
        alert(&#039;已撤销&#039;);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
      document.addEventListener(&#039;DOMContentLoaded&#039;, initEditorTool);&lt;br /&gt;
    } else {&lt;br /&gt;
      initEditorTool();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* Mindustry 地图库小部件（MediaWiki）&lt;br /&gt;
 */&lt;br /&gt;
(() =&amp;gt; {&lt;br /&gt;
  &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  const DEFAULT_CONFIG = {&lt;br /&gt;
    apiBase: &amp;quot;https://api.mindustry.top/&amp;quot;,&lt;br /&gt;
    pageSize: 15,&lt;br /&gt;
    containerSelector: &amp;quot;.mindustry-map-widget&amp;quot;,&lt;br /&gt;
    enableInfiniteScroll: true,&lt;br /&gt;
    onlyOnPageNames: [&amp;quot;地图库&amp;quot;],&lt;br /&gt;
    showSort: true,&lt;br /&gt;
    maxTagOptions: 48,&lt;br /&gt;
    detailTemplate: &amp;quot;https://www.mindustry.top/map/{id}/latest&amp;quot;,&lt;br /&gt;
    tagOptions: null,&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  const userConfig =&lt;br /&gt;
    (typeof window !== &amp;quot;undefined&amp;quot; &amp;amp;&amp;amp; window.MindustryMapWidgetConfig) || {};&lt;br /&gt;
  const config = { ...DEFAULT_CONFIG, ...userConfig };&lt;br /&gt;
&lt;br /&gt;
  const sorters = [&lt;br /&gt;
    { value: &amp;quot;&amp;quot;, label: &amp;quot;热度&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;updateTime&amp;quot;, label: &amp;quot;更新时间&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;createTime&amp;quot;, label: &amp;quot;发布时间&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;download&amp;quot;, label: &amp;quot;下载量&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;rating&amp;quot;, label: &amp;quot;评分&amp;quot; },&lt;br /&gt;
    { value: &amp;quot;like&amp;quot;, label: &amp;quot;点赞数&amp;quot; },&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  const normalizeApiBase = (base) =&amp;gt; (base.endsWith(&amp;quot;/&amp;quot;) ? base : base + &amp;quot;/&amp;quot;);&lt;br /&gt;
  config.apiBase = normalizeApiBase(String(config.apiBase || &amp;quot;&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
  function mapUrl(raw) {&lt;br /&gt;
    const s = String(raw || &amp;quot;&amp;quot;);&lt;br /&gt;
    if (s.startsWith(&amp;quot;/api/&amp;quot;)) return config.apiBase + s.substring(5);&lt;br /&gt;
    return s;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function resolveTemplate(template, vars) {&lt;br /&gt;
    let s = String(template || &amp;quot;&amp;quot;);&lt;br /&gt;
    for (const [k, v] of Object.entries(vars || {})) {&lt;br /&gt;
      s = s.replaceAll(`{${k}}`, String(v));&lt;br /&gt;
    }&lt;br /&gt;
    return s;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function el(tag, attrs, ...children) {&lt;br /&gt;
    const node = document.createElement(tag);&lt;br /&gt;
    if (attrs) {&lt;br /&gt;
      for (const [k, v] of Object.entries(attrs)) {&lt;br /&gt;
        if (v === undefined || v === null) continue;&lt;br /&gt;
        if (k === &amp;quot;class&amp;quot;) node.className = String(v);&lt;br /&gt;
        else if (k === &amp;quot;text&amp;quot;) node.textContent = String(v);&lt;br /&gt;
        else if (k === &amp;quot;html&amp;quot;) node.innerHTML = String(v);&lt;br /&gt;
        else if (k.startsWith(&amp;quot;on&amp;quot;) &amp;amp;&amp;amp; typeof v === &amp;quot;function&amp;quot;)&lt;br /&gt;
          node.addEventListener(k.substring(2), v);&lt;br /&gt;
        else node.setAttribute(k, String(v));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    for (const child of children.flat()) {&lt;br /&gt;
      if (child === undefined || child === null) continue;&lt;br /&gt;
      node.append(child instanceof Node ? child : document.createTextNode(String(child)));&lt;br /&gt;
    }&lt;br /&gt;
    return node;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function safeOpen(url) {&lt;br /&gt;
    window.open(url, &amp;quot;_blank&amp;quot;, &amp;quot;noopener,noreferrer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function isFiveDigits(s) {&lt;br /&gt;
    return /^\d{5}$/.test(String(s || &amp;quot;&amp;quot;).trim());&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function buildSearchString(keyword, selectedTags, sort) {&lt;br /&gt;
    let s = String(keyword || &amp;quot;&amp;quot;).replace(/\s+/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
    for (const t of Array.isArray(selectedTags) ? selectedTags : []) {&lt;br /&gt;
      const tt = String(t || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      if (!tt) continue;&lt;br /&gt;
      s += ` ${tt} `;&lt;br /&gt;
    }&lt;br /&gt;
    if (sort) s += ` @sort:${sort} `;&lt;br /&gt;
    return s.replace(/\s+/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function mapsListUrl(begin, search) {&lt;br /&gt;
    const url = new URL(config.apiBase + &amp;quot;maps/list&amp;quot;);&lt;br /&gt;
    url.searchParams.set(&amp;quot;begin&amp;quot;, String(begin || 0));&lt;br /&gt;
    url.searchParams.set(&amp;quot;search&amp;quot;, String(search || &amp;quot;&amp;quot;));&lt;br /&gt;
    return url.toString();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function detailUrl(thread) {&lt;br /&gt;
    if (typeof config.detailUrl === &amp;quot;function&amp;quot;) return config.detailUrl(thread);&lt;br /&gt;
    const id = encodeURIComponent(String(thread));&lt;br /&gt;
    return resolveTemplate(config.detailTemplate, { id });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function downloadUrl(thread) {&lt;br /&gt;
    return mapUrl(`/api/maps/${encodeURIComponent(String(thread))}.msav`);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function setActiveButton(groupEl, value) {&lt;br /&gt;
    if (!groupEl) return;&lt;br /&gt;
    for (const btn of groupEl.querySelectorAll(&amp;quot;button[data-value]&amp;quot;)) {&lt;br /&gt;
      btn.classList.toggle(&lt;br /&gt;
        &amp;quot;is-active&amp;quot;,&lt;br /&gt;
        btn.getAttribute(&amp;quot;data-value&amp;quot;) === String(value || &amp;quot;&amp;quot;),&lt;br /&gt;
      );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function parseTag(raw) {&lt;br /&gt;
    const parts = String(raw || &amp;quot;&amp;quot;).split(&amp;quot;搂&amp;quot;);&lt;br /&gt;
    const text = (parts[0] || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
    const color = (parts[1] || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
    return { text, color };&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizeTagOptions(raw) {&lt;br /&gt;
    const out = [];&lt;br /&gt;
    if (!raw) return out;&lt;br /&gt;
    const arr = Array.isArray(raw) ? raw : [raw];&lt;br /&gt;
    for (const item of arr) {&lt;br /&gt;
      if (typeof item === &amp;quot;string&amp;quot;) {&lt;br /&gt;
        const text = item.trim();&lt;br /&gt;
        if (text) out.push({ text, color: &amp;quot;&amp;quot; });&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      if (!item || typeof item !== &amp;quot;object&amp;quot;) continue;&lt;br /&gt;
      const text = String(item.text ?? item.label ?? &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      if (!text) continue;&lt;br /&gt;
      const color = String(item.color ?? &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      out.push({ text, color });&lt;br /&gt;
    }&lt;br /&gt;
    return out;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function normalizePageNameList(raw) {&lt;br /&gt;
    if (raw === null) return null;&lt;br /&gt;
    if (raw === undefined) return null;&lt;br /&gt;
    if (raw === false) return null;&lt;br /&gt;
    const arr = Array.isArray(raw) ? raw : [raw];&lt;br /&gt;
    const list = arr&lt;br /&gt;
      .map((it) =&amp;gt; String(it || &amp;quot;&amp;quot;).trim())&lt;br /&gt;
      .filter((it) =&amp;gt; it.length &amp;gt; 0);&lt;br /&gt;
    return list.length &amp;gt; 0 ? list : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function shouldInitOnThisPage() {&lt;br /&gt;
    const only = normalizePageNameList(config.onlyOnPageNames);&lt;br /&gt;
    if (!only) return true;&lt;br /&gt;
    if (!window.mw || !window.mw.config || typeof window.mw.config.get !== &amp;quot;function&amp;quot;) {&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
    const pageName = window.mw.config.get(&amp;quot;wgPageName&amp;quot;);&lt;br /&gt;
    if (!pageName) return true;&lt;br /&gt;
    return only.includes(String(pageName));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderWidget(root) {&lt;br /&gt;
    const state = {&lt;br /&gt;
      keyword: &amp;quot;&amp;quot;,&lt;br /&gt;
      sort: &amp;quot;&amp;quot;,&lt;br /&gt;
      selectedTags: [],&lt;br /&gt;
      begin: 0,&lt;br /&gt;
      hasNext: true,&lt;br /&gt;
      loading: false,&lt;br /&gt;
      abort: null,&lt;br /&gt;
      pagesLoaded: 0,&lt;br /&gt;
      tagStats: new Map(),&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    const searchInput = el(&amp;quot;input&amp;quot;, {&lt;br /&gt;
      type: &amp;quot;search&amp;quot;,&lt;br /&gt;
      placeholder: &amp;quot;查找地图名称（输入 5 位地图ID 可直接打开详情）&amp;quot;,&lt;br /&gt;
      value: &amp;quot;&amp;quot;,&lt;br /&gt;
    });&lt;br /&gt;
    const searchBtn = el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn mmw-btn-primary&amp;quot;, type: &amp;quot;button&amp;quot;, text: &amp;quot;搜索&amp;quot; });&lt;br /&gt;
    const clearBtn = el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn&amp;quot;, type: &amp;quot;button&amp;quot;, text: &amp;quot;清空&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    const searchRow = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-search mmw-search-row&amp;quot; }, searchInput, searchBtn, clearBtn);&lt;br /&gt;
&lt;br /&gt;
    const tagPickerGroup = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-tag-picker&amp;quot;, &amp;quot;data-group&amp;quot;: &amp;quot;tags&amp;quot; });&lt;br /&gt;
    const clearTagsBtn = el(&amp;quot;button&amp;quot;, {&lt;br /&gt;
      class: &amp;quot;mmw-tag mmw-tag-btn mmw-tag-clear&amp;quot;,&lt;br /&gt;
      type: &amp;quot;button&amp;quot;,&lt;br /&gt;
      text: &amp;quot;清除标签&amp;quot;,&lt;br /&gt;
      title: &amp;quot;清除已选择的标签&amp;quot;,&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    const tagRow = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-filter mmw-filter-tags&amp;quot; },&lt;br /&gt;
      el(&amp;quot;span&amp;quot;, { class: &amp;quot;mmw-filter-label&amp;quot;, text: &amp;quot;标签筛选：&amp;quot; }),&lt;br /&gt;
      tagPickerGroup,&lt;br /&gt;
      clearTagsBtn,&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const sortGroup = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-btn-group&amp;quot;, &amp;quot;data-group&amp;quot;: &amp;quot;sort&amp;quot; },&lt;br /&gt;
      ...sorters.map((s) =&amp;gt;&lt;br /&gt;
        el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn&amp;quot;, type: &amp;quot;button&amp;quot;, &amp;quot;data-value&amp;quot;: s.value, text: s.label }),&lt;br /&gt;
      ),&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const sortRow = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-filter&amp;quot; },&lt;br /&gt;
      el(&amp;quot;span&amp;quot;, { class: &amp;quot;mmw-filter-label&amp;quot;, text: &amp;quot;排序方式：&amp;quot; }),&lt;br /&gt;
      sortGroup,&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const filters = el(&lt;br /&gt;
      &amp;quot;div&amp;quot;,&lt;br /&gt;
      { class: &amp;quot;mmw-filters&amp;quot; },&lt;br /&gt;
      tagRow,&lt;br /&gt;
      config.showSort ? sortRow : null,&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    const grid = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-grid&amp;quot; });&lt;br /&gt;
    const empty = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-muted&amp;quot;, text: &amp;quot;暂无数据（尝试切换筛选或关键词）&amp;quot; });&lt;br /&gt;
    const status = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-muted&amp;quot;, text: &amp;quot;&amp;quot; });&lt;br /&gt;
    const loadMoreBtn = el(&amp;quot;button&amp;quot;, { class: &amp;quot;mmw-btn&amp;quot;, type: &amp;quot;button&amp;quot;, text: &amp;quot;加载更多&amp;quot; });&lt;br /&gt;
    const footer = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-footer&amp;quot; }, loadMoreBtn, status);&lt;br /&gt;
    const sentinel = el(&amp;quot;div&amp;quot;, { style: &amp;quot;height: 1px;&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    function setStatus(text) {&lt;br /&gt;
      status.textContent = String(text || &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function setLoading(loading) {&lt;br /&gt;
      state.loading = !!loading;&lt;br /&gt;
      loadMoreBtn.disabled = state.loading;&lt;br /&gt;
      searchBtn.disabled = state.loading;&lt;br /&gt;
      clearBtn.disabled = state.loading;&lt;br /&gt;
      clearTagsBtn.disabled = state.loading;&lt;br /&gt;
      setStatus(state.loading ? &amp;quot;加载中…&amp;quot; : &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function clearGrid() {&lt;br /&gt;
      grid.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
      grid.append(empty);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function mapTagTexts(map) {&lt;br /&gt;
      const rawTags = Array.isArray(map?.tags) ? map.tags : [];&lt;br /&gt;
      const texts = [];&lt;br /&gt;
      for (const raw of rawTags) {&lt;br /&gt;
        const { text } = parseTag(raw);&lt;br /&gt;
        if (text) texts.push(text);&lt;br /&gt;
      }&lt;br /&gt;
      return texts;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function updateTagStatsFromMaps(maps) {&lt;br /&gt;
      for (const map of Array.isArray(maps) ? maps : []) {&lt;br /&gt;
        for (const raw of Array.isArray(map?.tags) ? map.tags : []) {&lt;br /&gt;
          const { text, color } = parseTag(raw);&lt;br /&gt;
          if (!text) continue;&lt;br /&gt;
          const prev = state.tagStats.get(text);&lt;br /&gt;
          if (!prev) state.tagStats.set(text, { count: 1, color: color || &amp;quot;&amp;quot; });&lt;br /&gt;
          else state.tagStats.set(text, { count: prev.count + 1, color: prev.color || color || &amp;quot;&amp;quot; });&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function isTagSelected(tag) {&lt;br /&gt;
      return state.selectedTags.includes(String(tag));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function toggleTag(tag) {&lt;br /&gt;
      const t = String(tag || &amp;quot;&amp;quot;).trim();&lt;br /&gt;
      if (!t) return;&lt;br /&gt;
      if (isTagSelected(t)) state.selectedTags = state.selectedTags.filter((x) =&amp;gt; x !== t);&lt;br /&gt;
      else state.selectedTags = [...state.selectedTags, t];&lt;br /&gt;
      renderTagPicker();&lt;br /&gt;
      void load(true);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function clearTags() {&lt;br /&gt;
      if (state.selectedTags.length === 0) return;&lt;br /&gt;
      state.selectedTags = [];&lt;br /&gt;
      renderTagPicker();&lt;br /&gt;
      void load(true);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function renderTagPicker() {&lt;br /&gt;
      tagPickerGroup.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
      const selected = state.selectedTags.slice();&lt;br /&gt;
      const pinned = normalizeTagOptions(config.tagOptions).filter((it) =&amp;gt; !selected.includes(it.text));&lt;br /&gt;
      const entries = [...state.tagStats.entries()];&lt;br /&gt;
      entries.sort((a, b) =&amp;gt; {&lt;br /&gt;
        const ac = a[1]?.count ?? 0;&lt;br /&gt;
        const bc = b[1]?.count ?? 0;&lt;br /&gt;
        if (bc !== ac) return bc - ac;&lt;br /&gt;
        return a[0].localeCompare(b[0], &amp;quot;zh-Hans-CN-u-co-pinyin&amp;quot;);&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      const max = Math.max(0, Number(config.maxTagOptions || 0));&lt;br /&gt;
      const candidates = entries&lt;br /&gt;
        .map(([text, meta]) =&amp;gt; ({ text, color: meta?.color || &amp;quot;&amp;quot; }))&lt;br /&gt;
        .filter((it) =&amp;gt; !selected.includes(it.text) &amp;amp;&amp;amp; !pinned.some((p) =&amp;gt; p.text === it.text))&lt;br /&gt;
        .slice(0, max);&lt;br /&gt;
&lt;br /&gt;
      const renderOne = ({ text, color }) =&amp;gt; {&lt;br /&gt;
        const btn = el(&amp;quot;button&amp;quot;, {&lt;br /&gt;
          class: `mmw-tag mmw-tag-btn${isTagSelected(text) ? &amp;quot; is-active&amp;quot; : &amp;quot;&amp;quot;}`,&lt;br /&gt;
          type: &amp;quot;button&amp;quot;,&lt;br /&gt;
          text,&lt;br /&gt;
          &amp;quot;data-tag&amp;quot;: text,&lt;br /&gt;
        });&lt;br /&gt;
        if (color) {&lt;br /&gt;
          btn.style.borderColor = color;&lt;br /&gt;
          btn.style.color = color;&lt;br /&gt;
          btn.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        btn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; toggleTag(text));&lt;br /&gt;
        tagPickerGroup.append(btn);&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      for (const t of selected) renderOne({ text: t, color: state.tagStats.get(t)?.color || &amp;quot;&amp;quot; });&lt;br /&gt;
      for (const it of pinned) renderOne(it);&lt;br /&gt;
      for (const it of candidates) renderOne(it);&lt;br /&gt;
&lt;br /&gt;
      clearTagsBtn.style.display = state.selectedTags.length &amp;gt; 0 ? &amp;quot;&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function renderCard(map) {&lt;br /&gt;
      const previewSrc = mapUrl(map.preview);&lt;br /&gt;
      const card = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-card&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
      const previewLink = el(&amp;quot;a&amp;quot;, {&lt;br /&gt;
        class: &amp;quot;mmw-preview&amp;quot;,&lt;br /&gt;
        href: detailUrl(map.id),&lt;br /&gt;
        target: &amp;quot;_blank&amp;quot;,&lt;br /&gt;
        rel: &amp;quot;noopener noreferrer&amp;quot;,&lt;br /&gt;
        title: &amp;quot;打开详情&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      previewLink.append(el(&amp;quot;img&amp;quot;, { src: previewSrc, alt: &amp;quot;preview&amp;quot;, loading: &amp;quot;lazy&amp;quot; }));&lt;br /&gt;
&lt;br /&gt;
      const tagsEl = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-tags&amp;quot; });&lt;br /&gt;
      for (const rawTag of Array.isArray(map.tags) ? map.tags : []) {&lt;br /&gt;
        const { text, color } = parseTag(rawTag);&lt;br /&gt;
        if (!text) continue;&lt;br /&gt;
        const tagEl = el(&amp;quot;span&amp;quot;, { class: &amp;quot;mmw-tag&amp;quot;, text });&lt;br /&gt;
        if (color) {&lt;br /&gt;
          tagEl.style.borderColor = color;&lt;br /&gt;
          tagEl.style.color = color;&lt;br /&gt;
          tagEl.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        tagsEl.append(tagEl);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      const nameEl = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-name&amp;quot;, text: String(map.name || &amp;quot;&amp;quot;) });&lt;br /&gt;
      const descEl = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-desc&amp;quot;, text: String(map.desc || &amp;quot;&amp;quot;) });&lt;br /&gt;
&lt;br /&gt;
      const copyBtn = el(&amp;quot;button&amp;quot;, { type: &amp;quot;button&amp;quot;, text: &amp;quot;复制ID&amp;quot; });&lt;br /&gt;
      copyBtn.addEventListener(&amp;quot;click&amp;quot;, async () =&amp;gt; {&lt;br /&gt;
        const id = String(map.id ?? &amp;quot;&amp;quot;);&lt;br /&gt;
        try {&lt;br /&gt;
          await navigator.clipboard.writeText(id);&lt;br /&gt;
          setStatus(`已复制：${id}`);&lt;br /&gt;
          setTimeout(() =&amp;gt; setStatus(&amp;quot;&amp;quot;), 1200);&lt;br /&gt;
        } catch {&lt;br /&gt;
          window.prompt(&amp;quot;复制失败，请手动复制：&amp;quot;, id);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      const dlLink = el(&amp;quot;a&amp;quot;, {&lt;br /&gt;
        href: downloadUrl(map.id),&lt;br /&gt;
        target: &amp;quot;_blank&amp;quot;,&lt;br /&gt;
        rel: &amp;quot;noopener noreferrer&amp;quot;,&lt;br /&gt;
        text: &amp;quot;下载&amp;quot;,&lt;br /&gt;
        title: &amp;quot;下载 .msav&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      const detailLink = el(&amp;quot;a&amp;quot;, {&lt;br /&gt;
        href: detailUrl(map.id),&lt;br /&gt;
        target: &amp;quot;_blank&amp;quot;,&lt;br /&gt;
        rel: &amp;quot;noopener noreferrer&amp;quot;,&lt;br /&gt;
        text: &amp;quot;详情&amp;quot;,&lt;br /&gt;
        title: &amp;quot;打开详情&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      const actions = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-actions&amp;quot; }, copyBtn, dlLink, detailLink);&lt;br /&gt;
      const body = el(&amp;quot;div&amp;quot;, { class: &amp;quot;mmw-body&amp;quot; }, tagsEl, nameEl, descEl, actions);&lt;br /&gt;
&lt;br /&gt;
      card.append(previewLink, body);&lt;br /&gt;
      return card;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    async function fetchPage(begin) {&lt;br /&gt;
      if (state.abort) state.abort.abort();&lt;br /&gt;
      state.abort = new AbortController();&lt;br /&gt;
      const search = buildSearchString(state.keyword, state.selectedTags, state.sort);&lt;br /&gt;
      const url = mapsListUrl(begin, search);&lt;br /&gt;
      const res = await fetch(url, { signal: state.abort.signal, credentials: &amp;quot;omit&amp;quot; });&lt;br /&gt;
      if (!res.ok) throw new Error(`HTTP ${res.status}`);&lt;br /&gt;
      const data = await res.json();&lt;br /&gt;
      if (!Array.isArray(data)) return [];&lt;br /&gt;
      for (const it of data) {&lt;br /&gt;
        if (it &amp;amp;&amp;amp; typeof it === &amp;quot;object&amp;quot; &amp;amp;&amp;amp; &amp;quot;preview&amp;quot; in it) it.preview = mapUrl(it.preview);&lt;br /&gt;
      }&lt;br /&gt;
      return data;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    async function load(reset) {&lt;br /&gt;
      if (state.loading) return;&lt;br /&gt;
      if (reset) {&lt;br /&gt;
        state.begin = 0;&lt;br /&gt;
        state.hasNext = true;&lt;br /&gt;
        state.pagesLoaded = 0;&lt;br /&gt;
        clearGrid();&lt;br /&gt;
      }&lt;br /&gt;
      if (!state.hasNext) return;&lt;br /&gt;
&lt;br /&gt;
      setLoading(true);&lt;br /&gt;
      try {&lt;br /&gt;
        const page = await fetchPage(state.begin);&lt;br /&gt;
        updateTagStatsFromMaps(page);&lt;br /&gt;
        renderTagPicker();&lt;br /&gt;
        state.pagesLoaded += 1;&lt;br /&gt;
        state.begin += page.length;&lt;br /&gt;
        state.hasNext = page.length &amp;gt;= Number(config.pageSize || 15);&lt;br /&gt;
&lt;br /&gt;
        if (state.begin === page.length) grid.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
        const selected = state.selectedTags.slice();&lt;br /&gt;
        const filtered = selected.length === 0&lt;br /&gt;
          ? page&lt;br /&gt;
          : page.filter((m) =&amp;gt; {&lt;br /&gt;
              const texts = mapTagTexts(m);&lt;br /&gt;
              return selected.every((t) =&amp;gt; texts.includes(t));&lt;br /&gt;
            });&lt;br /&gt;
        for (const map of filtered) grid.append(renderCard(map));&lt;br /&gt;
&lt;br /&gt;
        if (grid.childElementCount === 0) grid.append(empty);&lt;br /&gt;
        loadMoreBtn.style.display = state.hasNext ? &amp;quot;&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
        setStatus(state.hasNext ? &amp;quot;&amp;quot; : &amp;quot;没有更多了&amp;quot;);&lt;br /&gt;
      } catch (e) {&lt;br /&gt;
        const msg = (e &amp;amp;&amp;amp; e.message) || String(e);&lt;br /&gt;
        const lower = String(msg || &amp;quot;&amp;quot;).toLowerCase();&lt;br /&gt;
        const maybeCors =&lt;br /&gt;
          lower.includes(&amp;quot;failed to fetch&amp;quot;) ||&lt;br /&gt;
          lower.includes(&amp;quot;networkerror&amp;quot;) ||&lt;br /&gt;
          lower.includes(&amp;quot;load failed&amp;quot;) ||&lt;br /&gt;
          lower.includes(&amp;quot;cors&amp;quot;);&lt;br /&gt;
        setStatus(&lt;br /&gt;
          maybeCors&lt;br /&gt;
            ? &amp;quot;加载失败：无法请求接口（可能是跨域 CORS），请检查 apiBase 是否允许当前 Wiki 域名访问&amp;quot;&lt;br /&gt;
            : `加载失败：${msg}`,&lt;br /&gt;
        );&lt;br /&gt;
      } finally {&lt;br /&gt;
        setLoading(false);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function applyFiltersUI() {&lt;br /&gt;
      setActiveButton(sortGroup, state.sort);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function commitSearch() {&lt;br /&gt;
      const key = String(searchInput.value || &amp;quot;&amp;quot;).replace(/\s+/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
      if (!key) {&lt;br /&gt;
        state.keyword = &amp;quot;&amp;quot;;&lt;br /&gt;
        void load(true);&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      if (isFiveDigits(key)) {&lt;br /&gt;
        safeOpen(detailUrl(key));&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      state.keyword = key;&lt;br /&gt;
      void load(true);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    sortGroup.addEventListener(&amp;quot;click&amp;quot;, (ev) =&amp;gt; {&lt;br /&gt;
      const btn = ev.target &amp;amp;&amp;amp; ev.target.closest &amp;amp;&amp;amp; ev.target.closest(&amp;quot;button[data-value]&amp;quot;);&lt;br /&gt;
      if (!btn) return;&lt;br /&gt;
      state.sort = btn.getAttribute(&amp;quot;data-value&amp;quot;) || &amp;quot;&amp;quot;;&lt;br /&gt;
      applyFiltersUI();&lt;br /&gt;
      void load(true);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    searchBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; commitSearch());&lt;br /&gt;
    clearBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; {&lt;br /&gt;
      searchInput.value = &amp;quot;&amp;quot;;&lt;br /&gt;
      state.keyword = &amp;quot;&amp;quot;;&lt;br /&gt;
      void load(true);&lt;br /&gt;
    });&lt;br /&gt;
    clearTagsBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; clearTags());&lt;br /&gt;
    searchInput.addEventListener(&amp;quot;keydown&amp;quot;, (ev) =&amp;gt; {&lt;br /&gt;
      if (ev.key === &amp;quot;Enter&amp;quot;) commitSearch();&lt;br /&gt;
    });&lt;br /&gt;
    searchInput.addEventListener(&amp;quot;change&amp;quot;, () =&amp;gt; commitSearch());&lt;br /&gt;
    loadMoreBtn.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; void load(false));&lt;br /&gt;
&lt;br /&gt;
    clearGrid();&lt;br /&gt;
    applyFiltersUI();&lt;br /&gt;
    renderTagPicker();&lt;br /&gt;
&lt;br /&gt;
    root.textContent = &amp;quot;&amp;quot;;&lt;br /&gt;
    root.append(searchRow, filters, grid, sentinel, footer);&lt;br /&gt;
&lt;br /&gt;
    if (config.enableInfiniteScroll &amp;amp;&amp;amp; &amp;quot;IntersectionObserver&amp;quot; in window) {&lt;br /&gt;
      const io = new IntersectionObserver((entries) =&amp;gt; {&lt;br /&gt;
        for (const entry of entries) {&lt;br /&gt;
          if (!entry.isIntersecting) continue;&lt;br /&gt;
          if (state.loading || !state.hasNext) return;&lt;br /&gt;
          void load(false);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
      io.observe(sentinel);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void load(true);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function initAll(container) {&lt;br /&gt;
    if (!shouldInitOnThisPage()) return;&lt;br /&gt;
    const base = container instanceof Element ? container : document;&lt;br /&gt;
    const nodes = base.querySelectorAll(config.containerSelector);&lt;br /&gt;
    for (const node of nodes) renderWidget(node);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function onReady(fn) {&lt;br /&gt;
    if (document.readyState === &amp;quot;loading&amp;quot;) document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, fn);&lt;br /&gt;
    else fn();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (typeof window !== &amp;quot;undefined&amp;quot; &amp;amp;&amp;amp; window.mw &amp;amp;&amp;amp; typeof window.mw.hook === &amp;quot;function&amp;quot;) {&lt;br /&gt;
    window.mw.hook(&amp;quot;wikipage.content&amp;quot;).add(($content) =&amp;gt; {&lt;br /&gt;
      const root = ($content &amp;amp;&amp;amp; $content[0]) || document;&lt;br /&gt;
      initAll(root);&lt;br /&gt;
    });&lt;br /&gt;
  } else {&lt;br /&gt;
    onReady(() =&amp;gt; initAll(document));&lt;br /&gt;
  }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%B3%B0%E5%9D%A6&amp;diff=3438</id>
		<title>泰坦</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%B3%B0%E5%9D%A6&amp;diff=3438"/>
		<updated>2026-02-21T09:53:15Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​更改分裂子弹显示方式&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;[[File:block-titan-ui.png|24px|link=泰坦]] 泰坦 titan&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideDesc&amp;quot;&amp;gt;向地面敌人发射巨大的爆炸炮弹。需要氢气。&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;一般信息&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 行星&lt;br /&gt;
| [[File:planet-erekir.png|18px|link=埃里克尔]]&lt;br /&gt;
|-&lt;br /&gt;
! 建筑分类&lt;br /&gt;
| 炮台&lt;br /&gt;
|-&lt;br /&gt;
! 生命值&lt;br /&gt;
| 4000&lt;br /&gt;
|-&lt;br /&gt;
! 尺寸&lt;br /&gt;
| 4x4&lt;br /&gt;
|-&lt;br /&gt;
! 建造时间&lt;br /&gt;
| 15.83秒&lt;br /&gt;
|-&lt;br /&gt;
! 建造花费&lt;br /&gt;
| 400[[File:item-thorium-ui.png|18px|link=钍]]&amp;lt;br&amp;gt;300[[File:item-silicon-ui.png|18px|link=硅]]&amp;lt;br&amp;gt;250[[File:item-tungsten-ui.png|18px|link=钨]]&lt;br /&gt;
|-&lt;br /&gt;
! 是否超速&lt;br /&gt;
| 是&lt;br /&gt;
|-&lt;br /&gt;
! 弹药&lt;br /&gt;
| 4/发&lt;br /&gt;
|-&lt;br /&gt;
! 弹药容量&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
! 液体容量&lt;br /&gt;
| 20&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;技术性 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 可见性&lt;br /&gt;
| 可建造&lt;br /&gt;
|-&lt;br /&gt;
! 建筑ID&lt;br /&gt;
| #370&lt;br /&gt;
|-&lt;br /&gt;
! 英文ID&lt;br /&gt;
| titan&lt;br /&gt;
|-&lt;br /&gt;
! 本地化键名&lt;br /&gt;
| block.titan.name&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 介绍 ==&lt;br /&gt;
向地面敌人发射溅射范围较大的&amp;lt;abbr title=&amp;quot;可以跨越建筑与单位&amp;quot;&amp;gt;抛射弹&amp;lt;/abbr&amp;gt;。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
==输入/输出==&lt;br /&gt;
===输入===&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 输入&lt;br /&gt;
! 消耗电力&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | 强化(可选)&lt;br /&gt;
|-&lt;br /&gt;
| 5[[File:liquid-hydrogen-ui.png|18px|link=氢气]]/秒 || 无 || 30[[File:liquid-water-ui.png|18px|link=水]]/秒 || 175%开火速率&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
==功能==&lt;br /&gt;
===基础===&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
! 开火速率&lt;br /&gt;
! 范围&lt;br /&gt;
! 警戒范围&lt;br /&gt;
! 射击误差&lt;br /&gt;
! 攻击空中单位&lt;br /&gt;
! 攻击地面单位&lt;br /&gt;
|-&lt;br /&gt;
| 0.434/秒 || 48.75格 || 48.75格 || 0度 || 否 || 是 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===弹药===&lt;br /&gt;
&amp;lt;h4 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;[[File:item-thorium-ui.png|24px|link=钍]] 钍&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;  style=&amp;quot;width:300px&amp;quot;&lt;br /&gt;
! 建筑伤害&lt;br /&gt;
| 0.3x&lt;br /&gt;
|-&lt;br /&gt;
! 范围伤害&lt;br /&gt;
| 350 伤害 ~ 8.1 格&lt;br /&gt;
|-&lt;br /&gt;
! 击退&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
! 效果&lt;br /&gt;
| [[File:Status-blasted-ui.png|18px|link=爆炸]][[爆炸]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;mdtSideTable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:600px&amp;quot; &lt;br /&gt;
|+ style=&amp;quot;text-align: left;&amp;quot; | 理论秒伤&amp;lt;abbr title=&amp;quot;该数据为理论最高秒伤，实际秒伤可能会偏低&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
! 强化 !! 无 !! [[File:liquid-water-ui.png|18px|link=水]]&lt;br /&gt;
|-&lt;br /&gt;
! 理论DPS&amp;lt;abbr title=&amp;quot;子弹伤害/范围伤害&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;{{Nv}}&lt;br /&gt;
| 114.13/152.17 || 199.73/266.30&lt;br /&gt;
|-&lt;br /&gt;
! 持续射击耗弹{{Nv}}&lt;br /&gt;
| 1.74[[File:item-thorium-ui.png|18px|link=钍]]/秒 || 3.04[[File:item-thorium-ui.png|18px|link=钍]]/秒&lt;br /&gt;
|-&lt;br /&gt;
{| class=&amp;quot;mdtSideTable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:300px&amp;quot; &lt;br /&gt;
|+ style=&amp;quot;text-align: left;&amp;quot; | 技术性数据&amp;lt;abbr title=&amp;quot;此处的数据较为复杂，因此单独列出&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
! 主弹弹速{{Nv}}&lt;br /&gt;
| 2.5&lt;br /&gt;
|-&lt;br /&gt;
! 存在时长{{Nv}}&lt;br /&gt;
| 140帧&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;[[File:item-oxide-ui.png|24px|link=氧化物]] 氧化物&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;  style=&amp;quot;width:300px&amp;quot; &lt;br /&gt;
! 建筑伤害&lt;br /&gt;
| 0.25x&lt;br /&gt;
|-&lt;br /&gt;
! 射程&lt;br /&gt;
| +1 格&lt;br /&gt;
|-&lt;br /&gt;
! 范围伤害&lt;br /&gt;
| 180 伤害 ~ 13.7 格&lt;br /&gt;
|-&lt;br /&gt;
! 射速&lt;br /&gt;
| 0.7x&lt;br /&gt;
|-&lt;br /&gt;
! 击退&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
! 效果&lt;br /&gt;
| [[File:Status-corroded-ui.png|18px|link=腐蚀]][[腐蚀]] ~ 8 秒&lt;br /&gt;
|-&lt;br /&gt;
! 分裂子弹&lt;br /&gt;
| 1x&lt;br /&gt;
*分裂子弹&amp;amp;nbsp;&amp;amp;nbsp;3/秒&lt;br /&gt;
**建筑伤害&amp;amp;nbsp;&amp;amp;nbsp;0x&lt;br /&gt;
**范围伤害&amp;amp;nbsp;&amp;amp;nbsp;15 伤害 ~ 11.2 格&lt;br /&gt;
**无限穿透单位&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;mdtSideTable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:600px&amp;quot; &lt;br /&gt;
|+ style=&amp;quot;text-align: left;&amp;quot; | 理论秒伤&amp;lt;abbr title=&amp;quot;该数据为理论最高秒伤，实际秒伤可能会偏低&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
! 强化 !! 无 !! [[File:liquid-water-ui.png|18px|link=水]]&lt;br /&gt;
|-&lt;br /&gt;
! 理论DPS&amp;lt;abbr title=&amp;quot;子弹伤害/范围伤害&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! 持续射击耗弹&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
{| class=&amp;quot;mdtSideTable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:300px&amp;quot; &lt;br /&gt;
|+ style=&amp;quot;text-align: left;&amp;quot; | 技术性数据&amp;lt;abbr title=&amp;quot;此处的数据较为复杂，因此单独列出&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
! 主弹弹速&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! 存在时长&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;[[File:item-carbide-ui.png|24px|link=碳化物]] 碳化物&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;  style=&amp;quot;width:300px&amp;quot; &lt;br /&gt;
! 建筑伤害&lt;br /&gt;
| 0.2x&lt;br /&gt;
|-&lt;br /&gt;
! 射程&lt;br /&gt;
| +10 格&lt;br /&gt;
|-&lt;br /&gt;
! 范围伤害&lt;br /&gt;
| 750 伤害 ~ 4.5 格&lt;br /&gt;
|-&lt;br /&gt;
! 射速&lt;br /&gt;
| 0.8x&lt;br /&gt;
|-&lt;br /&gt;
! 击退&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
! 效果&lt;br /&gt;
| [[File:Status-blasted-ui.png|18px|link=爆炸]][[爆炸]]&lt;br /&gt;
|-&lt;br /&gt;
! 分裂子弹&lt;br /&gt;
| 12x&lt;br /&gt;
*建筑伤害&amp;amp;nbsp;&amp;amp;nbsp;0.25x&lt;br /&gt;
*范围伤害&amp;amp;nbsp;&amp;amp;nbsp;50 伤害 ~ 2.7 格&lt;br /&gt;
*击退&amp;amp;nbsp;&amp;amp;nbsp;0.5&lt;br /&gt;
*穿甲&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;mdtSideTable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:600px&amp;quot; &lt;br /&gt;
|+ style=&amp;quot;text-align: left;&amp;quot; | 理论秒伤&amp;lt;abbr title=&amp;quot;该数据为理论最高秒伤，实际秒伤可能会偏低&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
! 强化 !! 无 !! [[File:liquid-water-ui.png|18px|link=水]]&lt;br /&gt;
|-&lt;br /&gt;
! 理论DPS&amp;lt;abbr title=&amp;quot;子弹伤害/范围伤害&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! 持续射击耗弹&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
{| class=&amp;quot;mdtSideTable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:300px&amp;quot; &lt;br /&gt;
|+ style=&amp;quot;text-align: left;&amp;quot; | 技术性数据&amp;lt;abbr title=&amp;quot;此处的数据较为复杂，因此单独列出&amp;quot;&amp;gt;[?]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
! 主弹弹速&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! 存在时长&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- 数据缺乏考证 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*理论DPS（加水前/后）：直伤  228.26/399.46；溅射 326.09 / 570.65&lt;br /&gt;
*持续射击耗弹（加水前/后）：1.74 / 3.04 个/秒&lt;br /&gt;
*基础弹药参数：伤害 525.00，溅射 750.00（半径 36.00），弹速 3.25，寿命 140.0000&lt;br /&gt;
*该弹药射击距离：58.75格（470.00世界单位）&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:2px 0 2px 0;&amp;quot;&amp;gt;特殊效果（碳化物） &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
*附带状态：blasted（8.00秒）；击退 3.00&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:2px 0 2px 0;&amp;quot;&amp;gt;分裂子弹（碳化物） &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
*分裂数量：12&lt;br /&gt;
*分裂子弹参数：伤害 50.00，溅射 50.00（半径 22.00），弹速 0.50，寿命 50.0000&lt;br /&gt;
*分裂附加理论DPS（加水前/后，不计命中损失）：521.74 / 913.04&lt;br /&gt;
*分裂子弹特殊效果：击退 0.50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:4px 0 4px 0;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;氧化物 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
*理论DPS（加水前/后）：直伤 97.83 / 171.20；溅射 78.26 / 136.96&lt;br /&gt;
*持续射击耗弹（加水前/后）：1.74 / 3.04 个/秒&lt;br /&gt;
*基础弹药参数：伤害 225.00，溅射 180.00（半径 110.00），弹速 2.50，寿命 190.0000&lt;br /&gt;
*该弹药射击距离：49.75格（398.00世界单位）&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:2px 0 2px 0;&amp;quot;&amp;gt;特殊效果（氧化物） &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
*附带状态：corroded（8.00秒）；击退 2.00&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:2px 0 2px 0;&amp;quot;&amp;gt;分裂子弹（氧化物） &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
*分裂数量：1&lt;br /&gt;
*分裂子弹参数：伤害 0.00，溅射 0.00（半径 -1.00），弹速 0.00，寿命 150.0000&lt;br /&gt;
*分裂子弹特殊效果：无&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%85%A4&amp;diff=3432</id>
		<title>煤</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%85%A4&amp;diff=3432"/>
		<updated>2026-02-21T09:12:02Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​重定向页面至煤炭&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[煤炭]]&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%94%BE%E5%B0%84%E6%80%A7&amp;diff=3429</id>
		<title>放射性</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%94%BE%E5%B0%84%E6%80%A7&amp;diff=3429"/>
		<updated>2026-02-21T09:06:59Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​加空格&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;用于计算该物品被[[RTG 发电机]]消耗时产出的电力&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%B2%B9%E6%B5%B8&amp;diff=3427</id>
		<title>油浸</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%B2%B9%E6%B5%B8&amp;diff=3427"/>
		<updated>2026-02-21T09:04:50Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​复制错link=，已修改&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;[[File:Status-tarred-ui.png|18px]] 油浸 Tarred&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideDesc&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;一般信息 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 行星&lt;br /&gt;
| [[File:planet-serpulo.png|18px|link=塞普罗]]&lt;br /&gt;
|-&lt;br /&gt;
! 移动速度倍率&lt;br /&gt;
| 0.6x&lt;br /&gt;
|-&lt;br /&gt;
! 影响因素&lt;br /&gt;
| [[File:Status-burning-ui.png|18px|link=燃烧]][[燃烧]][[File:Status-melting-ui.png|18px|link=融化]][[融化]]&lt;br /&gt;
|-&lt;br /&gt;
! 互斥&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;技术性 &amp;lt;span class=&amp;quot;mdtFold mdtFoldClosed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 是否持续&lt;br /&gt;
| 是&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{MDTDBWindow&lt;br /&gt;
|title=来源&lt;br /&gt;
|content=&lt;br /&gt;
{{MDTDBCol&lt;br /&gt;
|icon=Status-tarred-ui.png&lt;br /&gt;
|title=可通过以下建筑获得&lt;br /&gt;
|items=&lt;br /&gt;
{{MDTDBItem|icon=Block-wave-ui.png|link=波浪}}&lt;br /&gt;
{{MDTDBItem|icon=Block-tsunami-ui.png|link=海啸}}&lt;br /&gt;
}}&lt;br /&gt;
{{MDTDBCol&lt;br /&gt;
|icon=Status-tarred-ui.png&lt;br /&gt;
|title=可通过以下环境获得&lt;br /&gt;
|items=&lt;br /&gt;
[[File:Block-tar-ui.png|18px|link=石油(地板)]][[石油(地板)|石油]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 状态效果反应 ==&lt;br /&gt;
对一个已有[[File:Status-burning-ui.png|18px|link=燃烧]]燃烧的单位施加[[File:Status-tarred-ui.png|18px|link=油浸]]油浸时会直接消耗[[File:Status-tarred-ui.png|18px|link=油浸]]油浸并将[[File:Status-burning-ui.png|18px|link=燃烧]]燃烧的时长重置为5秒（即使原时长大于5秒），同时造成8点真实伤害。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;对一个已有[[File:Status-tarred-ui.png|18px|link=油浸]]油浸的单位施加[[File:Status-burning-ui.png|18px|link=燃烧]]燃烧时会消耗[[File:Status-tarred-ui.png|18px|link=油浸]]油浸并使单位获得[[File:Status-tarred-ui.png|18px|link=油浸]]油浸的时长与子弹[[File:Status-burning-ui.png|18px|link=燃烧]]燃烧效果时长之和的[[File:Status-burning-ui.png|18px|link=燃烧]]燃烧。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;对一个已有[[File:Status-melting-ui.png|18px|link=融化]]融化的单位施加[[File:Status-tarred-ui.png|18px|link=油浸]]油浸时会直接消耗[[File:Status-tarred-ui.png|18px|link=油浸]]油浸并将[[File:Status-melting-ui.png|18px|link=融化]]融化的时长重置为3秒（即使原时长大于3秒），同时造成8点真实伤害。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;对一个已有[[File:Status-tarred-ui.png|18px|link=油浸]]油浸的单位施加[[File:Status-melting-ui.png|18px|link=融化]]融化时会消耗[[File:Status-tarred-ui.png|18px|link=油浸]]油浸并使单位获得[[File:Status-tarred-ui.png|18px|link=油浸]]油浸的时长与子弹[[File:Status-melting-ui.png|18px|link=融化]]融化效果时长之和的[[File:Status-melting-ui.png|18px|link=融化]]融化。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%83%AD%E8%83%BD%E5%9D%A9%E5%9F%9A&amp;diff=3425</id>
		<title>热能坩埚</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%83%AD%E8%83%BD%E5%9D%A9%E5%9F%9A&amp;diff=3425"/>
		<updated>2026-02-21T09:03:00Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​玻璃→钢化玻璃&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;[[File:block-silicon-crucible-ui.png|24px|link=热能坩埚]] 热能坩埚 &amp;lt;/br&amp;gt;Silicon Crucible&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideDesc&amp;quot;&amp;gt;从沙子和煤中提炼硅，用硫化物作为附加热源。在炙热地形上更高效。&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;基础信息&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 行星&lt;br /&gt;
| [[File:planet-serpulo.png|18px|link=塞普罗]] [[塞普罗]]&lt;br /&gt;
|-&lt;br /&gt;
! 生命值&lt;br /&gt;
| 395&lt;br /&gt;
|-&lt;br /&gt;
! 尺寸&lt;br /&gt;
| 3×3&lt;br /&gt;
|-&lt;br /&gt;
! 建造时间&lt;br /&gt;
| 5.558秒&lt;br /&gt;
|-&lt;br /&gt;
! 建造花费&lt;br /&gt;
| 80[[File:Item-metaglass-ui.png|18px|link=钢化玻璃]][[钢化玻璃]] 120[[File:Item-titanium-ui.png|18px|link=钛]][[钛]] 60[[File:Item-silicon-ui.png|18px|link=硅]][[硅]] 35[[File:Item-plastanium-ui.png|18px|link=塑钢]][[塑钢]]&lt;br /&gt;
|-&lt;br /&gt;
! 能否超速&lt;br /&gt;
| 能&lt;br /&gt;
|-&lt;br /&gt;
! 生产原料&lt;br /&gt;
| [[File:Item-coal-ui.png|18px|link=煤炭]][[煤炭]] [[File:Item-sand-ui.png|18px|link=沙]][[沙]] [[File:Item-pyratite-ui.png|18px|link=硫化物]][[硫化物]]&lt;br /&gt;
|-&lt;br /&gt;
! 产品&lt;br /&gt;
| [[File:Item-silicon-ui.png|18px|link=硅]][[硅]]&lt;br /&gt;
|-&lt;br /&gt;
! 物品容量&lt;br /&gt;
| 30物品&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;技术性&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 建筑ID&lt;br /&gt;
| #3&lt;br /&gt;
|-&lt;br /&gt;
! 英文ID&lt;br /&gt;
| silicon-crucible&lt;br /&gt;
|-&lt;br /&gt;
! 本地化键名&lt;br /&gt;
| block.silicon-crucible.name&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 建筑介绍 ==&lt;br /&gt;
从沙子和煤中提炼硅，用硫化物作为附加热源。在炙热地形上更高效。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;生产方式 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtResearchPanel&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 输入 &lt;br /&gt;
! 电力需求 &lt;br /&gt;
! 生产时间 &lt;br /&gt;
! 输出&lt;br /&gt;
|-&lt;br /&gt;
| 4[[File:Item-coal-ui.png|18px|link=煤炭]][[煤炭]]（2.666/秒） 6[[File:Item-sand-ui.png|18px|link=沙]][[沙]]（4/秒） 1[[File:Item-pyratite-ui.png|18px|link=硫化物]][[硫化物]]（0.666/秒）&lt;br /&gt;
| 240电力/秒&lt;br /&gt;
| 1.5秒&lt;br /&gt;
| 8[[File:Item-silicon-ui.png|18px|link=硅]][[硅]]（5.333/秒）&lt;br /&gt;
|}&lt;br /&gt;
*影响因素&lt;br /&gt;
**[[File:block-hotrock-ui.png|18px|link=灼热岩石]][[灼热岩石]]：+67%效率，每一格增加约7.4%效率。&lt;br /&gt;
**[[File:block-magmarock-ui.png|18px|link=熔融岩石]][[熔融岩石]]：+101%效率（实际显示为200%效率），每一格增加约11.2%效率。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;冷知识/趣闻 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E9%99%A8%E7%9F%B3%E5%B8%A6&amp;diff=3424</id>
		<title>陨石带</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E9%99%A8%E7%9F%B3%E5%B8%A6&amp;diff=3424"/>
		<updated>2026-02-21T09:02:19Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​link=玻璃→钢化玻璃&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtLayout mdtLight mdtWrapRail&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtRightRail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSidePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideTitle&amp;quot;&amp;gt;[[File:sector-craters.png|24px|link=]] 陨石带 craters&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtSideDesc&amp;quot;&amp;gt;这片由旧时战争的以及造成的陨石地带有积水。&lt;br /&gt;
夺下该地区，收集&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:Item-sand-ui.png|18px|link=沙]]&amp;lt;/span&amp;gt; [[沙]]冶炼&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:Item-metaglass-ui.png|18px|link=钢化玻璃]]&amp;lt;/span&amp;gt; [[钢化玻璃]]。&lt;br /&gt;
用水泵抽水加速炮塔和钻头。&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5 class=&amp;quot;mdtSideSection&amp;quot;&amp;gt;一般信息&amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mdtSideTable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 行星&lt;br /&gt;
| &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:planet-serpulo.png|18px|link=塞普罗]]&amp;lt;/span&amp;gt; [[塞普罗]]&lt;br /&gt;
|-&lt;br /&gt;
! 威胁&lt;br /&gt;
| 低&lt;br /&gt;
|-&lt;br /&gt;
! 资源&lt;br /&gt;
| &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-copper-ui.png|18px|link=铜]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-lead-ui.png|18px|link=铅]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-sand-ui.png|18px|link=沙]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-coal-ui.png|18px|link=煤]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-scrap-ui.png|18px|link=废料]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:liquid-water-ui.png|18px|link=水]]&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 敌人&lt;br /&gt;
| &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-dagger-ui.png|18px|link=尖刀]]&amp;lt;/span&amp;gt; 尖刀、&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-mace-ui.png|18px|link=战锤]]&amp;lt;/span&amp;gt; 战锤、&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-crawler-ui.png|18px|link=爬虫]]&amp;lt;/span&amp;gt; 爬虫&lt;br /&gt;
|-&lt;br /&gt;
! 是否敌方基地&lt;br /&gt;
| 否&lt;br /&gt;
|-&lt;br /&gt;
! 波次&lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
! 守护者&lt;br /&gt;
| &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-zenith-ui.png|18px|link=苍穹]]&amp;lt;/span&amp;gt; 苍穹&lt;br /&gt;
|-&lt;br /&gt;
! 初始建筑&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
! 地图下载&lt;br /&gt;
|[[File:icon-e879-black.png|24px|link={{filepath:陨石带.craters.msav}}|alt=下载地图]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechTreePanel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechTreeTitle&amp;quot;&amp;gt;科技树&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechTreeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechCol&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechColTitle&amp;quot;&amp;gt;前置&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:sector-frozenForest.png|32px|link=冰冻森林]][[File:block-mender-ui.png|32px|link=修理器]] [[File:block-combustion-generator-ui.png|32px|link=火力发电机]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechCol&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechColTitle&amp;quot;&amp;gt;当前&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:sector-craters.png|32px|link=陨石带]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechCol&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtTechColTitle&amp;quot;&amp;gt;后置&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:sector-biomassFacility.png|32px|link=生物质合成区]][[File:sector-ruinousShores.png|32px|link=遗迹海岸]][[File:block-hail-ui.png|32px|link=冰雹]][[File:block-kiln-ui.png|32px|link=窑炉]][[File:block-steam-generator-ui.png|32px|link=涡轮发电机]][[File:block-titanium-conveyor-ui.png|32px|link=钛传送带]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtMain&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 地区介绍 ==&lt;br /&gt;
陨石带 是 [[赛普罗]] 主线的第三个区块，在这个区块里玩家将可以挖掘沙，并解锁硅与钢化玻璃。&lt;br /&gt;
此外玩家将首次学习流体元件的使用，并利用其进行高效率的生产。&lt;br /&gt;
玩家也将首次进行多种类产物的规模化生产，需要考虑传送带与导管的排布问题。&lt;br /&gt;
最后玩家将要首次面对在一定波次时会出现的强大单位 [[守护者]]。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;地图 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdt-imgFill&amp;quot;&amp;gt;&lt;br /&gt;
[[File:craters-map.webp|700px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;波次 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;攻略/须知 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
* 攻略&lt;br /&gt;
** 核心落地后的头几个波次无需过于担心，由于敌人主要为&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-crawler-ui.png|18px|link=爬虫]]&amp;lt;/span&amp;gt;爬虫，可以选择建造一些&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-conveyor-ui.png|18px|link=传送带]]&amp;lt;/span&amp;gt;传送带或者&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-power-node-ui.png|18px|link=电力节点]]&amp;lt;/span&amp;gt;电力节点来进行拦截。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** 在此期间可以开始发展&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-silicon-ui.png|18px|link=硅]]&amp;lt;/span&amp;gt;硅的生产。后面的波次中可以考虑在地图的左或者右两个隘口建立防线同时用&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-copper-wall-ui.png|18px|link=墙体]]&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-copper-wall-large-ui.png|18px|link=墙体]]&amp;lt;/span&amp;gt;墙体封锁上方的通路。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** 可以采用&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-scorch-ui.png|18px|link=火焰]]&amp;lt;/span&amp;gt;火焰或者大量&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-duo-ui.png|18px|link=双管]]&amp;lt;/span&amp;gt;双管进行防御。在最后一波前在&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-battery-ui.png|18px|link=电池]]&amp;lt;/span&amp;gt;电池附近建造足够多的&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:block-scatter-ui.png|18px|link=分裂]]&amp;lt;/span&amp;gt;分裂以应对最后的&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-zenith-ui.png|18px|link=BOSS]]&amp;lt;/span&amp;gt;BOSS。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** 此外，区块攻占后可以优先进行发展，在此区块解锁尽可能多的与&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-silicon-ui.png|18px|link=硅]]&amp;lt;/span&amp;gt;硅和&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:item-metaglass-ui.png|18px|link=钢化玻璃]]&amp;lt;/span&amp;gt;玻璃相关的科技。（比如次代核心和陆军工厂）。--by Asromin（1452066048）&lt;br /&gt;
* 须知&lt;br /&gt;
** 敌方出生点会在左右两侧任选其一，此外此区块&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-crawler-ui.png|18px|link=爬虫]]&amp;lt;/span&amp;gt; 爬虫数量极多，需要谨慎防守。-- by Asromin（1452066048）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 class=&amp;quot;mdtFoldHeading&amp;quot; style=&amp;quot;margin:0 0 8px 0;&amp;quot;&amp;gt;冷知识/趣闻 &amp;lt;span class=&amp;quot;mdtFold&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
在V7 beta测试版的某一时期，陨石带其实是与敌人基地相邻的，导致到了防守的后期每一波出现大量&amp;lt;span class=&amp;quot;mdtPixelIcon&amp;quot;&amp;gt;[[File:unit-crawler-ui.png|18px|link=爬虫]]&amp;lt;/span&amp;gt; 爬虫的盛景。后来这一版行星排布因不合理被废除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E8%B5%9B%E6%99%AE%E7%BD%97&amp;diff=3365</id>
		<title>赛普罗</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E8%B5%9B%E6%99%AE%E7%BD%97&amp;diff=3365"/>
		<updated>2026-02-21T03:51:33Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[塞普罗]]&lt;br /&gt;
----&lt;br /&gt;
本页面是一个[[重定向]]，“赛普罗”为：&lt;br /&gt;
*社区常用错误称谓，官方译名为“塞普罗”。&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=3362</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=3362"/>
		<updated>2026-02-21T03:33:52Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​小幅修改&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHome&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeHero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroLogo&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroText&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroTitle&amp;quot;&amp;gt;Mindustry-像素工厂 中文 Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroSubtitle&amp;quot;&amp;gt;官方内容 + 社区翻译补充&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeHeroLinks&amp;quot;&amp;gt;[[塞普罗|塞普罗]] [[埃里克尔|埃里克尔]] [https://www.mindustry.top/ 资源站] [[逻辑|逻辑]] [[PVP模式|PVP]] [[模组|模组]] [[教程中心|教程]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== wiki介绍 ==&lt;br /&gt;
欢迎来到 Mindustry 中文 Wiki！你可以在这里找到游戏资料、条目翻译与社区补充内容。&amp;lt;br&amp;gt;&lt;br /&gt;
在过去的日子里Wiki一共被编辑了 {{NUMBEROFEDITS}} 次，总页面数 {{NUMBEROFPAGES}} ，有 {{NUMBEROFACTIVEUSERS}} 位贡献者参与了建设。&amp;lt;br&amp;gt;&lt;br /&gt;
游戏最新的发布版本是：&amp;lt;span style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;v155.4&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
加入wiki建设--1033427780&amp;lt;br&amp;gt;&lt;br /&gt;
==服务器推荐==&amp;lt;br&amp;gt;&lt;br /&gt;
Mindustry梦魔短祷：new.xem8k5.top&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 原版内容-v154.3 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[塞普罗|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;塞普罗&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;战役 / 科技 / 区块&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[埃里克尔|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;埃里克尔&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;战役 / 科技 / 区块&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[地图编辑器|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;地图编辑器&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;地图编辑 / 导入与导出 / 游戏模式&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[服务器|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;服务器&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;游玩 / 搭建&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[模组|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;模组&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;下载 / 导入 / 创作&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[隐藏|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;隐藏&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;建筑 / 天气&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 资源网站与工具 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://www.mindustry.top/ &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry资源站&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;资源/下载&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://docs.qq.com/sheet/DVHNoS3lIcm1NbFFS &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry蓝图档案馆&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;表格&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://anuke.itch.io/mindustry &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry官网下载&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;itch.io&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://buibiu.github.io/imageToMLogicPage/#/ &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;图片转逻辑&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;工具&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://github.com/xhstoyea/Mindustry-mod-compilations &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组合集&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;GitHub&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[Learn Mindustry Mod|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;Mindustry模组教程&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;教程&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[https://my.feishu.cn/wiki/space/7596651980311776474 &amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;MindustryX官方文档&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;MindustryX&amp;lt;/span&amp;gt;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== 其他 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtHomeGrid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[资源库|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;资源库&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;游戏资源&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[教程中心|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;教程中心&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;教程列表&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[百科|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;百科&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;常见问题汇总&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtCard&amp;quot;&amp;gt;[[黑话|&amp;lt;span class=&amp;quot;mdtCardTitle&amp;quot;&amp;gt;黑话&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;mdtCardDesc&amp;quot;&amp;gt;术语整理&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mdtPanel mdtHomeSection&amp;quot;&amp;gt;&lt;br /&gt;
== wiki公告 ==&lt;br /&gt;
无&amp;lt;br&amp;gt;&lt;br /&gt;
发布者：&amp;lt;br&amp;gt;&lt;br /&gt;
发布时间：&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;查看[[历史公告]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E7%94%A8%E6%88%B7:Bmte&amp;diff=2968</id>
		<title>用户:Bmte</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E7%94%A8%E6%88%B7:Bmte&amp;diff=2968"/>
		<updated>2026-02-19T05:51:09Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​计算器测试&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mindustry的v136小资历一枚，2026年1月20日正式参与维基建设。主要负责部分模板，杂活以及部分教程撰写。&amp;lt;br&amp;gt;&lt;br /&gt;
需要上学，工作日基本不在线。&amp;lt;br&amp;gt;&lt;br /&gt;
联系方式：&amp;lt;br&amp;gt;&lt;br /&gt;
Bilibili:@bmte_  [https://space.bilibili.com/591255997?]&amp;lt;br&amp;gt;&lt;br /&gt;
QQ和邮箱：2013844270@qq.com&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;heimu&amp;quot;&amp;gt;古法维基，匠心独运。能工智人太好用了你们知道吗&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
我的贡献：&amp;lt;br&amp;gt;&lt;br /&gt;
[{{fullurl:Special:Contributions/{{PAGENAME}}}} 查看我的贡献]&lt;br /&gt;
&lt;br /&gt;
测试：&amp;lt;br&amp;gt;&lt;br /&gt;
{{PumpSpeedCalc}}&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:PumpSpeedCalc&amp;diff=2967</id>
		<title>模板:PumpSpeedCalc</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=%E6%A8%A1%E6%9D%BF:PumpSpeedCalc&amp;diff=2967"/>
		<updated>2026-02-19T05:50:26Z</updated>

		<summary type="html">&lt;p&gt;Bmte：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- 模板的 HTML 结构 --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;my-widget&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;button class=&amp;quot;my-button&amp;quot;&amp;gt;点击我&amp;lt;/button&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;my-output&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 内联 JavaScript，用 {{#tag:html}} 包裹 --&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  // 确保 DOM 加载完成后执行&lt;br /&gt;
  document.addEventListener(&#039;DOMContentLoaded&#039;, function() {&lt;br /&gt;
    var button = document.querySelector(&#039;.my-widget .my-button&#039;);&lt;br /&gt;
    var output = document.querySelector(&#039;.my-widget .my-output&#039;);&lt;br /&gt;
    if (button &amp;amp;&amp;amp; output) {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, function() {&lt;br /&gt;
        output.textContent = &#039;按钮被点击了！&#039;;&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
这是一个示例模板，包含内联 JS。&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
</feed>