# TIDS 时刻表生成器 HTML 使用教程
**适用文件：** `timetable_editor.html`  
**用途：** 用图形界面制作 TIDS 一般版需要的时刻表 JSON，并生成可粘贴到命令方块的 `setting` JSON。  
## 先看这里
此 HTML 是给一般用户编辑时刻表用的工具，目标是避免手写复杂的 `list` 数组。

你会用到两种输出：
- **时刻表 JSON**：例如 `demo_list.json`，放在 Minecraft 能读取的位置。
- **setting JSON**：按“复制 setting”取得，粘贴到 TIDS 正下方的命令方块。

deco 版本 TIDS 主要作为装饰，不读取时刻表列表；本 HTML 主要对应一般版 TIDS。

## 打开方式
1. 在文件夹中找到 `timetable_editor.html`。
2. 用浏览器打开它。直接双击通常即可，不需要架设服务器。
3. 右上角可切换语言：繁体中文、简体中文、日本語、English。
4. 建议使用 Chrome、Edge、Firefox 等现代浏览器。

## 切换界面语言
1. 在画面右上角找到语言下拉菜单。
2. 选择繁体中文、简体中文、日本語 或 English。
3. 语言切换只会改变 HTML 编辑器界面文字，不会改变输出的 JSON 格式。
4. 如果已经编辑资料，切换语言不会清空当前表格。

## 基本使用流程
1. 按“范例”载入内置数据，或按“新建”建立空白时刻表。
2. 在左侧表格编辑每一班列车。
3. 用“排序”依发车时间自动排序，或拖拽行前方的排序按钮手动调整顺序。
4. 在右侧“命令方块 setting”填好 `timeZone`、`platform`、下载文件名、`filePath`、`realTime`、`autoClear`。
5. 按“下载 JSON”保存时刻表文件。
6. 将下载的 JSON 放到 `filePath` 指定的位置。
7. 按“复制 setting”，把内容粘贴到 TIDS 正下方 32 格以内的命令方块。
8. 回到游戏确认 TIDS 是否正常显示。

## 导入已有时刻表
有两种方式：
- 按“选择 JSON 文件”，选择已有的时刻表 JSON。
- 把 JSON 文字粘贴到“导入”文字框，再按“从文字导入”。

导入的 JSON 外层必须包含 `list`：

```json
{
    "list": [
        [ "2005", "Changhua", "MountainLine", "FastLocal", "5:24:00", "3A", true ]
    ]
}
```

## 表格字段说明
- **车次**：1 到 4 位数字，例如 `1107`。
- **目的地**：从下拉菜单选择，会自动使用程序支持的目的地代码。
- **行经路线**：从下拉菜单选择；不想显示路线时选“不显示”。
- **列车种别**：从下拉菜单选择，例如 Local、FastLocal 等。
- **发车时间**：分成时、分、秒。时为 `0-23`，分与秒为 `0-59`。
- **站台**：列车列表中显示的站台，可输入 `1`、`2`、`3A`、`3B` 等格式。
- **已通过**：输出到 JSON 的布尔字段。一般使用时保持 `true` 即可。

只有通过检查的行会被导出到 JSON。画面右上方的行数、可导出数、错误数可以快速确认当前状态。

## 编辑操作
- **+ 新增行**：新增一笔空白列车。
- **+5**：一次新增 5 笔空白列车。
- **复制图标**：复制该行，适合制作相近班次。
- **删除图标**：删除该行。
- **拖拽排序**：拖住行前方的拖拽按钮，移动到目标位置后放开。
- **排序**：依发车时间由早到晚自动排序。
- **删除错误行**：移除所有格式不完整或不支持的行。

TIDS 会从 `list` 上方往下扫描并显示符合时间条件的列车，因此排序会影响显示结果。一般建议依发车时间由早到晚排列。

