refactor: 删除 legacy-system

This commit is contained in:
AncTe committed 2026-11-03 15:00:52 +08:00
1 parent 66e4e334f6
commit ad37186068
10 files changed
-263

No files matched your search

-1
View File
@@ -7,7 +7,6 @@
"@motajs/render": "workspace:*",
"@motajs/render-vue": "workspace:*",
"@motajs/system": "workspace:*",
"@motajs/legacy-system": "workspace:*",
"@user/client-base": "workspace:*",
"@user/client-modules": "workspace:*"
}
-2
View File
@@ -1,7 +1,6 @@
import { Mota } from '@user/entry-data';
import * as Client from '@motajs/client';
import * as ClientBase from '@motajs/client-base';
import * as LegacySystem from '@motajs/legacy-system';
import * as Render from '@motajs/render';
import * as RenderVue from '@motajs/render-vue';
import * as System from '@motajs/system';
@@ -13,7 +12,6 @@ import * as Lodash from 'lodash-es';
export function create() {
Mota.register('@motajs/client', Client);
Mota.register('@motajs/client-base', ClientBase);
Mota.register('@motajs/legacy-system', LegacySystem);
Mota.register('@motajs/render', Render);
Mota.register('@motajs/render-vue', RenderVue);
Mota.register('@motajs/system', System);
-2
View File
@@ -1,6 +1,5 @@
import { Mota } from './mota';
import * as Common from '@motajs/common';
import * as LegacyCommon from '@motajs/legacy-common';
import * as DataCommon from '@user/data-common';
import * as DataBase from '@user/data-base';
import * as DataSystem from '@user/data-system';
@@ -8,7 +7,6 @@ import * as DataState from '@user/data-state';
export function create() {
Mota.register('@motajs/common', Common);
Mota.register('@motajs/legacy-common', LegacyCommon);
Mota.register('@user/data-common', DataCommon);
Mota.register('@user/data-base', DataBase);
Mota.register('@user/data-system', DataSystem);
-4
View File
@@ -1,8 +1,6 @@
import type * as Client from '@motajs/client';
import type * as ClientBase from '@motajs/client-base';
import type * as Common from '@motajs/common';
import type * as LegacyCommon from '@motajs/legacy-common';
import type * as LegacySystem from '@motajs/legacy-system';
import type * as Render from '@motajs/render';
import type * as RenderVue from '@motajs/render-vue';
import type * as System from '@motajs/system';
@@ -20,8 +18,6 @@ interface ModuleInterface {
'@motajs/client': typeof Client;
'@motajs/client-base': typeof ClientBase;
'@motajs/common': typeof Common;
'@motajs/legacy-common': typeof LegacyCommon;
'@motajs/legacy-system': typeof LegacySystem;
'@motajs/render': typeof Render;
'@motajs/render-vue': typeof RenderVue;
'@motajs/system': typeof System;
-6
View File
@@ -1,6 +0,0 @@
{
"name": "@motajs/legacy-system",
"dependencies": {
"@motajs/system": "workspace:*"
}
}
-2
View File
@@ -1,2 +0,0 @@
export * from './misc';
export * from './storage';
-106
View File
@@ -1,106 +0,0 @@
<template>
<div class="keyboard-container">
<div
v-for="(key, i) of keyboard.keys"
class="keyboard-item"
@click="keyboard.emitKey(key, i)"
:active="checkAssist(assist, key.key)"
:style="{
left: `${key.x}px`,
top: `${key.y}px`,
width: `${key.width}px`,
height: `${key.height}px`
}"
>
<span
class="keyboard-key button-text"
v-html="key.text ?? KeyCodeUtils.toString(key.key)"
></span>
</div>
</div>
</template>
<script lang="ts" setup>
import { checkAssist, Keyboard, KeyboardEmits } from '@motajs/system';
import { KeyCodeUtils } from '@motajs/client-base';
import { nextTick, onUnmounted, ref } from 'vue';
const props = defineProps<{
keyboard: Keyboard;
}>();
const assist = ref(props.keyboard.assist);
const fontSize = `${props.keyboard.fontSize}px`;
const [width, height] = (() => {
const key = props.keyboard;
let mw = 0;
let mh = 0;
for (const k of key.keys) {
if (k.x + k.width > mw) mw = k.x + k.width;
if (k.y + k.height > mh) mh = k.y + k.height;
}
return [`${mw}px`, `${mh}px`];
})();
function onAssist() {
nextTick(() => {
assist.value = props.keyboard.assist;
});
}
props.keyboard.on('emit', onAssist);
const emits = defineEmits<{
(e: 'keyup', data: KeyboardEmits): void;
}>();
onUnmounted(() => {
props.keyboard.off('emit', onAssist);
});
</script>
<style lang="less" scoped>
.keyboard-container {
width: v-bind(width);
height: v-bind(height);
display: block;
font-size: v-bind(fontSize);
position: relative;
font-family: Arial;
}
.keyboard-item {
position: absolute;
background-color: #222;
border: 1.5px solid #ddd8;
display: flex;
justify-content: center;
align-items: center;
transition: all 0.1s linear;
cursor: pointer;
color: white;
}
.keyboard-item:hover,
.keyboard-item[active='true'] {
background-color: #555;
}
.keyboard-item[active='true']::v-deep(> *) {
color: gold;
font-weight: 700;
}
.keyboard-key {
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
text-overflow: clip;
text-wrap: nowrap;
overflow: hidden;
}
</style>
-15
View File
@@ -1,15 +0,0 @@
import { Keyboard } from '@motajs/system';
import KeyboardUI from './keyboard.vue';
interface VirtualKeyProps {
keyboard: Keyboard;
}
export function VirtualKey(props: VirtualKeyProps) {
return (
<KeyboardUI
style="align-self: center"
keyboard={props.keyboard}
></KeyboardUI>
);
}
-116
View File
@@ -1,116 +0,0 @@
import { isNil } from 'lodash-es';
export class GameStorage<T extends object = any> {
static list: GameStorage<any>[] = [];
key: string;
data!: Partial<T>;
constructor(key: string) {
this.key = key;
this.read();
GameStorage.list.push(this);
}
/**
* 从本地存储读取
*/
read(): T {
const data = localStorage.getItem(this.key) ?? '{}';
return (this.data = JSON.parse(data));
}
/**
* 写入本地存储
*/
write() {
localStorage.setItem(this.key, JSON.stringify(this.data));
}
/**
* 设置存储的值
* @param key 存储的名称
* @param value 存储的值
*/
setValue<K extends keyof T>(key: K, value: T[K]): void;
setValue(key: string, value: any): void;
setValue<K extends keyof T>(key: K, value: T[K]) {
this.data[key] = value;
}
getValue<K extends keyof T>(key: K): T[K] | null;
getValue<K extends keyof T>(key: K, defaults: T[K]): T[K];
getValue<T>(key: string, defaults?: T): T;
getValue<K extends keyof T>(key: K, defaults?: T[K]) {
if (!isNil(this.data[key])) return this.data[key];
else {
if (defaults !== void 0) {
this.data[key] = defaults;
return defaults;
}
return null;
}
}
toJSON() {
return JSON.stringify(this.data);
}
clear() {
this.data = {};
}
keys() {
return Object.keys(this.data);
}
values() {
return Object.values(this.data);
}
entries() {
return Object.entries(this.data);
}
/**
* 获取本游戏的存储键
* @param key 存储名称
*/
static fromGame(key: string) {
return `HumanBreak_${key}`;
}
/**
* 获取与作者相关联的存储键
* @param author 作者名称
* @param key 存储名称
*/
static fromAuthor(author: string, key: string) {
return `${author}@${key}`;
}
/**
* 根据存储键获取对应的存储实例
* @param key 存储键
* @example Storage.get(Storage.fromAuthor('AncTe', 'setting'));
*/
static get(key: string) {
return this.list.find(v => v.key === key);
}
/**
* 与Symbol.for类似
*/
static for(key: string) {
const s = this.get(key);
if (s) return s;
else return new GameStorage(key);
}
}
window.addEventListener('beforeunload', () => {
GameStorage.list.forEach(v => v.write());
});
window.addEventListener('blur', () => {
GameStorage.list.forEach(v => v.write());
});
-9
View File
@@ -530,9 +530,6 @@ importers:
'@motajs/common':
specifier: workspace:*
version: link:../../packages/common
'@motajs/legacy-system':
specifier: workspace:*
version: link:../../packages/legacy-system
'@motajs/render':
specifier: workspace:*
version: link:../../packages/render
@@ -587,12 +584,6 @@ importers:
packages/common: {}
packages/legacy-system:
dependencies:
'@motajs/system':
specifier: workspace:*
version: link:../system
packages/loader:
dependencies:
'@motajs/common':