Changelog / 02

Train System Utilities 更新履歴

公開された 13 版すべて。日付・配布先・内包 Manta は、公開されたリリースと jar の実測です。

Train System Utilities 1.1.0

Manta 2.5.0(内包)GitHub Release

内包 Manta を 1.x 系から 2.5.0 に更新した。 UI の文字は Manta 自身のラスタライザが画面の実ピクセル

サイズで描き、 Windows では OS のフォントを使う。 ゲームプレイの変更は無い。 1.0.11 との差は Manta 2.0 の

公開 API への移行と、 内包 Manta の更新だけ。

Changed

  • [Manta] 内包 Manta を 2.5.0 に更新 (要求範囲 [2.5.0,3))。 Manta 1.x を内包するビルドは [1.1.74,2) を要求するので、 他の BelugaLab mod は SAS 1.1.0 / ASC 1.2.0 と同時に更新すること。 1 つの Manta で両方の必須範囲を満たすことはできない。
  • [UI] ダイアログ・ツールチップ・wiki・共通 HUD 部品の文字を、 Manta 自身のラスタライザが画面の 実ピクセルサイズで整数ピクセルに置いて描く。 Windows では OS のフォント (游ゴシック / Microsoft YaHei / Microsoft JhengHei / Malgun Gothic / Segoe UI など。 再配布はしない)。 拡大縮小してもつぶれない。 /manta font off で従来のフォントに戻せる。 TSU 独自の HUD 行の一部は従来のフォントのまま。

Internal

  • [Manta] Manta の公開 API (com.manta.api.**) へ移行し、 内部パッケージ (belugalab.**) の直接参照を 無くした。 ビルドに mantaLinkGate (dev jar / release jar が内包 Manta に対してリンクすることの検査) を追加。

Train System Utilities 1.0.11

Manta 1.1.74(内包)GitHub Release

(hotfix for 1.0.10)

1.0.10 の hotfix。 wiki 用のゲーム内キャプチャが待機姿勢で撮れていなかった問題を修正する。

ゲームプレイへの影響は無い (キャプチャは要求ファイルが置かれたときだけ動く)。

Fixed

  • [wiki キャプチャ] 静止アイコンと 3D メッシュが待機姿勢で撮れていなかった。 ホームドアは 2/3 開いた状態、 パンタグラフは中途半端な姿勢のまま出荷されていた。 アニメーションを持つブロックは待機姿勢で撮るようにした。

Added

  • [wiki キャプチャ] モデルプレビュー用の開閉アニメーション書き出し。 パンタグラフ / ホームドア / 自動改札の 3 種で、 ゲーム内の動きをそのまま再生できる。

Train System Utilities 1.0.10

Manta 1.1.74(内包)GitHub Release

管理用コンピューターの設定をメモリーカードに保存し、 ブロックを壊しても失われないようにした。

1.0.9 以降に積み上がった翻訳・wiki・アイコンまわりの変更もまとめて公開する。

Added

  • [メモリーカード] 管理用コンピューターの設定一式をカードに保存するようになった。 路線記号・駅への割り当て・モニターのレイアウトと色・電子式時刻表の共有設定・リンク先が対象。
    • 設定入りのカードを挿す → コンピューターがカードの内容で復元される (カード優先)
    • 空のカードを挿す → そのコンピューターの現在の設定がカードに保存される。 何も設定していないコンピューターは空の保存を書き込まない
    • カードを挿している間 → その後の編集は自動でカードへ書き戻される
    • これにより、 管理用コンピューターを壊しても設定は失われない。 別の場所に置き直して 同じカードを挿せば元に戻る
  • [メモリーカード] シフト右クリックによる初期化に確認ダイアログを追加。 消える中身 (路線記号の数・駅割り当ての数・リンク登録の種別) を表示してから確認する。

Changed

  • [路線記号] カードが挿さっていないと駅に路線記号を表示しないようになった。 権威がカード側に移ったため、 カードを抜く / コンピューターを壊すと、 再びカードを挿すまで 駅モニターから記号が消える。 割り当て自体は消えていないので、 カードを戻せば表示も戻る。
    • 既存ワールドへの影響: カードを挿していない管理用コンピューターは、 更新後に駅の 路線記号が出なくなる。 カードを 1 枚挿せば復帰する