## 右侧 setting 字段
- **timeZone**：真实时间模式使用的时区。台湾请填 `8`。
- **platform**：TIDS 本体上方固定显示的站台牌面，例如 `1`、`1a`、`1b`、`2`、`2a`、`2b`、`3`、`3a`、`3b`、`4`、`4a`、`4b`。
- **下载文件名**：按“下载 JSON”时保存出的文件名。若没有 `.json`，工具会自动补上。
- **filePath**：游戏内 TIDS 读取时刻表 JSON 的路径。这个路径必须指向你实际放置的 JSON。
- **realTime**：`true` 使用真实时间；`false` 使用游戏内时间。
- **autoClear**：目前保留为 `false` 即可。

## 下载文件名与 filePath 的关系
“下载文件名”只决定浏览器下载出的文件名；`filePath` 才是游戏读文件的位置。两者不一定相同，但初次使用建议保持一致。

最简单的做法：
1. 下载文件名填 `demo_list.json`。
2. `filePath` 填 `./demo_list.json`。
3. 把下载出的 `demo_list.json` 放到 `.minecraft` 文件夹。

如果想放在子文件夹，例如 `.minecraft/TIDS/station_a.json`：
1. 下载文件名可填 `station_a.json`。
2. `filePath` 填 `./TIDS/station_a.json`。
3. 把文件放进 `.minecraft/TIDS/`。

Windows 绝对路径建议用 `/`，例如：

```json
"filePath": "C:/Users/Name/.minecraft/TIDS/station_a.json"
```

若使用反斜线，JSON 内必须写成 `\\`：

```json
"filePath": "C:\\Users\\Name\\.minecraft\\TIDS\\station_a.json"
```

## 复制 setting
按“复制 setting”后，会取得类似以下内容：

```json
{
    "setting": {
        "timeZone": 8,
        "filePath": "./demo_list.json",
        "autoClear": false,
        "realTime": true,
        "platform": "4"
    }
}
```

把这段完整粘贴到命令方块内。请不要把 `true`、`false` 加上引号，也不要在最后一个字段后面多加逗号。

## 放到游戏中
1. 放置一般版 TIDS 本体。
2. 在 TIDS 正下方同一直线、32 格以内放置命令方块。
3. 将“复制 setting”取得的 JSON 粘贴进命令方块。
4. 将“下载 JSON”取得的时刻表文件放到 `filePath` 指定的位置。
5. 修改 JSON 后，TIDS 通常会自动重新读取，不需要重新放置本体。

放置概念：

```text
[TIDS 本体]
    |
    | 正下方同一直线，最多搜索 32 格
    |
[命令方块]      必要，用来放 setting JSON
[染色玻璃]      可选，用来控制进站提示灯
```

## 已通过字段
“已通过”会输出到时刻表 JSON 的第 7 字段。一般使用时保持 `true` 即可；如果你只是制作固定显示用的时刻表，不需要特别调整这个字段。

## 常见问题
### TIDS 显示 File Not Found
- 确认 JSON 文件真的放在 `filePath` 指向的位置。
- 初次测试建议使用 `./demo_list.json`，并把文件放到 `.minecraft`。
- 检查文件名大小写与 `.json` 扩展名。

### 导入失败或显示 list 不是数组
- JSON 外层必须是对象，且必须包含 `list`。
- 每一行都要是数组格式。
- 不要使用中文引号。
- 最后一个字段后面不能有多余逗号。

### 有些行没有被导出
- 只有“可导出”的行会进入 JSON。
- 查看右侧“检查结果”，修正不支持的目的地、路线、车种、时间或站台格式。

### 画面没有按预期顺序显示
- 按“排序”依时间排列。
- 若需要特殊显示顺序，使用拖拽排序手动调整。
- 确认 `realTime` 是否符合你要使用的时间来源。

### 复制按钮没有自动复制
部分浏览器对本地 HTML 的剪贴板权限较严格。若画面提示已选取内容，请手动按 `Ctrl+C` 复制。

## 建议工作方式
1. 先按“范例”确认工具与浏览器正常。
2. 修改下载文件名与 `filePath`。
3. 编辑少量班次，下载 JSON 后进游戏测试。
4. 确认 TIDS 可读取后，再完成完整时刻表。
5. 大量编辑后按“排序”，再下载最终 JSON。
