跳转到主要内容
GTMC
  • •总序
    • 00引言
    • 01更新的概念与不同类型的更新
    • 02连续的方块更新及其分析方法
    • 03特殊的更新行为
    • 01刻与刻间时序
    • 02初窥刻内时序
    • 03计划刻与计划刻元件
    • 04树电与脚电
    • 05方块实体
    • 06方块事件
    • 07活塞:方块事件与方块实体
    • 01Masa Gadget
    • 02投影模组教程
    • 00绪论
    • 01实体运动基础
    • 02实体移动过程及碰撞机制
    • 03实体自由运动相关公式推导
    • 04外界因素对运动的影响
    • 05LivingEntity运动机制
    • 06几类具体实体运动分析
    • 07实体运动应用举例
    • 08参考文献
    • 附录
    • I.附录
    • 01铁轨
  • 附录
  • A.栈的概念
  • B.术语表

文章目录

  • •总序
    • 00引言
    • 01更新的概念与不同类型的更新
    • 02连续的方块更新及其分析方法
    • 03特殊的更新行为
    • 01刻与刻间时序
    • 02初窥刻内时序
    • 03计划刻与计划刻元件
    • 04树电与脚电
    • 05方块实体
    • 06方块事件
    • 07活塞:方块事件与方块实体
    • 01Masa Gadget
    • 02投影模组教程
    • 00绪论
    • 01实体运动基础
    • 02实体移动过程及碰撞机制
    • 03实体自由运动相关公式推导
    • 04外界因素对运动的影响
    • 05LivingEntity运动机制
    • 06几类具体实体运动分析
    • 07实体运动应用举例
    • 08参考文献
    • 附录
    • I.附录
    • 01铁轨
  • 附录
  • A.栈的概念
  • B.术语表
Loading article content
Loading
Loading article
GTMC

Graduate Texts in Minecraft

求知于方寸之间。

前言 →

文章
25
作者
11
最近修订
2026年8月

社区

  • 关于
  • 贡献者
  • 团队
  • QQ 群

参与

  • 参与贡献
  • 编辑政策
  • 议题

源码

  • 代码仓库
  • CC BY-NC-SA 4.0
  • Apache-2.0

本站为非官方 Minecraft 产品,与 Mojang Studios 无任何关联。

贡献者保留各自作品的版权。文章内容以 CC BY-NC-SA 4.0 协议发布,署名信息保存在文章元数据与源代码历史记录中。

© 2024–2026 GTMC Collective · BUILD 04809c3

GTMC

  • 文章
  • PDF
  • 术语表
  • 关于
  • 贡献者
  • •总序
    • 00引言
    • 01更新的概念与不同类型的更新
    • 02连续的方块更新及其分析方法
    • 03特殊的更新行为
    • 01刻与刻间时序
    • 02初窥刻内时序
    • 03计划刻与计划刻元件
    • 04树电与脚电
    • 05方块实体
    • 06方块事件
    • 07活塞:方块事件与方块实体
    • 01Masa Gadget
    • 02投影模组教程
    • 00绪论
    • 01实体运动基础
    • 02实体移动过程及碰撞机制
    • 03实体自由运动相关公式推导
    • 04外界因素对运动的影响
    • 05LivingEntity运动机制
    • 06几类具体实体运动分析
    • 07实体运动应用举例
    • 08参考文献
    • 附录
    • I.附录
    • 01铁轨
  • 附录
  • A.栈的概念
  • B.术语表

文章目录

  • •总序
    • 00引言
    • 01更新的概念与不同类型的更新
    • 02连续的方块更新及其分析方法
    • 03特殊的更新行为
    • 01刻与刻间时序
    • 02初窥刻内时序
    • 03计划刻与计划刻元件
    • 04树电与脚电
    • 05方块实体
    • 06方块事件
    • 07活塞:方块事件与方块实体
    • 01Masa Gadget
    • 02投影模组教程
    • 00绪论
    • 01实体运动基础
    • 02实体移动过程及碰撞机制
    • 03实体自由运动相关公式推导
    • 04外界因素对运动的影响
    • 05LivingEntity运动机制
    • 06几类具体实体运动分析
    • 07实体运动应用举例
    • 08参考文献
    • 附录
    • I.附录
    • 01铁轨
  • 附录
  • A.栈的概念
  • B.术语表
