36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { Entity } from '@mikro-orm/core'
|
|
|
|
import { BaseSprite } from '#entities/base/sprite'
|
|
|
|
@Entity()
|
|
export class Sprite extends BaseSprite {
|
|
public async cache() {
|
|
await this.getSpriteActions().load()
|
|
|
|
try {
|
|
return {
|
|
id: this.getId(),
|
|
name: this.getName(),
|
|
createdAt: this.getCreatedAt(),
|
|
updatedAt: this.getUpdatedAt(),
|
|
spriteActions: this.getSpriteActions().map((spriteAction) => ({
|
|
id: spriteAction.getId(),
|
|
sprite: spriteAction.getSprite().getId(),
|
|
action: spriteAction.getAction(),
|
|
// sprites: spriteAction.getSprites(), // We dont want to send this to the client
|
|
originX: spriteAction.getOriginX(),
|
|
originY: spriteAction.getOriginY(),
|
|
isAnimated: spriteAction.getIsAnimated(),
|
|
isLooping: spriteAction.getIsLooping(),
|
|
frameWidth: spriteAction.getFrameWidth(),
|
|
frameHeight: spriteAction.getFrameHeight(),
|
|
frameRate: spriteAction.getFrameRate()
|
|
}))
|
|
}
|
|
} catch (error) {
|
|
console.error(error)
|
|
return {}
|
|
}
|
|
}
|
|
}
|