import type { PropType } from 'vue' import type { TimelineConfig, TweenConfig } from '../types' import * as Phaser from 'phaser' const props = { active: { type: Boolean }, visible: { type: Boolean }, x: { type: Number }, y: { type: Number }, x1: { type: Number }, y1: { type: Number }, x2: { type: Number }, y2: { type: Number }, x3: { type: Number }, y3: { type: Number }, points: { type: Array as PropType }, rotation: { type: Number }, origin: { type: Number }, originX: { type: Number }, originY: { type: Number }, scale: { type: Number }, scaleX: { type: Number }, scaleY: { type: Number }, width: { type: Number }, height: { type: Number }, leftWidth: { type: Number }, rightWidth: { type: Number }, topHeight: { type: Number }, bottomHeight: { type: Number }, radius: { type: Number }, displayWidth: { type: Number }, displayHeight: { type: Number }, displayOriginX: { type: Number }, displayOriginY: { type: Number }, dropZone: { type: Boolean }, flipX: { type: Boolean }, flipY: { type: Boolean }, depth: { type: Number }, alpha: { type: Number }, blendMode: { type: [Number, String] }, lighting: { type: Boolean }, intensity: { type: Number, default: 1 }, tint: { type: Number }, text: { type: [String, Array, Number] as PropType, required: true as const }, texture: { type: [String, Phaser.Textures.Texture] }, frame: { type: [Number, String] }, color: { type: Number }, fillColor: { type: Number }, fillAlpha: { type: Number }, lineWidth: { type: Number }, strokeColor: { type: Number }, strokeAlpha: { type: Number }, style: { type: Object as PropType }, lineSpacing: { type: Number }, padding: { type: [Number, Object] }, play: { type: [String, Object] }, scrollFactor: { type: Number }, scrollFactorX: { type: Number }, scrollFactorY: { type: Number }, // Tween tween: { type: Object as PropType }, tweens: { type: Array as PropType }, timeline: { type: Array as PropType }, } export default props export const gameObjectProps = { tween: props.tween, tweens: props.tweens, timeline: props.timeline, active: props.active, visible: props.visible, x: props.x, y: props.y, rotation: props.rotation, origin: props.origin, originX: props.originX, originY: props.originY, displayOriginX: props.displayOriginX, displayOriginY: props.displayOriginY, scale: props.scale, scaleX: props.scaleX, scaleY: props.scaleY, displayWidth: props.displayWidth, displayHeight: props.displayHeight, scrollFactor: props.scrollFactor, scrollFactorX: props.scrollFactorX, scrollFactorY: props.scrollFactorY, dropZone: props.dropZone, depth: props.depth, alpha: props.alpha, blendMode: props.blendMode, lighting: props.lighting, } as const