Fixed

  • [路線記号] 管理用コンピューターを壊して置き直すと、 駅モニターの路線記号が 1 Hz で 出たり消えたりを繰り返す不具合を修正。 記号を書き込む経路が 2 つあり、 記号を持たない 新しいコンピューターと、 割り当てを保持しているワールドデータとが毎秒書き合っていた。 書き込み経路を 1 本に統一した。
  • [管理用コンピューター] モニター連携カードをシフトクリックすると、 メモリーカードの スロットに入ってしまう不具合を修正。 空の時刻表も同じ経路でメモリーカードスロットへ 吸い込まれていた。 アイテムの種別で行き先を決めるようにし、 ホッパー等の自動化からの 誤挿入も弾くようにした。
  • [管理用コンピューター] 書き込み済みの時刻表が書き出し入力スロットに入り、 書き出し実行時に上書きされて中身ごと失われる不具合を修正 (未書込のものだけを受け付ける)。
  • [UI] 操作用の記号を文字で描いていた箇所を registry のアイコンへ置き換え。
  • [UI] 数値の動的表示で、 値が無いときに既定値ではなく空を返すよう修正。
  • [翻訳] 1.0.8 / 1.0.9 で入った中国語 (zh_cn / zh_hk / zh_tw) の訳を master へ取り込み。 書式指定子の表記を整理した (表示は変わらない)。
  • [wiki] ページ間リンクの参照先を 12 ページで修正。

Train System Utilities 1.0.9

Manta 1.1.12(内包)GitHub Release

コミュニティから寄贈されたメモリーカードの多言語化。

