From 8521d808812220c96de17b5fbdb9da3fccfd6eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Fri, 19 Apr 2024 20:59:45 +0200 Subject: [PATCH] Add templateElement to initialMap independent of conditionMap and serialize initialMap --- .../simpleGamesystem/SimpleTemplateState.ts | 3 + .../project/serializer/CharacterSerializer.ts | 5 +- .../serializer/GamesystemSerializer.ts | 2 +- testModel/characters/Astrid Hofferson.json | 66 ++++++++++++++++++- testModel/characters/Hicks Haddock.json | 18 +++-- .../Characterbeziehungssystem.json | 2 +- 6 files changed, 86 insertions(+), 10 deletions(-) diff --git a/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts b/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts index a3e99ad..1c130be 100644 --- a/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts +++ b/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts @@ -10,6 +10,9 @@ export class SimpleTemplateState extends SimpleState { addTemplateElement(templateElement: TemplateElement) { if(!this.conditionMap.has(templateElement)) { this.conditionMap.set(templateElement, this.conditions) + } + + if(!this.initialMap.has(templateElement)) { this.initialMap.set(templateElement, this.initial); } } diff --git a/src/app/project/serializer/CharacterSerializer.ts b/src/app/project/serializer/CharacterSerializer.ts index 600d065..56dcff2 100644 --- a/src/app/project/serializer/CharacterSerializer.ts +++ b/src/app/project/serializer/CharacterSerializer.ts @@ -33,7 +33,10 @@ export class CharacterSerializer { return value.componentName } - if(key === 'conditionMap' || key === 'actionMap') { + if(key === 'conditionMap' || key === 'actionMap' || key === 'initialMap') { + if(key === 'initialMap') { + console.log(value) + } if(value.get(character) == undefined) { return [] } diff --git a/src/app/project/serializer/GamesystemSerializer.ts b/src/app/project/serializer/GamesystemSerializer.ts index 438ab8b..2ec8b43 100644 --- a/src/app/project/serializer/GamesystemSerializer.ts +++ b/src/app/project/serializer/GamesystemSerializer.ts @@ -8,7 +8,7 @@ import {ProductTemplateSystem} from "../game-model/templates/productGamesystem/P export class GamesystemSerializer { - private static IGNORED_SIMPLE_ATTRIBUTES = ["parentGamesystem", 'incomingTransitions', "outgoingTransitions", "unsaved", "type", "conditionMap", "actionMap"] + private static IGNORED_SIMPLE_ATTRIBUTES = ["parentGamesystem", 'incomingTransitions', "outgoingTransitions", "unsaved", "type", "conditionMap", "actionMap", "initialMap"] public static serializeGamesystems(gamesystems: Gamesystem[]): StoreComponent[] { let storedGamesystems: StoreComponent[] = [] diff --git a/testModel/characters/Astrid Hofferson.json b/testModel/characters/Astrid Hofferson.json index 21cfeca..64ad8a6 100644 --- a/testModel/characters/Astrid Hofferson.json +++ b/testModel/characters/Astrid Hofferson.json @@ -2,5 +2,69 @@ "componentName": "Astrid Hofferson", "componentDescription": "", "characterSpecificTemplateSystems": [], - "characterRelationGamesystems": [] + "characterRelationGamesystems": [ + { + "componentName": "Characterbeziehungssystem", + "states": [ + { + "stateLabel": "Feind", + "conditionMap": [], + "initialMap": true + }, + { + "stateLabel": "Freund", + "conditionMap": [], + "initialMap": false + }, + { + "stateLabel": "Fester Freund", + "conditionMap": [], + "initialMap": false + }, + { + "stateLabel": "Eltern", + "conditionMap": [], + "initialMap": false + }, + { + "stateLabel": "Geschwister", + "conditionMap": [], + "initialMap": false + }, + { + "stateLabel": "Großeltern", + "conditionMap": [], + "initialMap": false + } + ], + "transitions": [ + { + "startingState": "Feind", + "endingState": "Freund", + "conditionMap": [], + "actionMap": [] + }, + { + "startingState": "Freund", + "endingState": "Feind", + "conditionMap": [], + "actionMap": [] + }, + { + "startingState": "Freund", + "endingState": "Fester Freund", + "conditionMap": [], + "actionMap": [] + }, + { + "startingState": "Fester Freund", + "endingState": "Feind", + "conditionMap": [], + "actionMap": [] + } + ], + "generateIsolatedStates": true, + "symmetric": true + } + ] } \ No newline at end of file diff --git a/testModel/characters/Hicks Haddock.json b/testModel/characters/Hicks Haddock.json index 8f7bf3a..bfb5c9c 100644 --- a/testModel/characters/Hicks Haddock.json +++ b/testModel/characters/Hicks Haddock.json @@ -8,27 +8,33 @@ "states": [ { "stateLabel": "Feind", - "conditionMap": [] + "conditionMap": [], + "initialMap": false }, { "stateLabel": "Freund", - "conditionMap": [] + "conditionMap": [], + "initialMap": false }, { "stateLabel": "Fester Freund", - "conditionMap": [] + "conditionMap": [], + "initialMap": true }, { "stateLabel": "Eltern", - "conditionMap": [] + "conditionMap": [], + "initialMap": false }, { "stateLabel": "Geschwister", - "conditionMap": [] + "conditionMap": [], + "initialMap": false }, { "stateLabel": "Großeltern", - "conditionMap": [] + "conditionMap": [], + "initialMap": false } ], "transitions": [ diff --git a/testModel/gamesystems/Characterbeziehungssystem.json b/testModel/gamesystems/Characterbeziehungssystem.json index 3a39efd..43ebb7c 100644 --- a/testModel/gamesystems/Characterbeziehungssystem.json +++ b/testModel/gamesystems/Characterbeziehungssystem.json @@ -9,7 +9,7 @@ "stateDescription": "" }, { - "initial": true, + "initial": false, "conditions": [], "stateLabel": "Freund", "stateDescription": ""