server/src/entities/sprite.ts
2025-01-07 22:20:27 +01:00

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 {}
}
}
}