diff --git a/src/core/render/index.tsx b/src/core/render/index.tsx index 76eba60..67c9703 100644 --- a/src/core/render/index.tsx +++ b/src/core/render/index.tsx @@ -14,71 +14,67 @@ import { FloorChange } from '@/plugin/fallback'; import { createApp } from './renderer'; import { defineComponent } from 'vue'; import { Textbox } from './components'; +import { ILayerGroupRenderExtends, ILayerRenderExtends } from './preset'; +import { Props } from './utils'; let main: MotaRenderer; Mota.require('var', 'loading').once('coreInit', () => { main = new MotaRenderer(); - const Com = defineComponent(props => { + const App = defineComponent(props => { + const layerGroupExtends: ILayerGroupRenderExtends[] = [ + new FloorDamageExtends(), + new FloorItemDetail(), + new LayerGroupFilter(), + new LayerGroupPortal(), + new LayerGroupHalo(), + new LayerGroupAnimate(), + new FloorViewport() + ]; + const eventExtends: ILayerRenderExtends[] = [ + new HeroRenderer(), + new LayerDoorAnimate(), + new LayerShadowExtends() + ]; + const mapDrawProps: Props<'container'> = { + width: core._PX_, + height: core._PY_ + }; + const mainTextboxProps: Props = { + text: '', + hidden: true, + width: 480, + height: 150, + y: 330, + zIndex: 30, + fillStyle: '#fff', + titleFill: 'gold', + font: '16px normal', + titleFont: '700 20px normal', + winskin: 'winskin2.png', + interval: 25, + lineHeight: 6 + }; + return () => ( - - + + - + - + ); }); main.hide(); - createApp(Com).mount(main); + createApp(App).mount(main); // render(, main); console.log(main); diff --git a/src/core/render/utils.ts b/src/core/render/utils.ts index e41d54b..9f33db6 100644 --- a/src/core/render/utils.ts +++ b/src/core/render/utils.ts @@ -1,6 +1,21 @@ import { Ticker, TimingFn } from 'mutate-animate'; import { RenderAdapter } from './adapter'; import { FloorViewport } from './preset/viewport'; +import { JSX } from 'vue/jsx-runtime'; +import { Component, DefineComponent, DefineSetupFnComponent } from 'vue'; + +export type Props< + T extends + | keyof JSX.IntrinsicElements + | DefineSetupFnComponent + | DefineComponent +> = T extends keyof JSX.IntrinsicElements + ? JSX.IntrinsicElements[T] + : T extends DefineSetupFnComponent + ? InstanceType['$props'] + : T extends DefineComponent + ? InstanceType['$props'] + : unknown; export function disableViewport() { const adapter = RenderAdapter.get('viewport');