翻訳

  • メモリーカードの動作メッセージとツールチップ (17 文字列) が翻訳可能になり、英語・日本語・簡体字中国語・繁体字中国語 (zh_tw / zh_hk) でローカライズされた状態で出荷されます。以前はどの言語でも固定の日本語でした。
  • 簡体字中国語 wiki (about ページ) の語の修正 1 件: 「MOD」→「模组」。
  • @WJiangzhi さんによる寄贈です (PR #3)。ありがとうございます。
  • PR に加えて、書式指定子の修正 (%d → %s。Minecraft の翻訳機構は %s しか置換しません)・ツールチップのヒント色 (濃いグレー) の復帰・元の日本語表現の据え置き・繁体字各変種の既存語彙への揃え (zh_hk: 網絡 / 信號、zh_tw: 連線) を行いました。

それ以外

  • 1.0.8 から変わっていません。出荷 jar の 1.0.8 との差はちょうど 8 エントリ — バージョン行・MemoryCardItem.class・言語ファイル 5 本・wiki 1 ページです。内包 Manta は 1.0.7 / 1.0.8 と同じビルド (1.1.12) です。
  • Manta はこの jar の中に入っています。別に入れないでください — mod ID が重複してゲームが読み込みに失敗します。

出典: GitHub Release v1.0.9 (英語)

Train System Utilities 1.0.8

Manta 1.1.12(内包)GitHub Release

コミュニティから寄贈された中国語訳。

翻訳 (新規)

  • 簡体字中国語 (zh_cn)・繁体字中国語 — 台湾 (zh_tw)・繁体字中国語 — 香港 (zh_hk) を、UI 全体 (各 1,168 文字列) とゲーム内 wiki (各 52 ページ) に追加。Minecraft の言語をいずれかに設定すると、画面も wiki (TSU Wiki キー / Ctrl+F1) も切り替わります。
  • @WJiangzhi さんによる寄贈です (PR #1)。ありがとうございます。

それ以外

  • 1.0.7 から変わっていません。この版は 1.0.7 に翻訳ファイルとバージョン番号を足したものです。内包 Manta は 1.0.7 と同じビルド (1.1.12) です。
  • Manta はこの jar の中に入っています。別に入れないでください — mod ID が重複してゲームが読み込みに失敗します。

出典: GitHub Release v1.0.8 (英語)

Train System Utilities 1.0.7

Manta 1.1.12(内包)GitHub Release

管理系 3 ブロックを BlockBench モデルへ刷新し、駅名サインを追加。

Added

  • [駅名サイン] 横 4 ブロック × 高さ 1 ブロックの駅名標。 駅グループの範囲内に置くと 駅名・路線帯・隣の駅を自動表示する (両面)。 設定 UI は持たず、 表示内容はすべて 駅グループと路線記号から解決される。
    • 帯の色と駅名左のバッジは、 その駅に割り当てられた路線記号の縁色から取る
    • 隣の駅は Create の線路グラフをたどって決める (各方向で最初に見つかった別の駅グループ)。 左右の割り当ては看板の向きから自動。 駅グループ単位で 30 秒キャッシュ
    • ポール付きバリエーションを同梱。 天井の下面をクリックすると吊り下げ設置される (ポール上端が天井に接し、 看板はその 1 ブロック下)
    • 範囲外に設置した場合は仕様どおり何も表示しない

Changed

  • [管理用コンピューター / 鉄道管理ブロック / ポスター管理ブロック] バニラの立方体モデルから BlockBench (GeckoLib) モデルへ差し替え。 高さ 2 ブロック相当の筐体になり、 当たり判定も 2 ブロック分に変わる (既存ワールドで天井が低い場所ではモデルがめり込む)。 向きの解釈は変えていないため、 設置済みブロックの向きはそのまま。
    • カードの挿入がモデルに反映される: 挿すとスロットにカードが現れ、 天板の ステータスライトが赤 → 緑になる (管理用コンピューターと鉄道管理ブロックは メモリー / モニターの 2 スロットぶん、 ポスター管理ブロックはモニターのみ)

Fixed

  • [カード状態が client に届かない] 3 ブロックとも カードスロットの変更が setChanged() 止まりで、 client の BlockEntity が更新されていなかった。 抜き差し時に sendBlockUpdated を発火するよう修正 (単体では保存フラグが立つだけで表示は変わらない)。

Train System Utilities 1.0.6

Manta 1.0.7(内包)GitHub Release

列車の種別を自分で決められるようになり、ポスターの「モニターに合わせる」が実際に効くようになり、JPEG が表示されるようになりました。

追加

  • 列車の種別を自分で設定できます。 管理用コンピューター → 電子式時刻表タブ → 列車をクリック → 種別の値にホバーしてホイール。8 種 (普通 / 快速 / 区間快速 / 通勤快速 / 準急 / 急行 / 特急、および未設定) から選べます。種別は列車のタイルと、駅モニター・車内モニターに色分けで出ます。
  • 従来の自動種別判定は削除しました。列車の停車数を、つながった線路網全体の駅数で割る方式だったので、ある程度の規模の路線網ではほぼ全列車が最上位の優等種別として表示されていました。既存の列車は未設定から始まり、種別のない列車はバッジを出しません。
  • 種別バッジが文字幅に合わせて伸びるようになり、長い名前が切れなくなりました。

修正

  • ポスター管理の「モニターに合わせる」が実際に効くようになりました。 ON で画像全体をモニターの内側に収め、OFF でモニターを埋めてはみ出しを切ります。正方形でないモニターでも、ポスターが本来の縦横比を保つようになりました (以前は正方形に描かれていました)。
  • JPEG 画像が表示されるようになりました。 .jpg のポスターは、選択画面でもサーバーでも画像一覧でもアップロードに成功し、そのまま黙って描画されないままでした。画像のダウンロードに失敗した場合、毎フレーム要求し直すのをやめて 30 秒待ってから再試行します。
  • 駅モニターの種別バッジが、色付きの空の枠として描かれていたのを、ラベルの文字が出るようにしました。

備考

  • この mod が要求する Manta の下限が 1.0.7 になりました (内包なので操作は不要です)。
  • 専用サーバーを運用している場合は、両側に同じ jar を入れてください。

出典: GitHub Release v1.0.6 (英語)

Train System Utilities 1.0.5

Manta 1.0.6(内包)GitHub Release

マルチプレイで駅グループ作成時に全プレイヤーが切断される不具合の修正。

Fixed

  • [駅グループ作成で全員が切断される] StationGroupCreatePayload.handle は全体が enqueueWork (= server main thread) だが、その中で StationStructureAnalyzer.analyze を 同期実行していた。中身は最大 200 万ブロックの走査 + グラフノード総当たりの A* (WalkingPathfinder、1 ペアあたり deadline 4.5s) で、到達不能ペアが 7 個あるだけで 30 秒の keep-alive 窓を超え、クライアントが ReadTimeoutHandler により "Timed out" で 自己切断していた。シングルプレイではメモリ接続に read timeout が無いため再現しない MP 固有の不具合。 この解析結果の格納先 NavGraphCache は読み出し側が 1 箇所も存在せず (GraphPathfinder も未使用)、結果を誰も使わない死に処理だったため呼び出しを削除した。 実測: 駅グループ作成の main thread 占有が 8 番線の駅で 11ms (旧: 数十秒規模)。
  • [worker thread からの world 読みが main thread を飽和させる] ServerChunkCache.getChunk はスレッド判定が最初にあり (lastChunk キャッシュはその後ろ)、 main thread 以外からの呼び出しは CompletableFuture.supplyAsync(..., mainThreadProcessor).join() になる。そのため worker から level.getBlockState() を呼ぶと 1 ブロックにつき 1 回 main thread への往復が発生していた。NavField 構築は 1 番線あたり約 75 万ブロックを走査 するため、これが main thread を飽和させ上記の切断を悪化させていた。 chunk を 1 度だけ取得して保持する read-only ビュー OffThreadBlockView (BlockGetter) を 追加し、WalkingPathfinder / StationWalkTargetSelector / NavFieldBuilder の world 読みを これ経由に変更 (往復回数が「ブロック数」から「chunk 数」に低下)。 実測: scanWithSections が 152–178ms / 番線、経路解析全体が 8 番線で 1081ms。 未ロード chunk は取得しない (load=false) ため、worker からの forceload も発生しない。

Docs

  • [駅範囲指定ツール wiki の誤記] 存在しない /tsu sg manage コマンドが管理手順として 記載されていた。実際の駅グループ管理はツールを Alt + マウスホイールで「GUI」モードに 切り替えて右クリックする。ja_jp / en_us 両方を修正し、「管理用コマンドは存在しない」旨の 注記を追加。

Train System Utilities 1.0.4

Manta 1.0.5(内包)GitHub Release

Manta 側のリリース。UI が GUI スケール設定に従うようになり、すべてのダイアログにリサイズグリップが付きます。

⚠️ GUI スケールが 2 以外の人は見た目が変わります

Manta はこれまで「常に GUI スケール 2 相当」に画面を固定しており、設定を打ち消していました。4K ディスプレイでは GUI スケールを上げるほど UI が同じ倍率で縮み、いくら設定を変えても大きくなりませんでした。この版で直したのがその不具合です。

  • Manta の画面は wiki やバニラの画面と同じく、ゲームの GUI スケールに従うようになりました。2 以外で遊んでいる場合、UI のサイズは変わります — 設定が実際に求めているサイズになります。ダイアログが画面からはみ出すことはありません。

追加

  • UI が GUI スケールに従う。 ダイアログ・メモパネル・HUD の枠・動画パネルで修正。高 DPI / 4K の環境でようやく UI を大きくできます。
  • リサイズグリップ。 すべてのダイアログと、最前面のサブウィンドウの右下にグリップが付きました。ドラッグでサイズを微調整でき、全画面で共有され、クライアントごとに保存され (config/manta/ui-scale.json)、画面外へ引っ張り出せないよう制限されます。
  • Manta を jar に内包。 必要な Manta UI ライブラリが、別ダウンロードではなく mod の jar の中に入るようになりました。梱包だけの変更で、mod 自体は前の 1.0.4 ビルドから変わっていません。

別に manta-*.jar を入れている場合は削除できます。残しても、ゲームは最も新しい Manta を読み込んで残りを無視するので壊れません。

【後年の訂正】この「残しても壊れません」は、のちの TSU 1.0.8 / 1.0.9 の公式ノートで否定されました。別の manta-*.jar を mods に残すと mod ID が重複し、ゲームが読み込みに失敗します。内包版があるので、別の Manta jar は入れないでください。

出典: GitHub Release v1.0.4 (英語)。「後年の訂正」は TSU 1.0.8 / 1.0.9 の GitHub Release ノート ("do not add it separately, or the duplicate mod id will stop the game from loading")

Train System Utilities 1.0.3

Manta 1.0.3(別 jar で同梱)GitHub Release

列車の台車が見えなくなる問題の修正。1.0.2 を使っている人は更新を推奨します。

修正

  • 列車の台車が見えない。 台車なしで列車が描画され、組み立て済みの車両では切替でも組み直しでも戻りませんでした。TSU の台車描画の最適化が、ビジュアルごとのキャッシュ用フィールドをインライン初期化子で宣言しており、Mixin はそれを対象クラスのコンストラクタへ持ち込みません。実行時にフィールドが null となり、そこで出た NullPointerException が CarriageContraptionVisual のコンストラクタを抜けてビジュアル全体を中止させていました。3 つの台車 mixin すべてで、遅延生成と null チェックに変えています。
  • 影響したのは Iris のシェーダー下で Flywheel が描画する構成だけです (iris-flywheel-compat 経由)。最適化が「Iris は常に Flywheel を無効にする」と仮定しており、その構成では mixin が働いていませんでした。ワールドの修復は不要で、読み込み時にビジュアルが作り直されれば台車は戻ります。

同梱

  • Manta は TSU と版を揃えるために 1.0.3 として再公開しただけで、Manta 自体の変更はありません。

出典: GitHub Release v1.0.3 (英語)

Train System Utilities 1.0.2

Manta 1.0.2(別 jar で同梱)GitHub Release

ゲーム内の動画チュートリアルと、コードレビュー 1 巡ぶんのセキュリティ・堅牢化。

追加

  • ゲーム内の動画チュートリアル — wiki に新しい節ができ、案内動画を Minecraft の中で再生します (Manta の内蔵動画機能)。架線ポール自動ツールのページに解説動画が付きました。
  • 管理用コンピューター — 1.0.1 の表示修正と駅の路線記号を引き継いでいます。

セキュリティ・堅牢化 (コードレビュー)

  • ネットワークの権限 — パケットがサーバー側で権限を確認するようになりました。駅グループの作成はサーバーが持つ「手に持っているツールの選択」を使い、管理用コンピューターの操作はリンク済み列車に属するかを確認し、券売機の設定要求は到達距離とアクセス権を検証します。
  • ポスター画像の保存 — ワールドごとの容量上限・ポスターごとの枚数上限・アトミックな書き込み・画像内容の検証で、保存に上限を設けました。
  • wiki の事前構築 — キャプチャが確保量の予算 (レイアウト / ピクセル / リソースの上限) の下で走るようになりました。
  • 保存データ — 壊れたエントリを切り離すようにし、ストア全体を捨てないようにしました。統合サーバーの電化エネルギーがワールドをまたいで持ち越されなくなりました。
  • パケットの安全性 — 券売機の行き先デコーダーに上限を設け、壊れたパケットに耐えるようにしました。

同梱

  • Manta 1.0.2 を別の jar として同じリリースに同梱しています。両方を mods フォルダーに入れてください (jar への内包は 1.0.4 から)。

出典: GitHub Release v1.0.2 (英語)。「jar への内包は 1.0.4 から」は公開 jar の実測 (1.0.2 / 1.0.3 は同じリリースの別アセット、1.0.4 以降が META-INF/jarjar)

管理用コンピューターと駅モニターの、表示と駅管理まわりの修正。

変更

  • 遠隔の路線記号 — 駅に割り当てた路線記号が、遠方やチャンク未読み込みの駅にも届くようになりました。離れた駅のモニターが正しい記号を表示します (以前は近くの駅しか更新されませんでした)。
  • 駅一覧のスクロール — スクロール中に駅名と路線記号がずれなくなり、駅一覧にスクロールバーを追加しました。列車一覧・スケジュール一覧にも同じ修正が入っています。
  • 路線記号バッジの枠 — 駅モニターで、色付きの角丸枠がバッジの全周に描かれるようになりました。
  • 時刻表の編集 — 電子式時刻表を編集するとき、サーバーからスケジュールを取得するようになりました。マルチプレイでの編集が確実になります。

出典: GitHub Release v1.0.1 (英語)

Train System Utilities の初回公開リリース。Manta と Create の上に作られた BelugaLab の鉄道システム mod です。

内容

  • 鉄道管理・連結 / 解結・スケジュールと電子式時刻表・FE 電化・乗換案内端末・駅グループ・モニター・ゲーム内 wiki。
  • プリセット共有サービス Preset Place を同梱。

必要な環境

  • Minecraft 1.21.1 / NeoForge 21.1.220 以降・Create 6.0.10 以降・Manta 1.0.0 以降・GeckoLib 4.7 以降。
  • この版の Manta は同梱ではなく別途導入します (内包されるのは 1.0.4 から)。

ライセンス

  • リポジトリのソースはオープンコア (MIT)。Preset Place のオンライン部分は proprietary で、難読化した形で同梱されます。

出典: GitHub Release v1.0.0 (英語)。内包 Manta の有無は公開 jar の実測 (この版は META-INF/jarjar を持たない。jar 内包は TSU 1.0.4 から)