Loading article content
Loading
Loading article
瞬时元件›§
路径: Instant Components/铁轨.zh.md
tanhHeng+2|1,923 / 6 分钟|最后编辑: 2026-08-29
tanhHengtanhHeng&&BFladderbeanawaGudu-Z
编辑文章

创建时间:2025-09-30
| 最后编辑:2026-08-29

链接:https://www.techmc.wiki/zh/articles/instant-components/rails
复用|CC BY-NC-SA 4.0|
IMG.BANNERISO 100 f/2.8 1/125s | 50mm Lens WB 5600K | EV +0.3 AF-S RAW
Graduate Texts in Minecraft
// Graduate Texts in Minecraft

01 铁轨

1 铁轨的更新

除普通铁轨外,特殊铁轨(动力铁轨、激活铁轨、探测铁轨)都具有特殊的更新范围。

1.1 动力铁轨 / 激活铁轨的更新

动力铁轨和激活铁轨的更新行为是完全一致的。1

当动力铁轨 / 激活铁轨的激活状态改变时,它将以这些位置为更新核按序发出 NC 更新:

  1. 上方一格(如果铁轨是倾斜的)
  2. 自身
  3. 下方一格
  4. 自身
  5. 下方一格
  6. 上方一格(如果铁轨是倾斜的)

也就是说,对平放的动力铁轨 / 激活铁轨而言,它以自身 -> 下方 -> 自身 -> 下方方块为更新核发出 4 次 NC 更新;

对倾斜的动力铁轨 / 激活铁轨而言,它以上方 -> 自身 -> 下方 -> 自身 -> 下方 -> 上方方块为更新核发出 6 次 NC 更新。

1.2 探测铁轨的更新

暂未完成

2 铁轨激活条件检测

此段落中的所有 “铁轨” 皆指动力铁轨或激活铁轨

2.1 激活方式

有两种条件能够使铁轨激活:

  • 直接与红石信号源相邻,称为直接激活
  • 与自身相连的 8 个铁轨中(不含自身)有 1 个铁轨直接与红石信号源相邻,称为间接激活

例如,一个铁轨直接与一个红石块相邻,它就是被直接激活的;

而一个铁轨与另外几个铁轨相连,构成一条铁轨链,在铁轨链上有一个相邻的红石块,且这一红石块在该铁轨的 8 格内,这个铁轨就是被间接激活的。

2.2 “相连” 的判断条件

一个未被直接激活的铁轨会通过一种 “寻找” 机制,判断自己是否被间接激活。具体来说,它会在上查找是否有距离自身 8 格以内的、与自身相连的、直接激活的铁轨。

通俗来讲,想象你正要去一个餐厅。你会打开地图,搜索餐厅,看看自己能不能走过去;餐厅不会飞到你的面前,告诉你 “我距离你 800m,你可以走过来”。

铁轨也是这样。每个铁轨都会自己 “寻找” 符合条件的信号源——也就是说,铁轨会尝试沿着铁轨链 “走” 最多 8 格,看自己能不能找到信号源——也就是能不能找到和信号源直接相连的铁轨。

而一个十分朴素的想法是:如果铁轨 “走” 到一半,铁轨链 “断了”,那么它肯定就走不下去了。

铁轨在某一位置寻找相连的铁轨时,会根据自身的形状(即是否为倾斜的),查找特定位置的、与自身方向相同的铁轨,即铁轨判断下一个铁轨是否与自身相连,只与这三个因素有关:

  • 自身的形状(自身是否是倾斜的)
  • 下一个铁轨的位置
  • 下一个铁轨的方向

