Create Track Map

Create Track Map

基于网页的世界地图,展示你世界中机械动力的火车系统,包含信号机、车站及实时运行的列车。

交通

创建轨道地图

模组版本 Minecraft 版本 下载次数

支持 Fabric 需要 Create ≥0.5 需要 Fabric API 需要 Fabric Kotlin

支持 Forge 需要 Create ≥0.5 需要 Kotlin for Forge

可在 GitHub 获取 可在 Modrinth 获取 在 Discord 上找我

创建轨道地图(CTM)是一个多加载器模组,用于显示世界中 Create 火车的轨道地图,包括所有轨道、信号、车站和火车。信号和火车状态(几乎)实时更新。

示例轨道地图

使用方法

CTM 可在 Modrinth 下载请确保你下载的版本与你的加载器、Minecraft 版本和 Create 版本相匹配。 以下是各 Create 版本的兼容性图表:

CTM ≤1.3 CTM 1.4 CTM ≥1.5
Create 0.5.0
Create 0.5.1

安装

只需将 .jar 文件放入你的 mods 文件夹(或通过模组加载器安装),与其他模组一样!CTM 设计为服务端模组,但也可以在单人游戏和局域网服务器中运行。默认情况下,它在端口 3876 上运行一个 Web 服务器,但可以配置此端口。如果你想查看地图,必须转发此端口。(我该如何操作?)

地图本身在根路径可见(默认为 http://localhost:3876/)。如果使用代理来提供地图服务,请确保配置代理允许 Server-Sent Events 通过。

单人游戏

地图托管在你的计算机上,因此当 Minecraft 打开时,在浏览器中输入 http://localhost:3876/

多人游戏

A) 本地(局域网)服务器
地图仍托管在你的计算机上,因此当游戏打开时,在浏览器中输入 http://localhost:3876/
你家庭网络内的成员可以通过输入 http://[你计算机的IPV4地址]:3876/ 查看地图。
如何查看我计算机的IPV4地址?

B) 服务器在我的电脑上
地图仍托管在你的计算机上,因此当服务器打开时,在浏览器中输入 http://localhost:3876/
你家庭网络内的成员可以通过输入 http://[你计算机的IPV4地址]:3876/ 查看地图。
家庭网络外的成员可以通过输入 http://[你的公网IPV4地址]:3876/ 查看地图。
如何查看我的公网IPV4地址?

C) 服务器托管在托管服务上
地图与服务器一起托管在该服务上。当服务器运行时,你可以在 [你的服务器地址]:3876/ 查看地图。
注意:你的服务必须支持额外端口转发。 你可以通过该服务的支持/文档或直接搜索确认。如果服务不支持此功能,那很遗憾。你可以更换服务或尝试自己托管。

需要说明的是:不要在 IPV4 地址周围包含方括号!例如:192.168.0.0:3876

寻求帮助前请先阅读!

要使用此模组,你必须能够开放第二个端口,除了 Minecraft 服务器端口之外,CTM 将在此端口上运行其 Web 服务器。如果你使用 Aternos,则无法实现。如果你使用的是共享托管服务提供商,请联系你的托管商以协助开放端口。不提供端口开放支持,也不诊断非模组 bug 导致的问题。

高级用法

CTM API

CTM 提供以下 API,也可通过同一端口访问:

  • /api/network, /api/network.rt:所有轨道段和火车站的列表
  • /api/signals, /api/signals.rt:所有火车信号的列表,包括其状态 (绿色、黄色、红色)
  • /api/blocks, /api/blocks.rt:所有信号控制块的列表,以及它们是否被火车占用或预留
  • /api/trains, /api/trains.rt:所有已组装火车的列表,包括其名称和 位置
  • /api/style.css:根据配置的颜色和字体生成的 CSS 样式表
  • /api/config.json:地图配置

.rt 版本通过 Server-Sent Events(SSE)实时更新。

配置

CTM 的配置选项位于服务器配置目录中的 create-track-map.json 文件中。如果该文件不存在,将在启动时自动创建。

可用选项如下:

{
  // 是否实际启动监视器和服务器。
  "enable": false,

  // 轨道数据更新之间的等待时间。
  "watch_interval_seconds": 0.5,
  // 内部 Web 服务器监听的端口。
  "server_port": 3876,

  "map_style": {
    // 地图 UI 使用的字体。必须是有效的 CSS 字体栈。
    "font": "ui-monospace, \"JetBrains Mono\", monospace",
    // 地图各组成部分的颜色。必须是有效的 CSS 颜色。
    // 任何 CSS 颜色格式都可以,例如命名颜色和 rgb()。
    "colors": {
      "background": "#888",
      "track": {
        "occupied": "red",
        "reserved": "pink",
        "free": "white"
      },
      "signal": {
        "green": "#71db51",
        "yellow": "#ffd15c",
        "red": "#ff5f5c",
        "outline": "black"
      },
      "portal": {
        "primary": "purple",
        "outline": "white"
      },
      "station": {
        "primary": "white",
        "outline": "black"
      },
      "train": "cyan",
      "lead_car": "darkturquoise"
    }
  },

  "map_view": {
    "initial_dimension": "minecraft:overworld",
    "initial_position": { "x": 0, "z": 0 },

    // 缩放级别必须是整数,但可以为负数。
    // 每个缩放级别是前一个的两倍。
    // 0 是合理的最小值,但对于大型铁路网可能不太实用。
    // 3 是查看双轨铁路网的合理默认值。
    "initial_zoom": 3,
    "min_zoom": 0,
    "max_zoom": 4,

    // 屏幕上是否显示缩放控制。
    "zoom_controls": true,

    // 信号应显示在轨道的哪一侧。
    // 有效值为 LEFT 或 RIGHT(全大写)。
    "signals_on": "RIGHT"
  },

  "dimensions": {
    // 维度名称必须带命名空间。
    "minecraft:overworld": {
      // 图层切换器中显示的标签。
      "label": "主世界"
    },
    "minecraft:the_nether": {
      "label": "下界"
    },
    "minecraft:the_end": {
      "label": "末地"
    }
  },

  "layers": {
    "tracks": {
      "label": "轨道",
      "min_zoom": 0,
      "max_zoom": 4
    },
    "blocks": {
      "label": "轨道占用",
      "min_zoom": 0,
      "max_zoom": 4
    },
    "signals": {
      "label": "信号",
      "min_zoom": 0,
      "max_zoom": 4
    },
    "portals": {
      "label": "传送门",
      "min_zoom": 0,
      "max_zoom": 4
    },
    "stations": {
      "label": "车站",
      "min_zoom": 0,
      "max_zoom": 4
    },
    "trains": {
      "label": "火车",
      "min_zoom": 0,
      "max_zoom": 4
    }
  }
}

无需重启服务器即可通过运行 /ctm reload(需要操作员权限)重新加载配置。