This commit is contained in:
Dennis Postma 2025-01-30 02:58:11 +01:00
parent 876c96e2c6
commit 6f87c3f3c5

View File

@ -35,20 +35,22 @@ export default class SpriteUpdateEvent extends BaseEvent {
// Update sprite in database
await sprite.setName(data.name).save()
// First verify all sprite sheets can be generated
for (const actionData of data.spriteActions) {
if (!await this.generateSpriteSheet(actionData.sprites, sprite.getId(), actionData.action)) {
return callback(false)
}
}
const existingActions = sprite.getSpriteActions()
// Remove all existing actions - we'll recreate the ones we need
// Remove existing actions only after confirming sprite sheets generated successfully
for (const existingAction of existingActions) {
await spriteRepository.getEntityManager().removeAndFlush(existingAction)
}
// Create new actions
for (const actionData of data.spriteActions) {
// Generate sprite sheet for this action or return false
if (!await this.generateSpriteSheet(actionData.sprites, sprite.getId(), actionData.action)) {
return callback(false)
}
const spriteAction = new SpriteAction()
spriteAction.setSprite(sprite)
sprite.getSpriteActions().add(spriteAction)