而与下一个铁轨的形状无关。

平铁轨会检查这些位置:

  • 铁轨两端的、和自身相同高度的位置
  • 铁轨两端的、比自身低一格的位置

范围如图中红色玻璃位置所示:

// IMG_LOAD
平铁轨连通

例如,图中最右侧的平铁轨在向左侧 “寻找” 直接激活的铁轨时,会判断左侧的铁轨铁轨与自身相连。图中前三种情况是 “符合直觉” 的,而最后一种则是铁轨检查相连时不考虑下一个铁轨的形状导致的。:

// IMG_LOAD
平铁轨连通例

斜铁轨会检查这些位置:

  • 斜铁轨较低一端的、和自身相同高度的位置
  • 斜铁轨较低一端的、比自身低一格的位置
  • 斜铁轨较高一端的、比自身高一格的位置

范围如图中红色玻璃位置所示:

// IMG_LOAD
斜铁轨连通

例如,图中最右侧的斜铁轨在向左侧 “寻找” 直接激活的铁轨时,会判断左侧的铁轨铁轨与自身相连。图中前三种情况是 “符合直觉” 的,而最后一种则是铁轨检查相连时不考虑下一个铁轨的形状导致的。

// IMG_LOAD
斜铁轨连通例

结合以上两点,我们可以发现:铁轨 “相连” 具有单向性:即铁轨 A 判断铁轨 B 和自己相连时,铁轨 B 不一定判断铁轨 A 和自己相连:

// IMG_LOAD
单向性

从直观上来看,图中铁轨链红石信号可以从右侧传向左侧,但不能从左侧传向右侧;从 “寻找” 的视角来看,就是:左侧的斜铁轨判断右侧的平铁轨和自身不相连,而右侧的平铁轨判断左侧的斜铁轨和自身相连。

分析这两个铁轨的各自检查相连的位置:上图中橙色玻璃对应的水平位置为斜铁轨检查相连的位置,红色玻璃对应的水平位置为平铁轨检查相连的位置。也就是说,斜铁轨在平铁轨的检查位置上;而平铁轨不在斜铁轨的检查位置上,导致了铁轨相连具有单向性。

这可以用于制作一些只能单向传递铁轨信号的铁轨链。

2.3 “寻找” 的方向

铁轨在寻找相连的铁轨时遵循固定的顺序:对两端分别进行独立搜索,且每次搜索都是单向的(不会折返)。

  • 搜索流程: 先从一端沿该方向连续向外搜索,搜索过程中不会改变方向(即只 “进” 不 “退”);该端搜索结束后,再对另一端重复相同的搜索过程。
  • 方向规则: 南北走向的铁轨总是先向南搜索,再向北;东西走向的铁轨先向西搜索,再向东。

因此,多个铁轨是否能被判定为 “相连” 不仅取决于距离,还取决于搜索的方向顺序。这就能解释图示中的差异:在第一种情况,红石块两侧的铁轨都能被找到并激活;在第二种情况,只有红石块左侧的铁轨能够被激活,因为右侧的搜索方向无法经过中间的某个铁轨去到目标位置,从而找不到直接激活的铁轨。

// IMG_LOAD
单向性

如图,在第一种情况中,红石块左右两侧的铁轨都可以被激活。

而在第二种情况中,只有红石块左侧的铁轨可以被激活。红石块左侧的铁轨在向右寻找直接激活的铁轨时,会先寻找到 2 号铁轨,然后向右(下)寻找到 3 号铁轨。

红石块右侧的铁轨在向左寻找直接激活的铁轨时,同样会先找到 2 号铁轨;但由于此时的寻找方向为向左,而 3 号铁轨在 2 号铁轨的右侧,于是就不能寻找的 3 号铁轨,也就找不到直接激活的铁轨,无法激活。

