fix: 录像播放

This commit is contained in:
AncTe committed 2024-11-20 15:58:52 +08:00
1 parent 7ed74c8004
commit ffc4aaa865
10 files changed
+43 -33

No files matched your search

+19 -19
View File
@@ -204,13 +204,18 @@ export function init() {
control.prototype.waitHeroToStop = function (callback?: () => void) {
core.stopAutomaticRoute();
core.clearContinueAutomaticRoute();
if (heroMover.controller) {
heroMover.controller.stop().then(() => {
callback?.();
});
} else {
callback?.();
heroMover.controller?.stop();
if (callback) {
core.status.replay.animate = true;
core.lockControl();
core.status.automaticRoute.moveDirectly = false;
setTimeout(
function () {
core.status.replay.animate = false;
callback();
},
core.status.replay.speed === 24 ? 1 : 30
);
}
};
@@ -653,29 +658,24 @@ export function init() {
});
const moveAction = new Set<string>(['up', 'down', 'left', 'right']);
let controller: IMoveController | null = null;
// 复写录像的移动
core.registerReplayAction('move', action => {
if (moveAction.has(action)) {
const next = core.status.replay.toReplay[1];
if (!heroMover.moving) {
controller = heroMover.startMove();
heroMover.startMove();
}
if (!controller) {
if (!heroMover.controller) {
return false;
}
controller.push({
heroMover.controller.push({
type: 'dir',
value: action as Dir
});
if (moveAction.has(next)) {
heroMover.controller.onEnd.then(() => {
core.replay();
} else {
controller.onEnd.then(() => {
core.replay();
controller = null;
});
}
});
return true;
} else {
return false;
+6 -1
View File
@@ -20,6 +20,7 @@ export function clip(...replace: string[]) {
}
export function init() {
const { HeroSkill } = Mota.require('module', 'Mechanism');
// 注册修改设置的录像操作
core.registerReplayAction('settings', name => {
if (!name.startsWith('set:')) return false;
@@ -27,7 +28,11 @@ export function init() {
const v = eval(value);
if (typeof v !== 'boolean') return false;
if (!replayableSettings.includes(setting)) return false;
flags[setting] = v;
switch (setting) {
case 'autoSkill':
HeroSkill.setAutoSkill(v);
break;
}
core.status.route.push(name);
core.replay();
return true;
+1
View File
@@ -1,6 +1,7 @@
// @ts-nocheck
export function init() {
if (main.mode === 'editor') return;
const { mainUi, fixedUi, mainSetting } = Mota.requireAll('var');
const CustomToolbar = Mota.require('class', 'CustomToolbar');