From e16e0084e3df59bceb5dfe1b2a7af2304955ab37 Mon Sep 17 00:00:00 2001 From: boomwwww Date: Tue, 12 Aug 2025 19:11:14 +0800 Subject: [PATCH 1/2] refactor: eventBus --- packages/origine2/src/locales/en.po | 70 +++++++++---------- packages/origine2/src/locales/ja.po | 70 +++++++++---------- packages/origine2/src/locales/zhCn.po | 70 +++++++++---------- .../editor/EditorSidebar/EditorSidebar.tsx | 6 +- .../GraphicalEditor/GraphicalEditor.tsx | 12 ++-- .../EditorDebugger/EditorDebugger.tsx | 10 ++- .../pages/editor/MainArea/EditorToolbar.tsx | 11 ++- .../src/pages/editor/MainArea/MainArea.tsx | 17 +++-- .../pages/editor/TextEditor/TextEditor.tsx | 4 +- .../editor/Topbar/components/TopbarTab.tsx | 42 ++++------- .../tabs/AddSentence/AddSentenceTab.tsx | 3 +- .../Topbar/tabs/GameConfig/GameConfig.tsx | 2 - .../editor/Topbar/tabs/ViewConfig/ViewTab.tsx | 4 +- packages/origine2/src/utils/eventBus.ts | 59 +++++++++++++++- packages/origine2/src/utils/wsUtil.ts | 2 +- 15 files changed, 207 insertions(+), 175 deletions(-) diff --git a/packages/origine2/src/locales/en.po b/packages/origine2/src/locales/en.po index 5527b3c01..083bf6983 100644 --- a/packages/origine2/src/locales/en.po +++ b/packages/origine2/src/locales/en.po @@ -22,11 +22,11 @@ msgstr "Comment" msgid "%" msgstr "%" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:191 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:190 msgid "<0>应用新的模板" msgstr "<0>Apply a new template" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:170 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:169 msgid "<0>当前应用的模板:{currentTemplateName}" msgstr "<0>Current template: {currentTemplateName}" @@ -230,7 +230,7 @@ msgstr "No concat with previous text" msgid "不显示角色名" msgstr "Hide the role name" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:234 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:233 msgid "不设定" msgstr "Not set" @@ -238,7 +238,7 @@ msgstr "Not set" msgid "两端对齐" msgstr "Align on both sides" -#: src/pages/editor/MainArea/EditorToolbar.tsx:56 +#: src/pages/editor/MainArea/EditorToolbar.tsx:53 msgid "个字" msgstr " Words" @@ -357,7 +357,7 @@ msgid "修改时间" msgstr "Last modified" #: src/components/IconCreator/IconCreator.tsx:617 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:204 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:203 msgid "修改游戏图标" msgstr "Change game icon" @@ -552,7 +552,7 @@ msgstr "Delete" msgid "删除属性" msgstr "Delete Property" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:251 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:249 #: src/pages/editor/GraphicalEditor/SentenceEditor/Choose.tsx:36 msgid "删除本句" msgstr "Delete this sentence" @@ -660,13 +660,13 @@ msgstr "Right Align" msgid "启动、切换或停止背景音乐的播放" msgstr "Start, switch or stop the playback of background music" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:160 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:159 msgid "启动图" msgstr "Startup image" #: src/pages/editor/GraphicalEditor/components/SearchableCascader.tsx:227 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:214 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:224 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:213 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:223 #: src/pages/editor/Topbar/tabs/Settings/SettingsTab.tsx:140 #: src/pages/editor/Topbar/tabs/Settings/SettingsTab.tsx:155 #: src/pages/editor/Topbar/tabs/ViewConfig/ViewTab.tsx:81 @@ -689,7 +689,7 @@ msgstr "" msgid "图像" msgstr "Image" -#: src/pages/editor/MainArea/EditorToolbar.tsx:65 +#: src/pages/editor/MainArea/EditorToolbar.tsx:62 msgid "图形编辑器" msgstr "Graphical editor" @@ -965,7 +965,7 @@ msgstr "Tiling" msgid "应用" msgstr "Apply" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:168 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:167 msgid "应用的模板" msgstr "Applied template" @@ -996,7 +996,7 @@ msgstr "Intensity" msgid "当前版本" msgstr "Current version" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:240 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:239 msgid "德语" msgstr "German" @@ -1024,7 +1024,7 @@ msgstr "Manually enter ID" msgid "打开效果编辑器" msgstr "Open effect editor" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:259 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:257 msgid "执行到此句" msgstr "Execute to this sentence" @@ -1324,7 +1324,7 @@ msgstr "None" msgid "无匹配选项" msgstr "" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:238 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:237 msgid "日语" msgstr "Japanese" @@ -1387,7 +1387,7 @@ msgstr "Unrecognized" msgid "未识别的指令" msgstr "Unrecognized command" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:222 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:220 msgid "本句前插入句子" msgstr "Insert sentence before this" @@ -1426,11 +1426,11 @@ msgstr "Title Button List" msgid "标题按钮文字" msgstr "Title Button Text" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:144 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:143 msgid "标题背景图片" msgstr "Title background image" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:152 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:151 msgid "标题背景音乐" msgstr "Title background music" @@ -1487,7 +1487,7 @@ msgstr "This command will end the game" msgid "永不换行" msgstr "Never wrap" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:239 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:238 msgid "法语" msgstr "French" @@ -1545,7 +1545,7 @@ msgstr "Add new line" msgid "添加自定义属性" msgstr "Add Custom Property" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:275 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:273 #: src/pages/editor/GraphicalEditor/SentenceEditor/Choose.tsx:71 #: src/pages/editor/Topbar/Topbar.tsx:108 msgid "添加语句" @@ -1569,17 +1569,17 @@ msgstr "Games" msgid "游戏列表" msgstr "Game list" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:135 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:134 msgid "游戏包名" msgstr "Game package name" #: src/pages/dashboard/Sidebar.tsx:102 #: src/pages/dashboard/Sidebar.tsx:111 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:123 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:122 msgid "游戏名称" msgstr "Game name" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:197 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:196 msgid "游戏图标" msgstr "Game icon" @@ -1592,11 +1592,11 @@ msgstr "Game control" msgid "游戏目录" msgstr "Game directory" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:131 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:130 msgid "游戏简介" msgstr "Game description" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:127 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:126 msgid "游戏识别码" msgstr "Game ID" @@ -1681,8 +1681,8 @@ msgstr "Video options" msgid "禁止跳过视频" msgstr "Disable skipping video" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:215 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:225 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:214 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:224 msgid "禁用" msgstr "Disabled" @@ -1714,11 +1714,11 @@ msgstr "ID of figure illustration" msgid "立绘文件" msgstr "Figure file" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:235 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:234 msgid "简体中文" msgstr "Simplified Chinese" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:209 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:208 msgid "紧急回避" msgstr "Emergency Evasion" @@ -1819,7 +1819,7 @@ msgstr "Edit game" msgid "编辑组件" msgstr "Edit component" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:236 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:235 msgid "繁体中文" msgstr "Traditional Chinese" @@ -1877,7 +1877,7 @@ msgstr "Background music file" msgid "背景颜色" msgstr "Background color" -#: src/pages/editor/MainArea/EditorToolbar.tsx:61 +#: src/pages/editor/MainArea/EditorToolbar.tsx:58 msgid "脚本编辑器" msgstr "Script editor" @@ -1923,7 +1923,7 @@ msgstr "" msgid "舞台对象控制" msgstr "Stage object control" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:237 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:236 msgid "英语" msgstr "English" @@ -1940,7 +1940,7 @@ msgstr "Get character input from user" msgid "获取输入" msgstr "Get input" -#: src/pages/editor/MainArea/EditorToolbar.tsx:56 +#: src/pages/editor/MainArea/EditorToolbar.tsx:53 msgid "行脚本" msgstr "Line of script" @@ -2183,7 +2183,7 @@ msgstr "Choose animation file" msgid "选择图片" msgstr "Choose image" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:369 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:368 msgid "选择图片文件" msgstr "Choose image file" @@ -2340,7 +2340,7 @@ msgstr "Rename game directory" msgid "鉴赏" msgstr "Appreciation" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:219 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:218 msgid "鉴赏功能" msgstr "Gallery Feature" @@ -2474,7 +2474,7 @@ msgstr "Default 0" msgid "默认值1" msgstr "Default 1" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:229 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:228 msgid "默认语言" msgstr "Default Language" diff --git a/packages/origine2/src/locales/ja.po b/packages/origine2/src/locales/ja.po index 99b219607..5a6706d50 100644 --- a/packages/origine2/src/locales/ja.po +++ b/packages/origine2/src/locales/ja.po @@ -22,11 +22,11 @@ msgstr ";コメント" msgid "%" msgstr "%" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:191 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:190 msgid "<0>应用新的模板" msgstr "<0>新しいテンプレートを適用する" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:170 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:169 msgid "<0>当前应用的模板:{currentTemplateName}" msgstr "<0>現在適用中のテンプレート:{currentTemplateName}" @@ -233,7 +233,7 @@ msgstr "前のテキストボックス内の文を結合しない" msgid "不显示角色名" msgstr "キャラクター名は設定不可" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:234 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:233 msgid "不设定" msgstr "未設定" @@ -241,7 +241,7 @@ msgstr "未設定" msgid "两端对齐" msgstr "両端揃え" -#: src/pages/editor/MainArea/EditorToolbar.tsx:56 +#: src/pages/editor/MainArea/EditorToolbar.tsx:53 msgid "个字" msgstr " ワード" @@ -360,7 +360,7 @@ msgid "修改时间" msgstr "最終更新" #: src/components/IconCreator/IconCreator.tsx:617 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:204 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:203 msgid "修改游戏图标" msgstr "ゲームアイコンの変更" @@ -555,7 +555,7 @@ msgstr "削除" msgid "删除属性" msgstr "属性を削除" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:251 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:249 #: src/pages/editor/GraphicalEditor/SentenceEditor/Choose.tsx:36 msgid "删除本句" msgstr "この文を削除" @@ -663,13 +663,13 @@ msgstr "右揃え" msgid "启动、切换或停止背景音乐的播放" msgstr "BGMの再生を開始、切り替え、または停止する" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:160 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:159 msgid "启动图" msgstr "ロゴ" #: src/pages/editor/GraphicalEditor/components/SearchableCascader.tsx:227 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:214 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:224 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:213 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:223 #: src/pages/editor/Topbar/tabs/Settings/SettingsTab.tsx:140 #: src/pages/editor/Topbar/tabs/Settings/SettingsTab.tsx:155 #: src/pages/editor/Topbar/tabs/ViewConfig/ViewTab.tsx:81 @@ -692,7 +692,7 @@ msgstr "" msgid "图像" msgstr "画像" -#: src/pages/editor/MainArea/EditorToolbar.tsx:65 +#: src/pages/editor/MainArea/EditorToolbar.tsx:62 msgid "图形编辑器" msgstr "グラフィックエディタ" @@ -968,7 +968,7 @@ msgstr "タイリング" msgid "应用" msgstr "適用" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:168 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:167 msgid "应用的模板" msgstr "すでに適用されているテンプレート" @@ -999,7 +999,7 @@ msgstr "強度" msgid "当前版本" msgstr "現在のバージョン" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:240 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:239 msgid "德语" msgstr "ドイツ語" @@ -1027,7 +1027,7 @@ msgstr "IDを手動で設定" msgid "打开效果编辑器" msgstr "エフェクトエディタを開く" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:259 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:257 msgid "执行到此句" msgstr "この文まで実行" @@ -1323,7 +1323,7 @@ msgstr "Null" msgid "无匹配选项" msgstr "" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:238 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:237 msgid "日语" msgstr "日本語" @@ -1386,7 +1386,7 @@ msgstr "認識されないコマンド" msgid "未识别的指令" msgstr "認識されないコマンド" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:222 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:220 msgid "本句前插入句子" msgstr "選択した文の前に追加" @@ -1425,11 +1425,11 @@ msgstr "タイトルボタンリスト" msgid "标题按钮文字" msgstr "タイトルボタンテキスト" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:144 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:143 msgid "标题背景图片" msgstr "タイトルの背景画像" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:152 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:151 msgid "标题背景音乐" msgstr "タイトルのBGM" @@ -1486,7 +1486,7 @@ msgstr "このコマンドはすべてのゲームが終わるときに使用" msgid "永不换行" msgstr "折り返しなし" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:239 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:238 msgid "法语" msgstr "フランス語" @@ -1544,7 +1544,7 @@ msgstr "新しい行を追加" msgid "添加自定义属性" msgstr "カスタム属性を追加" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:275 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:273 #: src/pages/editor/GraphicalEditor/SentenceEditor/Choose.tsx:71 #: src/pages/editor/Topbar/Topbar.tsx:108 msgid "添加语句" @@ -1568,17 +1568,17 @@ msgstr "ゲーム" msgid "游戏列表" msgstr "ゲームリスト" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:135 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:134 msgid "游戏包名" msgstr "パッケージ名" #: src/pages/dashboard/Sidebar.tsx:102 #: src/pages/dashboard/Sidebar.tsx:111 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:123 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:122 msgid "游戏名称" msgstr "ゲーム名" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:197 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:196 msgid "游戏图标" msgstr "ゲームアイコン" @@ -1591,11 +1591,11 @@ msgstr "ゲームコントロール" msgid "游戏目录" msgstr "ゲームディレクトリ" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:131 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:130 msgid "游戏简介" msgstr "ゲーム概要" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:127 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:126 msgid "游戏识别码" msgstr "ゲームID" @@ -1680,8 +1680,8 @@ msgstr "動画のオプション" msgid "禁止跳过视频" msgstr "動画のスキップを無効にする" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:215 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:225 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:214 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:224 msgid "禁用" msgstr "無効化" @@ -1713,11 +1713,11 @@ msgstr "関連する立ち絵のID" msgid "立绘文件" msgstr "立ち絵ファイル" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:235 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:234 msgid "简体中文" msgstr "簡体字中国語" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:209 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:208 msgid "紧急回避" msgstr "緊急回避" @@ -1818,7 +1818,7 @@ msgstr "ゲームの編集" msgid "编辑组件" msgstr "コンポーネントの編集" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:236 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:235 msgid "繁体中文" msgstr "繁体字中国語" @@ -1876,7 +1876,7 @@ msgstr "BGMファイル" msgid "背景颜色" msgstr "背景色" -#: src/pages/editor/MainArea/EditorToolbar.tsx:61 +#: src/pages/editor/MainArea/EditorToolbar.tsx:58 msgid "脚本编辑器" msgstr "スクリプトエディタ" @@ -1922,7 +1922,7 @@ msgstr "" msgid "舞台对象控制" msgstr "ステージオブジェクトコントロール" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:237 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:236 msgid "英语" msgstr "英語" @@ -1939,7 +1939,7 @@ msgstr "ユーザーからの文字入力を取得" msgid "获取输入" msgstr "入力を取得" -#: src/pages/editor/MainArea/EditorToolbar.tsx:56 +#: src/pages/editor/MainArea/EditorToolbar.tsx:53 msgid "行脚本" msgstr " スクリプトの行、" @@ -2182,7 +2182,7 @@ msgstr "アニメーションファイルを選択" msgid "选择图片" msgstr "画像を選択" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:369 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:368 msgid "选择图片文件" msgstr "画像ファイルを選択" @@ -2339,7 +2339,7 @@ msgstr "ゲームディレクトリ名変更" msgid "鉴赏" msgstr "鑑賞" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:219 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:218 msgid "鉴赏功能" msgstr "鑑賞機能" @@ -2473,7 +2473,7 @@ msgstr "デフォルト値は0" msgid "默认值1" msgstr "デフォルト値は1" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:229 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:228 msgid "默认语言" msgstr "デフォルト言語" diff --git a/packages/origine2/src/locales/zhCn.po b/packages/origine2/src/locales/zhCn.po index aeb99bcc1..0686a7e20 100644 --- a/packages/origine2/src/locales/zhCn.po +++ b/packages/origine2/src/locales/zhCn.po @@ -22,11 +22,11 @@ msgstr ";注释" msgid "%" msgstr "%" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:191 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:190 msgid "<0>应用新的模板" msgstr "<0>应用新的模板" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:170 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:169 msgid "<0>当前应用的模板:{currentTemplateName}" msgstr "<0>当前应用的模板:{currentTemplateName}" @@ -232,7 +232,7 @@ msgstr "不拼接先前文本框内的语句" msgid "不显示角色名" msgstr "不显示角色名" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:234 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:233 msgid "不设定" msgstr "不设定" @@ -240,7 +240,7 @@ msgstr "不设定" msgid "两端对齐" msgstr "两端对齐" -#: src/pages/editor/MainArea/EditorToolbar.tsx:56 +#: src/pages/editor/MainArea/EditorToolbar.tsx:53 msgid "个字" msgstr "个字" @@ -359,7 +359,7 @@ msgid "修改时间" msgstr "修改时间" #: src/components/IconCreator/IconCreator.tsx:617 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:204 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:203 msgid "修改游戏图标" msgstr "修改游戏图标" @@ -554,7 +554,7 @@ msgstr "删除" msgid "删除属性" msgstr "删除属性" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:251 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:249 #: src/pages/editor/GraphicalEditor/SentenceEditor/Choose.tsx:36 msgid "删除本句" msgstr "删除本句" @@ -662,13 +662,13 @@ msgstr "右对齐" msgid "启动、切换或停止背景音乐的播放" msgstr "启动、切换或停止背景音乐的播放" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:160 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:159 msgid "启动图" msgstr "启动图" #: src/pages/editor/GraphicalEditor/components/SearchableCascader.tsx:227 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:214 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:224 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:213 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:223 #: src/pages/editor/Topbar/tabs/Settings/SettingsTab.tsx:140 #: src/pages/editor/Topbar/tabs/Settings/SettingsTab.tsx:155 #: src/pages/editor/Topbar/tabs/ViewConfig/ViewTab.tsx:81 @@ -691,7 +691,7 @@ msgstr "固定弹窗" msgid "图像" msgstr "图像" -#: src/pages/editor/MainArea/EditorToolbar.tsx:65 +#: src/pages/editor/MainArea/EditorToolbar.tsx:62 msgid "图形编辑器" msgstr "图形编辑器" @@ -967,7 +967,7 @@ msgstr "平铺" msgid "应用" msgstr "应用" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:168 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:167 msgid "应用的模板" msgstr "应用的模板" @@ -998,7 +998,7 @@ msgstr "强度" msgid "当前版本" msgstr "当前版本" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:240 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:239 msgid "德语" msgstr "德语" @@ -1026,7 +1026,7 @@ msgstr "手动输入 ID" msgid "打开效果编辑器" msgstr "打开效果编辑器" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:259 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:257 msgid "执行到此句" msgstr "执行到此句" @@ -1322,7 +1322,7 @@ msgstr "无" msgid "无匹配选项" msgstr "无匹配选项" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:238 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:237 msgid "日语" msgstr "日语" @@ -1385,7 +1385,7 @@ msgstr "未识别" msgid "未识别的指令" msgstr "未识别的指令" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:222 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:220 msgid "本句前插入句子" msgstr "本句前插入句子" @@ -1424,11 +1424,11 @@ msgstr "标题按钮列表" msgid "标题按钮文字" msgstr "标题按钮文字" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:144 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:143 msgid "标题背景图片" msgstr "标题背景图片" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:152 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:151 msgid "标题背景音乐" msgstr "标题背景音乐" @@ -1485,7 +1485,7 @@ msgstr "此指令将结束游戏" msgid "永不换行" msgstr "永不换行" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:239 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:238 msgid "法语" msgstr "法语" @@ -1543,7 +1543,7 @@ msgstr "添加新行" msgid "添加自定义属性" msgstr "添加自定义属性" -#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:275 +#: src/pages/editor/GraphicalEditor/GraphicalEditor.tsx:273 #: src/pages/editor/GraphicalEditor/SentenceEditor/Choose.tsx:71 #: src/pages/editor/Topbar/Topbar.tsx:108 msgid "添加语句" @@ -1567,17 +1567,17 @@ msgstr "游戏" msgid "游戏列表" msgstr "游戏列表" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:135 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:134 msgid "游戏包名" msgstr "游戏包名" #: src/pages/dashboard/Sidebar.tsx:102 #: src/pages/dashboard/Sidebar.tsx:111 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:123 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:122 msgid "游戏名称" msgstr "游戏名称" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:197 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:196 msgid "游戏图标" msgstr "游戏图标" @@ -1590,11 +1590,11 @@ msgstr "游戏控制" msgid "游戏目录" msgstr "游戏目录" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:131 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:130 msgid "游戏简介" msgstr "游戏简介" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:127 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:126 msgid "游戏识别码" msgstr "游戏识别码" @@ -1679,8 +1679,8 @@ msgstr "视频选项" msgid "禁止跳过视频" msgstr "禁止跳过视频" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:215 -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:225 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:214 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:224 msgid "禁用" msgstr "禁用" @@ -1712,11 +1712,11 @@ msgstr "立绘插图的ID" msgid "立绘文件" msgstr "立绘文件" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:235 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:234 msgid "简体中文" msgstr "简体中文" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:209 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:208 msgid "紧急回避" msgstr "紧急回避" @@ -1817,7 +1817,7 @@ msgstr "编辑游戏" msgid "编辑组件" msgstr "编辑组件" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:236 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:235 msgid "繁体中文" msgstr "繁体中文" @@ -1875,7 +1875,7 @@ msgstr "背景音乐文件" msgid "背景颜色" msgstr "背景颜色" -#: src/pages/editor/MainArea/EditorToolbar.tsx:61 +#: src/pages/editor/MainArea/EditorToolbar.tsx:58 msgid "脚本编辑器" msgstr "脚本编辑器" @@ -1921,7 +1921,7 @@ msgstr "自定义级联选择器分隔符" msgid "舞台对象控制" msgstr "舞台对象控制" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:237 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:236 msgid "英语" msgstr "英语" @@ -1938,7 +1938,7 @@ msgstr "获取来自用户的字符输入" msgid "获取输入" msgstr "获取输入" -#: src/pages/editor/MainArea/EditorToolbar.tsx:56 +#: src/pages/editor/MainArea/EditorToolbar.tsx:53 msgid "行脚本" msgstr "行脚本" @@ -2181,7 +2181,7 @@ msgstr "选择动画文件" msgid "选择图片" msgstr "选择图片" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:369 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:368 msgid "选择图片文件" msgstr "选择图片文件" @@ -2338,7 +2338,7 @@ msgstr "重命名游戏目录" msgid "鉴赏" msgstr "鉴赏" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:219 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:218 msgid "鉴赏功能" msgstr "鉴赏功能" @@ -2472,7 +2472,7 @@ msgstr "默认值0" msgid "默认值1" msgstr "默认值1" -#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:229 +#: src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx:228 msgid "默认语言" msgstr "默认语言" diff --git a/packages/origine2/src/pages/editor/EditorSidebar/EditorSidebar.tsx b/packages/origine2/src/pages/editor/EditorSidebar/EditorSidebar.tsx index 01c9979de..2e332eb5d 100644 --- a/packages/origine2/src/pages/editor/EditorSidebar/EditorSidebar.tsx +++ b/packages/origine2/src/pages/editor/EditorSidebar/EditorSidebar.tsx @@ -98,12 +98,12 @@ export default function EditorSideBar() { }; }, []); - const refreshGame = () => (ifRef?.current as unknown as HTMLIFrameElement).contentWindow?.location.reload(); + const refreshGame = () => ifRef.current?.contentWindow?.location.reload(); useEffect(() => { - eventBus.on('refGame', refreshGame); + eventBus.on('iframe:refresh-game', refreshGame); return () => { - eventBus.off('refGame', refreshGame); + eventBus.off('iframe:refresh-game', refreshGame); }; }, []); diff --git a/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx b/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx index e277e061d..b6b855cc2 100644 --- a/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx +++ b/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx @@ -37,7 +37,7 @@ export default function GraphicalEditor(props: IGraphicalEditorProps) { }); function fetchScene() { - const processFetchedData = (data: any) => { + const processFetchedData = (data: object) => { const text = data.toString(); const newContents = splitToArray(text); const currentSentences = sentenceData.value; @@ -54,7 +54,7 @@ export default function GraphicalEditor(props: IGraphicalEditorProps) { }); sentenceData.set(newSentences); - eventBus.emit('update-scene', text); + eventBus.emit('editor:update-scene', { scene: text }); }; axios.get(props.targetPath) @@ -171,16 +171,14 @@ export default function GraphicalEditor(props: IGraphicalEditorProps) { addOneSentence(sentence, sentenceData.value.length); } - function handleAdd(sentence: string) { + function handleAdd({ sentence } : { sentence: string }) { addNewSentenceAttach(sentence); } useEffect(() => { - // @ts-ignore - eventBus.on('topbar-add-sentence', handleAdd); + eventBus.on('editor:topbar-add-sentence', handleAdd); return () => { - // @ts-ignore - eventBus.off('topbar-add-sentence', handleAdd); + eventBus.off('editor:topbar-add-sentence', handleAdd); }; }, [sentenceData.value]); diff --git a/packages/origine2/src/pages/editor/MainArea/EditorDebugger/EditorDebugger.tsx b/packages/origine2/src/pages/editor/MainArea/EditorDebugger/EditorDebugger.tsx index 50ea1bd11..a7646c7c3 100644 --- a/packages/origine2/src/pages/editor/MainArea/EditorDebugger/EditorDebugger.tsx +++ b/packages/origine2/src/pages/editor/MainArea/EditorDebugger/EditorDebugger.tsx @@ -12,11 +12,11 @@ import {IDebugMessage} from "@/types/debugProtocol"; export default function EditorDebugger() { const mode = useValue<'state' | 'console'>('console'); - const editorValue = useValue({}); + const editorValue = useValue({}); useEffect(() => { - const handleMessage = (message: string) => { + const handleMessage = ({ message }: { message: string }) => { let obj = {}; try { const result = JSON.parse(message) as IDebugMessage; @@ -32,12 +32,10 @@ export default function EditorDebugger() { } }; - // @ts-ignore - eventBus.on('get-ws-message', handleMessage); + eventBus.on('web-socket:on-message', handleMessage); return () => { - // @ts-ignore - eventBus.off('get-ws-message', handleMessage); + eventBus.off('web-socket:on-message', handleMessage); }; }, []); diff --git a/packages/origine2/src/pages/editor/MainArea/EditorToolbar.tsx b/packages/origine2/src/pages/editor/MainArea/EditorToolbar.tsx index 7ba8dd847..f60f10ef6 100644 --- a/packages/origine2/src/pages/editor/MainArea/EditorToolbar.tsx +++ b/packages/origine2/src/pages/editor/MainArea/EditorToolbar.tsx @@ -27,21 +27,18 @@ export default function EditorToolbar() { const handleSetGraphMode = () => updateIsCodeMode(false); useEffect(() => { - const handleUpdagteScene = (scene:string)=>{ + const handleUpdagteScene = ({ scene }: { scene: string }) => { const wordsAndChars = scene.match(/[\w]+|[^\s\w]/g) || []; setTextNum(wordsAndChars.length); setLineNum(scene.split('\n').length); }; - // @ts-ignore - eventBus.on('update-scene',handleUpdagteScene); - return ()=>{ - // @ts-ignore - eventBus.off('update-scene',handleUpdagteScene); + eventBus.on('editor:update-scene', handleUpdagteScene); + return () => { + eventBus.off('editor:update-scene', handleUpdagteScene); }; }, []); - const switchDebugger = ()=>{ updateIsShowDebugger(!isShowDebugger); }; diff --git a/packages/origine2/src/pages/editor/MainArea/MainArea.tsx b/packages/origine2/src/pages/editor/MainArea/MainArea.tsx index dd38cdfd6..6a8b5d35c 100644 --- a/packages/origine2/src/pages/editor/MainArea/MainArea.tsx +++ b/packages/origine2/src/pages/editor/MainArea/MainArea.tsx @@ -1,13 +1,12 @@ -import EditArea from "./EditArea"; -import TagsManager from "./TagsManager"; +import TagsManager from './TagsManager'; +import EditArea from './EditArea'; import styles from './mainArea.module.scss'; -import { useEffect } from "react"; -import {eventBus} from "@/utils/eventBus"; export default function MainArea() { - - return
- - -
; + return ( +
+ + +
+ ); } diff --git a/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx b/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx index bb6aced0f..2c4f66ebb 100644 --- a/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx +++ b/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx @@ -94,7 +94,7 @@ export default function TextEditor(props: ITextEditorProps) { // const lineNumber = ev.changes[0].range.startLineNumber; // const trueLineNumber = getTrueLinenumber(lineNumber, value ?? ""); if (value) currentText.value = value; - eventBus.emit('update-scene', currentText.value); + eventBus.emit('editor:update-scene', { scene: currentText.value }); api.assetsControllerEditTextFile({textFile: currentText.value, path: props.targetPath}).then((res) => { const targetValue = currentText.value.split('\n')[lineNumber - 1]; WsUtil.sendSyncCommand(target?.path??'', lineNumber, targetValue); @@ -109,7 +109,7 @@ export default function TextEditor(props: ITextEditorProps) { .then((data) => { // currentText.set(data); currentText.value = data.toString(); - eventBus.emit('update-scene', data.toString()); + eventBus.emit('editor:update-scene', { scene: data.toString() }); const model = editorRef.current?.getModel(); model?.applyEdits([ { diff --git a/packages/origine2/src/pages/editor/Topbar/components/TopbarTab.tsx b/packages/origine2/src/pages/editor/Topbar/components/TopbarTab.tsx index 1461a03aa..9665d94c9 100644 --- a/packages/origine2/src/pages/editor/Topbar/components/TopbarTab.tsx +++ b/packages/origine2/src/pages/editor/Topbar/components/TopbarTab.tsx @@ -1,40 +1,28 @@ -import React, {ReactNode, useEffect, useRef} from "react"; -import s from './topbarTab.module.scss'; +import React, { ReactNode, useRef } from 'react'; +import { useGameEditorContext } from '@/store/useGameEditorStore'; import styles from '../topbar.module.scss'; -import {eventBus} from "@/utils/eventBus"; -import { useGameEditorContext } from "@/store/useGameEditorStore"; - -export default function TopbarTab(props:{children:ReactNode}){ +import s from './topbarTab.module.scss'; +export default function TopbarTab(props: { children: ReactNode }) { const topbarTag = useRef(null); const currentTopbarTab = useGameEditorContext((state) => state.currentTopbarTab); const isAddSentenceActive = currentTopbarTab === 'addSentence'; const handleScroll = (event: React.WheelEvent) => { - const deltaY = event.deltaY; - // console.log(`滚动距离:${deltaY}px`); const element = topbarTag.current; - if(element){ - const x = element.scrollLeft; - const toX = x + deltaY; - element.scrollTo(toX,0); - } - }; - - const handleToEnd = ()=>{ - const element = topbarTag.current; - if(element){ - setTimeout(()=>element.scrollTo(10000000,0),100); - } + if (!element) return; + const x = element.scrollLeft; + const deltaY = event.deltaY; + const toX = x + deltaY; + element.scrollTo(toX, 0); }; - useEffect(() => { - eventBus.on('scrollTopbarToEnd',handleToEnd); - return ()=>{ - eventBus.off('scrollTopbarToEnd',handleToEnd); - }; - }, []); + const topbarTagClassName = s.tab + (isAddSentenceActive ? ' ' + styles.topbar_btn_special_active_topbar_tags : ''); - return
{props.children}
; + return ( +
+ {props.children} +
+ ); } diff --git a/packages/origine2/src/pages/editor/Topbar/tabs/AddSentence/AddSentenceTab.tsx b/packages/origine2/src/pages/editor/Topbar/tabs/AddSentence/AddSentenceTab.tsx index aa86243b3..7e7b03954 100644 --- a/packages/origine2/src/pages/editor/Topbar/tabs/AddSentence/AddSentenceTab.tsx +++ b/packages/origine2/src/pages/editor/Topbar/tabs/AddSentence/AddSentenceTab.tsx @@ -7,8 +7,7 @@ import {eventBus} from "@/utils/eventBus"; import {t} from "@lingui/macro"; function addSentenceText(text: string) { - console.log(text); - eventBus.emit('topbar-add-sentence', text); + eventBus.emit('editor:topbar-add-sentence', { sentence: text }); } function pickSentenceType(indexes: Array) { diff --git a/packages/origine2/src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx b/packages/origine2/src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx index 3115fdb0d..69d1df1c8 100644 --- a/packages/origine2/src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx +++ b/packages/origine2/src/pages/editor/Topbar/tabs/GameConfig/GameConfig.tsx @@ -8,7 +8,6 @@ import {WebgalConfig} from "webgal-parser/build/es/configParser/configParser"; import {WebgalParser} from "@/pages/editor/GraphicalEditor/parser"; import {logger} from "@/utils/logger"; import {textboxThemes} from "./constants"; -import {eventBus} from "@/utils/eventBus"; import {TabItem} from "@/pages/editor/Topbar/components/TabItem"; import {Add, Plus, Write} from "@icon-park/react"; import {Button, Dropdown, Input, Option} from "@fluentui/react-components"; @@ -372,7 +371,6 @@ function GameConfigEditorWithImageFileChoose(props: IGameConfigEditorMulti & { onChange={(file) => { if (file) { addImage(file.name); - // eventBus.emit('scrollTopbarToEnd'); } }} extNames={props.extNameList}/> diff --git a/packages/origine2/src/pages/editor/Topbar/tabs/ViewConfig/ViewTab.tsx b/packages/origine2/src/pages/editor/Topbar/tabs/ViewConfig/ViewTab.tsx index 85e12b483..80b931049 100644 --- a/packages/origine2/src/pages/editor/Topbar/tabs/ViewConfig/ViewTab.tsx +++ b/packages/origine2/src/pages/editor/Topbar/tabs/ViewConfig/ViewTab.tsx @@ -48,9 +48,9 @@ export function ViewTab() { { - eventBus.emit('refGame'); + eventBus.emit('iframe:refresh-game', null); }} - icon={} + icon={} text={t`刷新游戏`} /> (); + +const handlers = new Map>>(); + +const all = bus.all; + +/** 订阅事件 */ +const on = (type: K, handler: Handler): void => { + const handlerSet = handlers.get(type); + if (!handlerSet) { + const newHandlerSet = new Set>(); + newHandlerSet.add(handler as Handler); + handlers.set(type, newHandlerSet); + } else { + handlerSet.add(handler as Handler); + } + bus.on(type, handler); +}; + +/** 发布事件 */ +const emit = (type: K, event: Events[K]): void => { + bus.emit(type, event); +}; + +/** 取消订阅事件 */ +const off = (type: K, handler: Handler): void => { + const handlerSet = handlers.get(type); + if (handlerSet) { + handlerSet.delete(handler as Handler); + if (handlerSet.size === 0) { + handlers.delete(type); + } + } + bus.off(type, handler); +}; + +export const eventBus = { all, on, emit, off }; diff --git a/packages/origine2/src/utils/wsUtil.ts b/packages/origine2/src/utils/wsUtil.ts index 02b04bb94..0d9db8b5b 100644 --- a/packages/origine2/src/utils/wsUtil.ts +++ b/packages/origine2/src/utils/wsUtil.ts @@ -46,7 +46,7 @@ export class WsUtil { resolve(true); }; socket.onmessage = (e) => { - eventBus.emit('get-ws-message', e.data); + eventBus.emit('web-socket:on-message', { message: e.data }); }; // @ts-ignore window['currentWs'] = socket; From 89984dc3afe60bf5b6c1a148bbbe80bbcda54eea Mon Sep 17 00:00:00 2001 From: boomwwww Date: Tue, 12 Aug 2025 20:57:33 +0800 Subject: [PATCH 2/2] Update eventBus.ts --- packages/origine2/src/utils/eventBus.ts | 48 ++++--------------------- 1 file changed, 6 insertions(+), 42 deletions(-) diff --git a/packages/origine2/src/utils/eventBus.ts b/packages/origine2/src/utils/eventBus.ts index 7121bc5db..a6859f985 100644 --- a/packages/origine2/src/utils/eventBus.ts +++ b/packages/origine2/src/utils/eventBus.ts @@ -1,57 +1,21 @@ -import mitt, { type Handler } from 'mitt'; +import mitt from 'mitt'; // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -type WebSocketEvent = { +type WebSocketEvents = { 'web-socket:on-message': { message: string }; }; // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -type IframeEvent = { +type IframeEvents = { 'iframe:refresh-game': null; }; // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -type EditorEvent = { +type EditorEvents = { 'editor:update-scene': { scene: string }; 'editor:topbar-add-sentence': { sentence: string }; }; -type Events = WebSocketEvent & IframeEvent & EditorEvent; +type Events = WebSocketEvents & IframeEvents & EditorEvents; -const bus = mitt(); - -const handlers = new Map>>(); - -const all = bus.all; - -/** 订阅事件 */ -const on = (type: K, handler: Handler): void => { - const handlerSet = handlers.get(type); - if (!handlerSet) { - const newHandlerSet = new Set>(); - newHandlerSet.add(handler as Handler); - handlers.set(type, newHandlerSet); - } else { - handlerSet.add(handler as Handler); - } - bus.on(type, handler); -}; - -/** 发布事件 */ -const emit = (type: K, event: Events[K]): void => { - bus.emit(type, event); -}; - -/** 取消订阅事件 */ -const off = (type: K, handler: Handler): void => { - const handlerSet = handlers.get(type); - if (handlerSet) { - handlerSet.delete(handler as Handler); - if (handlerSet.size === 0) { - handlers.delete(type); - } - } - bus.off(type, handler); -}; - -export const eventBus = { all, on, emit, off }; +export const eventBus = mitt();