Footnotes

  1. 动力铁轨和激活铁轨都由PoweredRailBlock类实现,因此它们在源码层面的行为完全相同。两者对矿车产生的不同效果,是由矿车自身进行判断和处理的,而不是由铁轨决定的。 ↩

上一篇实体运动
←附录
下一篇附录
→栈的概念
瞬时元件›§
路径: Instant Components/铁轨.zh.md
tanhHeng+2|1,923 / 6 分钟|最后编辑: 2026-08-29
tanhHengtanhHeng&&BFladderbeanawaGudu-Z
编辑文章

创建时间:2025-09-30
| 最后编辑:2026-08-29

链接:https://www.techmc.wiki/zh/articles/instant-components/rails
复用|CC BY-NC-SA 4.0|
IMG.BANNERISO 100 f/2.8 1/125s | 50mm Lens WB 5600K | EV +0.3 AF-S RAW
Graduate Texts in Minecraft
// Graduate Texts in Minecraft

01 铁轨

1 铁轨的更新

除普通铁轨外,特殊铁轨(动力铁轨、激活铁轨、探测铁轨)都具有特殊的更新范围。

1.1 动力铁轨 / 激活铁轨的更新

动力铁轨和激活铁轨的更新行为是完全一致的。1

当动力铁轨 / 激活铁轨的激活状态改变时,它将以这些位置为更新核按序发出 NC 更新:

  1. 上方一格(如果铁轨是倾斜的)
  2. 自身
  3. 下方一格
  4. 自身
  5. 下方一格
  6. 上方一格(如果铁轨是倾斜的)

也就是说,对平放的动力铁轨 / 激活铁轨而言,它以自身 -> 下方 -> 自身 -> 下方方块为更新核发出 4 次 NC 更新;

对倾斜的动力铁轨 / 激活铁轨而言,它以上方 -> 自身 -> 下方 -> 自身 -> 下方 -> 上方方块为更新核发出 6 次 NC 更新。

1.2 探测铁轨的更新

暂未完成

2 铁轨激活条件检测

此段落中的所有 “铁轨” 皆指动力铁轨或激活铁轨

2.1 激活方式

有两种条件能够使铁轨激活:

  • 直接与红石信号源相邻,称为直接激活
  • 与自身相连的 8 个铁轨中(不含自身)有 1 个铁轨直接与红石信号源相邻,称为间接激活

例如,一个铁轨直接与一个红石块相邻,它就是被直接激活的;

而一个铁轨与另外几个铁轨相连,构成一条铁轨链,在铁轨链上有一个相邻的红石块,且这一红石块在该铁轨的 8 格内,这个铁轨就是被间接激活的。

2.2 “相连” 的判断条件

一个未被直接激活的铁轨会通过一种 “寻找” 机制,判断自己是否被间接激活。具体来说,它会在上查找是否有距离自身 8 格以内的、与自身相连的、直接激活的铁轨。

通俗来讲,想象你正要去一个餐厅。你会打开地图,搜索餐厅,看看自己能不能走过去;餐厅不会飞到你的面前,告诉你 “我距离你 800m,你可以走过来”。

铁轨也是这样。每个铁轨都会自己 “寻找” 符合条件的信号源——也就是说,铁轨会尝试沿着铁轨链 “走” 最多 8 格,看自己能不能找到信号源——也就是能不能找到和信号源直接相连的铁轨。

而一个十分朴素的想法是:如果铁轨 “走” 到一半,铁轨链 “断了”,那么它肯定就走不下去了。

铁轨在某一位置寻找相连的铁轨时,会根据自身的形状(即是否为倾斜的),查找特定位置的、与自身方向相同的铁轨,即铁轨判断下一个铁轨是否与自身相连,只与这三个因素有关:

  • 自身的形状(自身是否是倾斜的)
  • 下一个铁轨的位置
  • 下一个铁轨的方向

而与下一个铁轨的形状无关。

平铁轨会检查这些位置:

  • 铁轨两端的、和自身相同高度的位置
  • 铁轨两端的、比自身低一格的位置

