From 6f87c3f3c566cf76daa8bc6f5d668be56e923f4c Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Thu, 30 Jan 2025 02:58:11 +0100 Subject: [PATCH] Bug fix --- .../gameMaster/assetManager/sprite/update.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/events/gameMaster/assetManager/sprite/update.ts b/src/events/gameMaster/assetManager/sprite/update.ts index cd64d9c..1b1f7f3 100644 --- a/src/events/gameMaster/assetManager/sprite/update.ts +++ b/src/events/gameMaster/assetManager/sprite/update.ts @@ -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)