From 258ebf97d10cd48341a3cfbf68ebc541782adb65 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Tue, 18 Feb 2025 17:52:25 +0100 Subject: [PATCH] Copy sprite fix --- .../gameMaster/assetManager/sprite/copy.ts | 17 ++++++++++++++++- src/managers/socketManager.ts | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/events/gameMaster/assetManager/sprite/copy.ts b/src/events/gameMaster/assetManager/sprite/copy.ts index 128a083..c38d8fb 100644 --- a/src/events/gameMaster/assetManager/sprite/copy.ts +++ b/src/events/gameMaster/assetManager/sprite/copy.ts @@ -2,6 +2,7 @@ import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import type { UUID } from '@/application/types' import { Sprite } from '@/entities/sprite' +import { SpriteAction } from '@/entities/spriteAction' import SpriteRepository from '@/repositories/spriteRepository' interface CopyPayload { @@ -29,7 +30,21 @@ export default class SpriteCopyEvent extends BaseEvent { await spriteRepository.getEntityManager().populate(sourceSprite, ['spriteActions']) const newSprite = new Sprite() - await newSprite.setName(`${sourceSprite.getName()} (Copy)`).setSpriteActions(sourceSprite.getSpriteActions()).save() + await newSprite.setName(`${sourceSprite.getName()} (Copy)`).save() + + for (const spriteAction of sourceSprite.getSpriteActions()) { + const newSpriteAction = new SpriteAction() + await newSpriteAction + .setSprite(newSprite) + .setAction(spriteAction.getAction()) + .setSprites(spriteAction.getSprites() ?? []) + .setOriginX(spriteAction.getOriginX()) + .setOriginY(spriteAction.getOriginY()) + .setFrameWidth(spriteAction.getFrameWidth()) + .setFrameHeight(spriteAction.getFrameHeight()) + .setFrameRate(spriteAction.getFrameRate()) + .save() + } return callback(true) } catch (error) { diff --git a/src/managers/socketManager.ts b/src/managers/socketManager.ts index 0f202a7..9507678 100644 --- a/src/managers/socketManager.ts +++ b/src/managers/socketManager.ts @@ -1,12 +1,12 @@ import fs from 'fs' import { Server as HTTPServer } from 'http' import { pathToFileURL } from 'url' +import { SocketEvent } from '@/application/enums' import Logger, { LoggerType } from '@/application/logger' import Storage from '@/application/storage' import type { TSocket, UUID } from '@/application/types' import { Authentication } from '@/middleware/authentication' import { Server as SocketServer } from 'socket.io' -import {SocketEvent} from "@/application/enums"; class SocketManager { private io: SocketServer | null = null