范围如图中红色玻璃位置所示:

// IMG_LOAD
平铁轨连通

例如,图中最右侧的平铁轨在向左侧 “寻找” 直接激活的铁轨时,会判断左侧的铁轨铁轨与自身相连。图中前三种情况是 “符合直觉” 的,而最后一种则是铁轨检查相连时不考虑下一个铁轨的形状导致的。:

// IMG_LOAD
平铁轨连通例

斜铁轨会检查这些位置:

  • 斜铁轨较低一端的、和自身相同高度的位置
  • 斜铁轨较低一端的、比自身低一格的位置
  • 斜铁轨较高一端的、比自身高一格的位置

范围如图中红色玻璃位置所示:

// IMG_LOAD
斜铁轨连通

例如,图中最右侧的斜铁轨在向左侧 “寻找” 直接激活的铁轨时,会判断左侧的铁轨铁轨与自身相连。图中前三种情况是 “符合直觉” 的,而最后一种则是铁轨检查相连时不考虑下一个铁轨的形状导致的。

// IMG_LOAD
斜铁轨连通例

结合以上两点,我们可以发现:铁轨 “相连” 具有单向性:即铁轨 A 判断铁轨 B 和自己相连时,铁轨 B 不一定判断铁轨 A 和自己相连:

// IMG_LOAD
单向性

从直观上来看,图中铁轨链红石信号可以从右侧传向左侧,但不能从左侧传向右侧;从 “寻找” 的视角来看,就是:左侧的斜铁轨判断右侧的平铁轨和自身不相连,而右侧的平铁轨判断左侧的斜铁轨和自身相连。

分析这两个铁轨的各自检查相连的位置:上图中橙色玻璃对应的水平位置为斜铁轨检查相连的位置,红色玻璃对应的水平位置为平铁轨检查相连的位置。也就是说,斜铁轨在平铁轨的检查位置上;而平铁轨不在斜铁轨的检查位置上,导致了铁轨相连具有单向性。

这可以用于制作一些只能单向传递铁轨信号的铁轨链。

2.3 “寻找” 的方向

铁轨在寻找相连的铁轨时遵循固定的顺序:对两端分别进行独立搜索,且每次搜索都是单向的(不会折返)。

  • 搜索流程: 先从一端沿该方向连续向外搜索,搜索过程中不会改变方向(即只 “进” 不 “退”);该端搜索结束后,再对另一端重复相同的搜索过程。
  • 方向规则: 南北走向的铁轨总是先向南搜索,再向北;东西走向的铁轨先向西搜索,再向东。

因此,多个铁轨是否能被判定为 “相连” 不仅取决于距离,还取决于搜索的方向顺序。这就能解释图示中的差异:在第一种情况,红石块两侧的铁轨都能被找到并激活;在第二种情况,只有红石块左侧的铁轨能够被激活,因为右侧的搜索方向无法经过中间的某个铁轨去到目标位置,从而找不到直接激活的铁轨。

// IMG_LOAD
单向性

如图,在第一种情况中,红石块左右两侧的铁轨都可以被激活。

而在第二种情况中,只有红石块左侧的铁轨可以被激活。红石块左侧的铁轨在向右寻找直接激活的铁轨时,会先寻找到 2 号铁轨,然后向右(下)寻找到 3 号铁轨。

红石块右侧的铁轨在向左寻找直接激活的铁轨时,同样会先找到 2 号铁轨;但由于此时的寻找方向为向左,而 3 号铁轨在 2 号铁轨的右侧,于是就不能寻找的 3 号铁轨,也就找不到直接激活的铁轨,无法激活。

Footnotes

  1. 动力铁轨和激活铁轨都由PoweredRailBlock类实现,因此它们在源码层面的行为完全相同。两者对矿车产生的不同效果,是由矿车自身进行判断和处理的,而不是由铁轨决定的。 ↩

上一篇实体运动
←附录
下一篇附录
→栈的概念