From c9bb367f4ef6e2aaaa3fd52c7cfeebc1a998ff54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Sat, 13 Apr 2024 07:17:14 +0200 Subject: [PATCH] Ignore ProductTemplatesystems for Persisting --- src/app/project/game-model/characters/Character.ts | 7 +++++-- src/app/project/serializer/CharacterSerializer.ts | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/app/project/game-model/characters/Character.ts b/src/app/project/game-model/characters/Character.ts index d1a1ed2..8cae691 100644 --- a/src/app/project/game-model/characters/Character.ts +++ b/src/app/project/game-model/characters/Character.ts @@ -1,16 +1,19 @@ import {ModelComponent} from "../ModelComponent"; import {ModelComponentType} from "../ModelComponentType"; import {SimpleTemplateGamesystem} from "../gamesystems/SimpleTemplateGamesystem"; +import {TemplateGamesystem} from "../gamesystems/TemplateGamesystem"; +import {ProductTemplateSystem} from "../gamesystems/ProductTemplateSystem"; +import {Gamesystem} from "../gamesystems/Gamesystem"; export class Character extends ModelComponent{ - characterSpecificGamesystems: SimpleTemplateGamesystem[] = [] + characterSpecificGamesystems: Gamesystem[] = [] constructor(componentName: string, componentDescription: string) { super(componentName, componentDescription, ModelComponentType.CHARACTER); } - addCharacterSpecificGamesystem(templateGamesystem: SimpleTemplateGamesystem) { + addCharacterSpecificGamesystem(templateGamesystem: SimpleTemplateGamesystem | ProductTemplateSystem) { if(!this.isGamesystemCharacterSpecific(templateGamesystem.componentName)) { this.characterSpecificGamesystems.push(templateGamesystem); templateGamesystem.addReferenceKey(this); diff --git a/src/app/project/serializer/CharacterSerializer.ts b/src/app/project/serializer/CharacterSerializer.ts index ca38d9b..63af091 100644 --- a/src/app/project/serializer/CharacterSerializer.ts +++ b/src/app/project/serializer/CharacterSerializer.ts @@ -4,6 +4,8 @@ import {SerializeConstants} from "./SerializeConstants"; import {ModelComponentType} from "../game-model/ModelComponentType"; import {Gamesystem} from "../game-model/gamesystems/Gamesystem"; import {ScriptAccount} from "../game-model/scriptAccounts/ScriptAccount"; +import {ProductTemplateSystem} from "../game-model/gamesystems/ProductTemplateSystem"; +import {SimpleTemplateGamesystem} from "../game-model/gamesystems/SimpleTemplateGamesystem"; export class CharacterSerializer { @@ -17,6 +19,8 @@ export class CharacterSerializer { private static serializeSingleCharacter(character: Character): StoreComponent{ const fileName = character.componentName + const templateGamesystemBackup = character.characterSpecificGamesystems.concat(); + character.characterSpecificGamesystems = character.characterSpecificGamesystems.filter(system => system instanceof SimpleTemplateGamesystem) console.log("Templatesystem: ", character.characterSpecificGamesystems) const jsonString = JSON.stringify(character, (key, value) => { if(value instanceof Gamesystem) { @@ -48,6 +52,7 @@ export class CharacterSerializer { } }, SerializeConstants.JSON_INDENT) + character.characterSpecificGamesystems = templateGamesystemBackup return new StoreComponent(jsonString, fileName, ModelComponentType.CHARACTER); } }