mirror of
https://github.com/motajs/template.git
synced 2026-11-07 02:04:30 +08:00
init: 2.B
This commit is contained in:
commit
6bf32174d8
610 files changed
+151444
No files matched your search
@@ -0,0 +1,71 @@
|
||||
import { Patch, PatchClass } from '@motajs/legacy-common';
|
||||
import { audioPlayer, bgmController, soundPlayer } from '../audio';
|
||||
import { mainSetting } from '@motajs/legacy-ui';
|
||||
import { sleep } from 'mutate-animate';
|
||||
import { isNil } from 'lodash-es';
|
||||
|
||||
// todo: 添加弃用警告 logger.warn(56)
|
||||
|
||||
export function patchAudio() {
|
||||
const patch = new Patch(PatchClass.Control);
|
||||
|
||||
const play = (bgm: BgmIds, when?: number) => {
|
||||
bgmController.play(bgm, when);
|
||||
};
|
||||
const pause = () => {
|
||||
bgmController.pause();
|
||||
};
|
||||
|
||||
patch.add('playBgm', function (bgm, startTime) {
|
||||
const name = core.getMappedName(bgm) as BgmIds;
|
||||
play(name, startTime);
|
||||
});
|
||||
patch.add('pauseBgm', function () {
|
||||
pause();
|
||||
});
|
||||
patch.add('resumeBgm', function () {
|
||||
bgmController.resume();
|
||||
});
|
||||
patch.add('checkBgm', function () {
|
||||
if (bgmController.playing) return;
|
||||
if (mainSetting.getValue('audio.bgmEnabled')) {
|
||||
if (bgmController.playingBgm) {
|
||||
bgmController.play(bgmController.playingBgm);
|
||||
} else {
|
||||
play(main.startBgm, 0);
|
||||
}
|
||||
} else {
|
||||
pause();
|
||||
}
|
||||
});
|
||||
patch.add('triggerBgm', function () {
|
||||
if (bgmController.playing) bgmController.pause();
|
||||
else bgmController.resume();
|
||||
});
|
||||
|
||||
patch.add(
|
||||
'playSound',
|
||||
function (sound, _pitch, callback, position, orientation) {
|
||||
const name = core.getMappedName(sound) as SoundIds;
|
||||
const num = soundPlayer.play(name, position, orientation);
|
||||
const route = audioPlayer.getRoute(`sounds.${num}`);
|
||||
if (!route) {
|
||||
callback?.();
|
||||
return -1;
|
||||
} else {
|
||||
sleep(route.duration).then(() => callback?.());
|
||||
return num;
|
||||
}
|
||||
}
|
||||
);
|
||||
patch.add('stopSound', function (id) {
|
||||
if (isNil(id)) {
|
||||
soundPlayer.stopAllSounds();
|
||||
} else {
|
||||
soundPlayer.stop(id);
|
||||
}
|
||||
});
|
||||
patch.add('getPlayingSounds', function () {
|
||||
return [...soundPlayer.playing];
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { patchAudio } from './audio';
|
||||
import { patchWeather } from './weather';
|
||||
import { patchUI } from './ui';
|
||||
|
||||
export function patchAll() {
|
||||
patchAudio();
|
||||
patchWeather();
|
||||
patchUI();
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Patch, PatchClass } from '@motajs/legacy-common';
|
||||
import { TipStore } from '../render/components/tip';
|
||||
|
||||
export function patchUI() {
|
||||
const patch = new Patch(PatchClass.UI);
|
||||
|
||||
patch.add('drawTip', function (text, id) {
|
||||
const tip = TipStore.get('main-tip');
|
||||
tip?.drawTip(text, id);
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { Patch, PatchClass } from '@motajs/legacy-common';
|
||||
import { WeatherController } from '../render/weather';
|
||||
import { isNil } from 'lodash-es';
|
||||
|
||||
// todo: 添加弃用警告 logger.warn(56)
|
||||
|
||||
export function patchWeather() {
|
||||
const patch = new Patch(PatchClass.Control);
|
||||
let nowWeather: string = '';
|
||||
let nowLevel: number = 0;
|
||||
|
||||
patch.add('setWeather', (type, level) => {
|
||||
const weather = WeatherController.get('main');
|
||||
if (!weather) return;
|
||||
if (type === nowWeather && level === nowLevel) return;
|
||||
weather.clearWeather();
|
||||
if (!isNil(type)) {
|
||||
weather.activate(type, level);
|
||||
nowWeather = type;
|
||||
nowLevel = level ?? 5;
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user