From 1522173be35bf9a6be610a6872a92cee934ba5c8 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Sat, 21 Jun 2025 15:27:19 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=A4=84=E7=90=86=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages-user/client-modules/src/action/hotkey.ts | 8 -------- packages-user/client-modules/src/index.ts | 1 - packages-user/client-modules/src/render/action.ts | 13 +++++++++++++ .../client-modules/src/render/elements/index.ts | 2 ++ .../src/render/elements/itemDetail.ts | 6 +++++- packages-user/client-modules/src/render/index.tsx | 13 +++++++------ .../client-modules/src/render/legacy/index.ts | 7 +++++++ .../client-modules/src/render/legacy}/shadow.ts | 8 ++++++-- packages-user/client-modules/src/render/ui/main.tsx | 2 +- packages-user/client-modules/src/render/ui/save.tsx | 8 +++++++- .../client-modules/src/render/ui/settings.tsx | 2 +- .../client-modules/src/render/ui/toolbar.tsx | 2 +- .../client-modules/src/{ => render}/utils/index.ts | 0 .../client-modules/src/{ => render}/utils/saves.ts | 2 +- .../client-modules/src/{ => render}/utils/use.ts | 2 +- packages/legacy-ui/src/fx/index.ts | 7 ------- packages/legacy-ui/src/index.ts | 2 -- 17 files changed, 52 insertions(+), 33 deletions(-) create mode 100644 packages-user/client-modules/src/render/action.ts create mode 100644 packages-user/client-modules/src/render/legacy/index.ts rename {packages/legacy-ui/src/fx => packages-user/client-modules/src/render/legacy}/shadow.ts (99%) rename packages-user/client-modules/src/{ => render}/utils/index.ts (100%) rename packages-user/client-modules/src/{ => render}/utils/saves.ts (99%) rename packages-user/client-modules/src/{ => render}/utils/use.ts (84%) diff --git a/packages-user/client-modules/src/action/hotkey.ts b/packages-user/client-modules/src/action/hotkey.ts index 3f72896..97ef6ee 100644 --- a/packages-user/client-modules/src/action/hotkey.ts +++ b/packages-user/client-modules/src/action/hotkey.ts @@ -2,8 +2,6 @@ import { KeyCode } from '@motajs/client-base'; import { gameKey, HotkeyJSON } from '@motajs/system-action'; import { hovered, mainUi, tip, openDanmakuPoster } from '@motajs/legacy-ui'; import { GameStorage } from '@motajs/legacy-system'; -import { openStatistics } from '../render/ui/statistics'; -import { MAIN_HEIGHT, MAIN_WIDTH, mainUIController, saveSave } from '../render'; export const mainScope = Symbol.for('@key_main'); @@ -487,9 +485,6 @@ gameKey .realize('book', () => { core.openBook(true); }) - .realize('save', () => { - saveSave(mainUIController, [0, 0, MAIN_WIDTH, MAIN_HEIGHT]); - }) .realize('load', () => { core.load(true); }) @@ -511,9 +506,6 @@ gameKey .realize('shop', () => { core.openQuickShop(true); }) - .realize('statistics', () => { - openStatistics(mainUIController); - }) .realize('viewMap', () => { core.ui._drawViewMaps(); }) diff --git a/packages-user/client-modules/src/index.ts b/packages-user/client-modules/src/index.ts index fad4e75..543ed0c 100644 --- a/packages-user/client-modules/src/index.ts +++ b/packages-user/client-modules/src/index.ts @@ -17,5 +17,4 @@ export * from './audio'; export * from './fallback'; export * from './loader'; export * from './render'; -export * from './utils'; export * from './weather'; diff --git a/packages-user/client-modules/src/render/action.ts b/packages-user/client-modules/src/render/action.ts new file mode 100644 index 0000000..1ce6849 --- /dev/null +++ b/packages-user/client-modules/src/render/action.ts @@ -0,0 +1,13 @@ +import { gameKey } from '@motajs/system-action'; +import { MAIN_WIDTH, MAIN_HEIGHT } from './shared'; +import { saveSave, mainUIController, openStatistics } from './ui'; + +export function createAction() { + gameKey + .realize('save', () => { + saveSave(mainUIController, [0, 0, MAIN_WIDTH, MAIN_HEIGHT]); + }) + .realize('statistics', () => { + openStatistics(mainUIController); + }); +} diff --git a/packages-user/client-modules/src/render/elements/index.ts b/packages-user/client-modules/src/render/elements/index.ts index 112d1f3..ab23962 100644 --- a/packages-user/client-modules/src/render/elements/index.ts +++ b/packages-user/client-modules/src/render/elements/index.ts @@ -5,12 +5,14 @@ import { createLayer, Layer, LayerGroup } from './layer'; import { createViewport } from './viewport'; import { Icon, Winskin } from './misc'; import { Animate } from './animate'; +import { createItemDetail } from './itemDetail'; export function createElements() { createCache(); createFrame(); createLayer(); createViewport(); + createItemDetail(); // ----- 注册标签 diff --git a/packages-user/client-modules/src/render/elements/itemDetail.ts b/packages-user/client-modules/src/render/elements/itemDetail.ts index 5c33aab..3ee4584 100644 --- a/packages-user/client-modules/src/render/elements/itemDetail.ts +++ b/packages-user/client-modules/src/render/elements/itemDetail.ts @@ -3,7 +3,11 @@ import { mainSetting } from '@motajs/legacy-ui'; import { hook } from '@user/data-base'; import { ItemState } from '@user/data-state'; import { Damage, DamageRenderable, FloorDamageExtends } from './damage'; -import { ILayerGroupRenderExtends, LayerGroup, LayerGroupFloorBinder } from '.'; +import { + ILayerGroupRenderExtends, + LayerGroup, + LayerGroupFloorBinder +} from './layer'; interface ItemDetailData { x: number; diff --git a/packages-user/client-modules/src/render/index.tsx b/packages-user/client-modules/src/render/index.tsx index ec3aa01..f77e2ec 100644 --- a/packages-user/client-modules/src/render/index.tsx +++ b/packages-user/client-modules/src/render/index.tsx @@ -4,12 +4,12 @@ import { UIController } from '@motajs/system-ui'; import { mainSceneUI } from './ui/main'; import { MAIN_HEIGHT, MAIN_WIDTH } from './shared'; import { hook } from '@user/data-base'; -import { createItemDetail } from './elements/itemDetail'; import { createLoopMap } from './loopMap'; -import { createGameCanvas } from './legacy/gameCanvas'; import { createElements } from './elements'; import { mainRenderer } from './renderer'; import { createUI } from './ui'; +import { createAction } from './action'; +import { createLegacy } from './legacy'; export function createGameRenderer() { const App = defineComponent(_props => { @@ -38,16 +38,17 @@ export function createGameRenderer() { } export function createRender() { - createUI(); - createGameCanvas(); - createItemDetail(); - createLoopMap(); createElements(); + createLegacy(); + createUI(); + createAction(); + createLoopMap(); } export * from './components'; export * from './elements'; export * from './ui'; +export * from './utils'; export * from './renderer'; export * from './shared'; export * from './use'; diff --git a/packages-user/client-modules/src/render/legacy/index.ts b/packages-user/client-modules/src/render/legacy/index.ts new file mode 100644 index 0000000..1fec97a --- /dev/null +++ b/packages-user/client-modules/src/render/legacy/index.ts @@ -0,0 +1,7 @@ +import { createGameCanvas } from './gameCanvas'; +import { createShadow } from './shadow'; + +export function createLegacy() { + createGameCanvas(); + createShadow(); +} diff --git a/packages/legacy-ui/src/fx/shadow.ts b/packages-user/client-modules/src/render/legacy/shadow.ts similarity index 99% rename from packages/legacy-ui/src/fx/shadow.ts rename to packages-user/client-modules/src/render/legacy/shadow.ts index 427da24..67a986b 100644 --- a/packages/legacy-ui/src/fx/shadow.ts +++ b/packages-user/client-modules/src/render/legacy/shadow.ts @@ -1,8 +1,12 @@ import { mat4 } from 'gl-matrix'; import { logger } from '@motajs/common'; -import { WebGLColorArray, createProgram, isWebGL2Supported } from './webgl'; +import { + WebGLColorArray, + createProgram, + isWebGL2Supported +} from '@motajs/legacy-ui'; import { Sprite } from '@motajs/render'; -import { ILayerRenderExtends, Layer, HeroRenderer } from '@user/client-modules'; +import { ILayerRenderExtends, Layer, HeroRenderer } from '../elements'; /** * 最大光源数量,必须设置,且光源数不能超过这个值,这个值决定了会预留多少的缓冲区,因此最好尽可能小,同时游戏过程中不可修改 diff --git a/packages-user/client-modules/src/render/ui/main.tsx b/packages-user/client-modules/src/render/ui/main.tsx index aa55474..350df28 100644 --- a/packages-user/client-modules/src/render/ui/main.tsx +++ b/packages-user/client-modules/src/render/ui/main.tsx @@ -1,4 +1,4 @@ -import { LayerShadowExtends } from '@motajs/legacy-ui'; +import { LayerShadowExtends } from '../legacy/shadow'; import { Props, Font } from '@motajs/render'; import { WeatherController } from '../../weather'; import { defineComponent, onMounted, reactive, ref } from 'vue'; diff --git a/packages-user/client-modules/src/render/ui/save.tsx b/packages-user/client-modules/src/render/ui/save.tsx index 4330aa2..add0a6f 100644 --- a/packages-user/client-modules/src/render/ui/save.tsx +++ b/packages-user/client-modules/src/render/ui/save.tsx @@ -358,6 +358,7 @@ export async function saveSave( } }; const index = await selectSave(controller, loc, validate, props); + if (index === -2) return; core.doSL(index, 'save'); } @@ -370,5 +371,10 @@ export async function saveLoad( return { message: '无效的存档!', valid: exist }; }; const index = await selectSave(controller, loc, validate, props); - core.doSL(index, 'load'); + if (index === -2) return; + if (index === -1) { + core.doSL('autosave', 'load'); + } else { + core.doSL(index, 'load'); + } } diff --git a/packages-user/client-modules/src/render/ui/settings.tsx b/packages-user/client-modules/src/render/ui/settings.tsx index 8ed668c..b20e7f5 100644 --- a/packages-user/client-modules/src/render/ui/settings.tsx +++ b/packages-user/client-modules/src/render/ui/settings.tsx @@ -17,7 +17,7 @@ import { mainUi } from '@motajs/legacy-ui'; import { gameKey } from '@motajs/system-action'; import { generateKeyboardEvent } from '@motajs/system-action'; import { getVitualKeyOnce } from '@motajs/legacy-ui'; -import { getAllSavesData, getSaveData, syncFromServer } from '../../utils'; +import { getAllSavesData, getSaveData, syncFromServer } from '../utils'; import { getInput } from '../components/input'; import { openStatistics } from './statistics'; diff --git a/packages-user/client-modules/src/render/ui/toolbar.tsx b/packages-user/client-modules/src/render/ui/toolbar.tsx index da73a23..a1486f0 100644 --- a/packages-user/client-modules/src/render/ui/toolbar.tsx +++ b/packages-user/client-modules/src/render/ui/toolbar.tsx @@ -22,7 +22,7 @@ import { Progress } from '../components/misc'; import { generateBinary } from '@motajs/legacy-common'; import { SetupComponentOptions } from '@motajs/system-ui'; import { saveSave } from './save'; -import { mainUIController } from '@user/client-modules'; +import { mainUIController } from './controller'; import { MAIN_WIDTH, MAIN_HEIGHT } from '../shared'; interface ToolbarProps extends DefaultProps { diff --git a/packages-user/client-modules/src/utils/index.ts b/packages-user/client-modules/src/render/utils/index.ts similarity index 100% rename from packages-user/client-modules/src/utils/index.ts rename to packages-user/client-modules/src/render/utils/index.ts diff --git a/packages-user/client-modules/src/utils/saves.ts b/packages-user/client-modules/src/render/utils/saves.ts similarity index 99% rename from packages-user/client-modules/src/utils/saves.ts rename to packages-user/client-modules/src/render/utils/saves.ts index 0a81de3..74ddade 100644 --- a/packages-user/client-modules/src/utils/saves.ts +++ b/packages-user/client-modules/src/render/utils/saves.ts @@ -1,5 +1,5 @@ import { compressToBase64, decompressFromBase64 } from 'lz-string'; -import { getConfirm, waitbox } from '../render'; +import { getConfirm, waitbox } from '../components'; import { IUIMountable } from '@motajs/system-ui'; import { SyncSaveFromServerResponse } from '@motajs/client-base'; diff --git a/packages-user/client-modules/src/utils/use.ts b/packages-user/client-modules/src/render/utils/use.ts similarity index 84% rename from packages-user/client-modules/src/utils/use.ts rename to packages-user/client-modules/src/render/utils/use.ts index a07d223..b231958 100644 --- a/packages-user/client-modules/src/utils/use.ts +++ b/packages-user/client-modules/src/render/utils/use.ts @@ -1,5 +1,5 @@ import { onUnmounted } from 'vue'; -import { WeatherController } from '../weather'; +import { WeatherController } from '../../weather'; let weatherId = 0; diff --git a/packages/legacy-ui/src/fx/index.ts b/packages/legacy-ui/src/fx/index.ts index 9cf2450..3f94642 100644 --- a/packages/legacy-ui/src/fx/index.ts +++ b/packages/legacy-ui/src/fx/index.ts @@ -1,8 +1 @@ -import { createShadow } from './shadow'; - -export function createFx() { - createShadow(); -} - -export * from './shadow'; export * from './webgl'; diff --git a/packages/legacy-ui/src/index.ts b/packages/legacy-ui/src/index.ts index bcca76b..898957b 100644 --- a/packages/legacy-ui/src/index.ts +++ b/packages/legacy-ui/src/index.ts @@ -1,8 +1,6 @@ -import { createFx } from './fx'; import { createPreset } from './preset'; export function create() { - createFx(); createPreset(); }