# 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。
