import { Component, SupportComponent } from '@gedit/runtime-render'; import { PluginPureHook } from '@gedit/runtime-compiler'; import { local } from './local'; import { global } from './global'; export const prefixScene = (name: string | number) => `scene${name}`; export const prefixPreload = (name: string | number) => `preload${name}`; export const prefixCreate = (name: string | number) => `create${name}`; export function parseQuery(url: string): { texture: string, params: T } { const splitStr = url.split('?'); const texture = splitStr[0]; const paramsStr = splitStr[1]; let params = {} as T; paramsStr.split('&').forEach(param => { const splited = param.split('='); const kv = { [`${splited[0]}`]: splited[1], }; params = { ...params, ...kv, }; }); return { texture, params, }; } export function splitTexture(texture: string): { key: string, child: string | undefined } { const texes = texture.split('/'); if (texes.length === 3) { const child = texes.pop(); return { key: texes.join('/'), child, }; } else { return { key: texture, child: undefined, }; } } export function isComponentCanAttachCollictionBody(component: Component): boolean { switch (component.displayType) { case SupportComponent.sprite: case SupportComponent.rect: case SupportComponent.spine: return true; default: return false; } } export function addGameObjectToMap(ctx: PluginPureHook, component: Component): void { ctx.println(`${global.GAME_OBJECT_MAP}.set('${component.id}', ${local.COMPONENT});`); } export function addGrouptToMap(ctx: PluginPureHook, component: Component): void { ctx.println(`${global.GAME_OBJECT_MAP}.set('${component.id}', ${local.GROUP});`); }