mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-11 15:47:06 +08:00
refactor: 渲染系统的部分目录结构
This commit is contained in:
parent
ed229e1601
commit
69da048438
@ -2853,11 +2853,7 @@ control.prototype.getMappedName = function (name) {
|
||||
////// 更改天气效果 //////
|
||||
control.prototype.setWeather = function (type, level) {
|
||||
// Deprecated. Use WeatherController API instead.
|
||||
Mota.r(() => {
|
||||
const controller = Mota.require('module', 'Weather').controller;
|
||||
controller.clearWeather();
|
||||
if (type !== null && type !== void 0) controller.activate(type, level);
|
||||
});
|
||||
// Fallback see src/module/fallback/weather.ts
|
||||
};
|
||||
|
||||
////// 注册一个天气 //////
|
||||
|
@ -75,7 +75,6 @@ import './render/index';
|
||||
import * as RenderUtils from './render/utils';
|
||||
import '@/module';
|
||||
import { MotaOffscreenCanvas2D } from './fx/canvas2d';
|
||||
import { TextboxStore } from './render/index';
|
||||
|
||||
// ----- 类注册
|
||||
Mota.register('class', 'CustomToolbar', CustomToolbar);
|
||||
@ -157,8 +156,7 @@ Mota.register('module', 'Render', {
|
||||
LayerGroupFloorBinder,
|
||||
Camera,
|
||||
MotaOffscreenCanvas2D,
|
||||
Utils: RenderUtils,
|
||||
TextboxStore
|
||||
Utils: RenderUtils
|
||||
});
|
||||
Mota.register('module', 'Action', {
|
||||
HeroKeyMover
|
||||
|
14
src/core/render/index.ts
Normal file
14
src/core/render/index.ts
Normal file
@ -0,0 +1,14 @@
|
||||
export * from './preset';
|
||||
export * from './renderer';
|
||||
export * from './adapter';
|
||||
export * from './cache';
|
||||
export * from './camera';
|
||||
export * from './container';
|
||||
export * from './frame';
|
||||
export * from './gl2';
|
||||
export * from './item';
|
||||
export * from './render';
|
||||
export * from './shader';
|
||||
export * from './sprite';
|
||||
export * from './transform';
|
||||
export * from './utils';
|
@ -388,7 +388,7 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
|
||||
/**
|
||||
* 渲染函数
|
||||
* @param canvas 渲染至的画布
|
||||
* @param transform 当前变换矩阵的,渲染时已经进行变换处理,不需要对画布再次进行变换处理
|
||||
* @param transform 当前变换矩阵的,渲染时已经进行变换处理,不需要对画布再次进行变换处理。
|
||||
* 此参数可用于自己对元素进行变换处理,也会用于对子元素的处理。
|
||||
* 例如对于`absolute`类型的元素,同时有对视角改变的需求,就可以通过此参数进行变换。
|
||||
* 样板内置的`Layer`及`Damage`元素就是通过此方式实现的
|
||||
|
@ -38,7 +38,6 @@ import type * as Animation from 'mutate-animate';
|
||||
import type * as RenderUtils from '@/core/render/utils';
|
||||
import type { WeatherController } from '@/module/weather/weather';
|
||||
import type { MotaOffscreenCanvas2D } from '@/core/fx/canvas2d';
|
||||
import type { TextboxStore } from '@/core/render';
|
||||
|
||||
interface ClassInterface {
|
||||
// 渲染进程与游戏进程通用
|
||||
@ -115,7 +114,6 @@ interface ModuleInterface {
|
||||
Camera: typeof Camera;
|
||||
MotaOffscreenCanvas2D: typeof MotaOffscreenCanvas2D;
|
||||
Utils: typeof RenderUtils;
|
||||
TextboxStore: typeof TextboxStore;
|
||||
};
|
||||
State: {
|
||||
ItemState: typeof ItemState;
|
||||
|
@ -1,9 +1,10 @@
|
||||
import { Patch } from '@/common/patch';
|
||||
import { patchAudio } from './audio';
|
||||
|
||||
patchAudio();
|
||||
import { patchWeather } from './weather';
|
||||
|
||||
export function patchAll() {
|
||||
patchAudio();
|
||||
patchWeather();
|
||||
const loading = Mota.require('var', 'loading');
|
||||
loading.once('coreInit', () => {
|
||||
Patch.patchAll();
|
||||
|
21
src/module/fallback/weather.ts
Normal file
21
src/module/fallback/weather.ts
Normal file
@ -0,0 +1,21 @@
|
||||
import { Patch, PatchClass } from '@/common/patch';
|
||||
import { WeatherController } from '../weather';
|
||||
import { isNil } from 'lodash-es';
|
||||
|
||||
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;
|
||||
}
|
||||
});
|
||||
}
|
@ -1,19 +1,21 @@
|
||||
import { soundPlayer } from './audio';
|
||||
import { patchAll } from './fallback';
|
||||
import { controller } from './weather';
|
||||
import { create } from './render';
|
||||
import { RainWeather } from './weather/rain';
|
||||
import { WeatherController } from './weather/weather';
|
||||
|
||||
patchAll();
|
||||
Mota.register('module', 'Weather', {
|
||||
controller,
|
||||
WeatherController,
|
||||
RainWeather
|
||||
});
|
||||
Mota.register('module', 'Audio', { soundPlayer });
|
||||
Mota.register('module', 'Audio', {
|
||||
soundPlayer
|
||||
});
|
||||
Mota.require('var', 'loading').once('coreInit', create);
|
||||
|
||||
export * from './weather';
|
||||
export * from './audio';
|
||||
export * from './loader';
|
||||
export * from './fallback';
|
||||
export * from './ui';
|
||||
export * from './render';
|
||||
|
@ -1,26 +1,25 @@
|
||||
import { FloorItemDetail } from '@/plugin/fx/itemDetail';
|
||||
import { FloorDamageExtends } from './preset/damage';
|
||||
import { LayerDoorAnimate } from './preset/floor';
|
||||
import { HeroRenderer } from './preset/hero';
|
||||
import { MotaRenderer } from './render';
|
||||
import { LayerShadowExtends } from '../fx/shadow';
|
||||
import { FloorDamageExtends, LayerGroup } from '@/core/render';
|
||||
import { LayerDoorAnimate } from '@/core/render';
|
||||
import { HeroRenderer } from '@/core/render';
|
||||
import { MotaRenderer } from '@/core/render';
|
||||
import { LayerShadowExtends } from '@/core/fx/shadow';
|
||||
import { LayerGroupFilter } from '@/plugin/fx/gameCanvas';
|
||||
import { LayerGroupAnimate } from './preset/animate';
|
||||
import { LayerGroupAnimate } from '@/core/render';
|
||||
import { LayerGroupPortal } from '@/plugin/fx/portal';
|
||||
import { LayerGroupHalo } from '@/plugin/fx/halo';
|
||||
import { FloorViewport } from './preset/viewport';
|
||||
import { FloorViewport } from '@/core/render';
|
||||
import { PopText } from '@/plugin/fx/pop';
|
||||
import { FloorChange } from '@/plugin/fallback';
|
||||
import { createApp } from './renderer';
|
||||
import { defineComponent } from 'vue';
|
||||
import { Textbox } from '../../module/ui/components';
|
||||
import { ILayerGroupRenderExtends, ILayerRenderExtends } from './preset';
|
||||
import { Props } from './utils';
|
||||
import { createApp } from '@/core/render';
|
||||
import { defineComponent, onMounted, ref } from 'vue';
|
||||
import { Textbox } from './components';
|
||||
import { ILayerGroupRenderExtends, ILayerRenderExtends } from '@/core/render';
|
||||
import { Props } from '@/core/render';
|
||||
import { WeatherController } from '../weather';
|
||||
|
||||
let main: MotaRenderer;
|
||||
|
||||
Mota.require('var', 'loading').once('coreInit', () => {
|
||||
main = new MotaRenderer();
|
||||
export function create() {
|
||||
const main = new MotaRenderer();
|
||||
|
||||
const App = defineComponent(_props => {
|
||||
const layerGroupExtends: ILayerGroupRenderExtends[] = [
|
||||
@ -57,9 +56,16 @@ Mota.require('var', 'loading').once('coreInit', () => {
|
||||
lineHeight: 6
|
||||
};
|
||||
|
||||
const map = ref<LayerGroup>();
|
||||
const weather = new WeatherController('main');
|
||||
|
||||
onMounted(() => {
|
||||
weather.bind(map.value);
|
||||
});
|
||||
|
||||
return () => (
|
||||
<container id="map-draw" {...mapDrawProps}>
|
||||
<layer-group id="layer-main" ex={layerGroupExtends}>
|
||||
<layer-group id="layer-main" ex={layerGroupExtends} ref={map}>
|
||||
<layer layer="bg" zIndex={10}></layer>
|
||||
<layer layer="bg2" zIndex={20}></layer>
|
||||
<layer layer="event" zIndex={30} ex={eventExtends}></layer>
|
||||
@ -75,28 +81,16 @@ Mota.require('var', 'loading').once('coreInit', () => {
|
||||
|
||||
main.hide();
|
||||
createApp(App).mount(main);
|
||||
// render(<Com></Com>, main);
|
||||
|
||||
Mota.require('var', 'hook').on('reset', () => {
|
||||
main.show();
|
||||
});
|
||||
|
||||
Mota.require('var', 'hook').on('restart', () => {
|
||||
main.hide();
|
||||
});
|
||||
|
||||
console.log(main);
|
||||
});
|
||||
}
|
||||
|
||||
Mota.require('var', 'hook').on('reset', () => {
|
||||
main.show();
|
||||
});
|
||||
|
||||
Mota.require('var', 'hook').on('restart', () => {
|
||||
main.hide();
|
||||
});
|
||||
|
||||
export * from './preset';
|
||||
export * from './renderer';
|
||||
export * from './adapter';
|
||||
export * from './cache';
|
||||
export * from './camera';
|
||||
export * from './container';
|
||||
export * from './gl2';
|
||||
export * from './item';
|
||||
export * from './render';
|
||||
export * from './shader';
|
||||
export * from './sprite';
|
||||
export * from './transform';
|
||||
export * from './components';
|
@ -1 +0,0 @@
|
||||
export * from './components';
|
@ -20,8 +20,8 @@ import {
|
||||
} from './towerBossProjectile';
|
||||
import { IStateDamageable } from '@/game/state/interface';
|
||||
import { HeroRenderer } from '@/core/render/preset/hero';
|
||||
import { controller } from '@/module/weather';
|
||||
import { Pop } from '../fx/pop';
|
||||
import { WeatherController } from '@/module';
|
||||
|
||||
Mota.require('var', 'loading').once('coreInit', () => {
|
||||
const shader = new Shader();
|
||||
@ -401,7 +401,8 @@ export class TowerBoss extends BarrageBoss {
|
||||
this.skill4Time = 5;
|
||||
this.skill5Time = 3;
|
||||
core.playBgm('towerBoss2.opus');
|
||||
controller.activate('rain', 6);
|
||||
const weather = WeatherController.get('main');
|
||||
weather?.activate('rain', 6);
|
||||
}
|
||||
|
||||
releaseSkill4() {
|
||||
|
Loading…
Reference in New Issue
Block a user