feat: 将 HumanBreak 新内容移植入该样板

This commit is contained in:
AncTe committed 2026-02-28 22:56:59 +08:00
1 parent 6bf32174d8
commit bea2725d6a
128 files changed
+11984 -573

No files matched your search

@@ -1,8 +1,6 @@
import { logger } from '@motajs/common';
import {
MotaOffscreenCanvas2D,
SizedCanvasImageSource
} from '@motajs/render-core';
import { MotaOffscreenCanvas2D } from '@motajs/render-core';
import { SizedCanvasImageSource } from '@motajs/render-assets';
// 经过测试(https://www.measurethat.net/Benchmarks/Show/30741/1/drawimage-img-vs-canvas-vs-bitmap-cropping-fix-loading)
// 得出结论,ImageBitmap和Canvas的绘制性能不如Image,于是直接画Image就行,所以缓存基本上就是存Image
@@ -1,4 +1,5 @@
import { RenderAdapter, SizedCanvasImageSource } from '@motajs/render-core';
import { RenderAdapter } from '@motajs/render-core';
import { SizedCanvasImageSource } from '@motajs/render-assets';
import { logger } from '@motajs/common';
import { ILayerRenderExtends, Layer, LayerMovingRenderable } from './layer';
import EventEmitter from 'eventemitter3';
@@ -6,6 +6,10 @@ import { createViewport } from './viewport';
import { Icon, Winskin } from './misc';
import { Animate } from './animate';
import { createItemDetail } from './itemDetail';
import { logger } from '@motajs/common';
import { MapRender, MapRenderer } from '../map';
import { state } from '@user/data-state';
import { materials } from '@user/client-base';
export function createElements() {
createCache();
@@ -66,6 +70,31 @@ export function createElements() {
return new Animate();
});
tagMap.register('icon', standardElementNoCache(Icon));
tagMap.register('map-render', (_0, _1, props) => {
if (!props) {
logger.error(42);
return new MapRender(
state.layer,
new MapRenderer(materials, state.layer)
);
}
const { layerState, renderer } = props;
if (!layerState) {
logger.error(42, 'layerState');
return new MapRender(
state.layer,
new MapRenderer(materials, state.layer)
);
}
if (!renderer) {
logger.error(42, 'renderer');
return new MapRender(
state.layer,
new MapRenderer(materials, state.layer)
);
}
return new MapRender(layerState, renderer);
});
}
export * from './animate';
@@ -4,9 +4,9 @@ import {
RenderItem,
RenderItemPosition,
MotaOffscreenCanvas2D,
Transform,
SizedCanvasImageSource
Transform
} from '@motajs/render-core';
import { SizedCanvasImageSource } from '@motajs/render-assets';
import { isNil } from 'lodash-es';
import { RenderableData, AutotileRenderable, texture } from './cache';
import { IAnimateFrame, renderEmits } from './frame';
@@ -1,5 +1,6 @@
import { BaseProps, TagDefine } from '@motajs/render-vue';
import { CanvasStyle, Transform } from '@motajs/render-core';
import { ERenderItemEvent, Transform } from '@motajs/render-core';
import { CanvasStyle } from '@motajs/render-assets';
import {
ILayerGroupRenderExtends,
FloorLayer,
@@ -10,6 +11,8 @@ import {
import { EAnimateEvent } from './animate';
import { EIconEvent, EWinskinEvent } from './misc';
import { IEnemyCollection } from '@motajs/types';
import { ILayerState } from '@user/data-state';
import { IMapRenderer } from '../map';
export interface AnimateProps extends BaseProps {}
@@ -59,6 +62,11 @@ export interface LayerProps extends BaseProps {
ex?: readonly ILayerRenderExtends[];
}
export interface MapRenderProps extends BaseProps {
layerState: ILayerState;
renderer: IMapRenderer;
}
declare module 'vue/jsx-runtime' {
namespace JSX {
export interface IntrinsicElements {
@@ -67,6 +75,7 @@ declare module 'vue/jsx-runtime' {
animation: TagDefine<AnimateProps, EAnimateEvent>;
icon: TagDefine<IconProps, EIconEvent>;
winskin: TagDefine<WinskinProps, EWinskinEvent>;
'map-render': TagDefine<MapRenderProps, ERenderItemEvent>;
}
}
}