From c127a0122f9b33e6a7b067223ec7b82859fa7e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Sun, 14 Apr 2024 11:59:30 +0200 Subject: [PATCH] Display Characterspecific ProductTransitions --- .../product-gamesystem-editor.component.html | 2 +- .../product-transition-editor.component.ts | 10 ++++- testModel/characters/Astrid Hofferson.json | 45 +++++++++++++++++-- testModel/characters/Hicks Haddock.json | 20 ++++++++- .../gamesystems/Producttest/Letters.json | 24 +++++++++- .../gamesystems/Producttest/Numbers.json | 24 +++++++++- 6 files changed, 114 insertions(+), 11 deletions(-) diff --git a/src/app/editor/gamesystem-editor/product-gamesystem-editor/product-gamesystem-editor.component.html b/src/app/editor/gamesystem-editor/product-gamesystem-editor/product-gamesystem-editor.component.html index 7cbbe0c..0eee76f 100644 --- a/src/app/editor/gamesystem-editor/product-gamesystem-editor/product-gamesystem-editor.component.html +++ b/src/app/editor/gamesystem-editor/product-gamesystem-editor/product-gamesystem-editor.component.html @@ -1,4 +1,4 @@
- +
diff --git a/src/app/editor/gamesystem-editor/transition-editor/product-transition-editor/product-transition-editor.component.ts b/src/app/editor/gamesystem-editor/transition-editor/product-transition-editor/product-transition-editor.component.ts index 2f164d6..6c12eec 100644 --- a/src/app/editor/gamesystem-editor/transition-editor/product-transition-editor/product-transition-editor.component.ts +++ b/src/app/editor/gamesystem-editor/transition-editor/product-transition-editor/product-transition-editor.component.ts @@ -8,6 +8,8 @@ import {ProductGamesystem} from "../../../../project/game-model/gamesystems/Prod import {SimpleGamesystem} from "../../../../project/game-model/gamesystems/SimpleGamesystem"; import {ProductTransition} from "../../../../project/game-model/gamesystems/transitions/ProductTransition"; import {ProductState} from "../../../../project/game-model/gamesystems/states/ProductState"; +import {TemplateElement} from "../../../../project/game-model/templates/TemplateElement"; +import {ProductTemplateSystem} from "../../../../project/game-model/templates/productGamesystem/ProductTemplateSystem"; class DisplayedColumnName { displayedName: string internalName: string @@ -34,6 +36,7 @@ export class ProductTransitionEditorComponent implements OnInit{ @Input() gamesystem: ProductGamesystem | undefined @Output() onOpenGamesystem = new EventEmitter(); + @Input() templateElement: TemplateElement | undefined dataSource = new MatTableDataSource(); displayedColumns: DisplayedColumnName[] = []; @@ -52,7 +55,12 @@ export class ProductTransitionEditorComponent implements OnInit{ this.columns = this.displayedColumns.map(column => column.internalName) this.columnsToDisplayWithExpand = [...this.columns, 'expand'] - this.dataSource.data = this.gamesystem.transitions; + if(this.templateElement == undefined) { + this.dataSource.data = this.gamesystem.transitions; + } else if(this.gamesystem instanceof ProductTemplateSystem){ + this.dataSource.data = this.gamesystem!.transitionMap.get(this.templateElement)! + } + this.dataSource.filterPredicate = (data: ProductTransition, filter: string) => { const leaf_starting_states = LeafGamesystemCalculator.calcLeafStates(data.startingState); const leaf_ending_states = LeafGamesystemCalculator.calcLeafStates(data.endingState); diff --git a/testModel/characters/Astrid Hofferson.json b/testModel/characters/Astrid Hofferson.json index 468452a..014ec69 100644 --- a/testModel/characters/Astrid Hofferson.json +++ b/testModel/characters/Astrid Hofferson.json @@ -3,9 +3,48 @@ "componentDescription": "", "characterSpecificTemplateSystems": [ { - "componentName": "Letters", - "states": [], - "transitions": [] + "componentName": "TemplateGamesystem", + "states": [ + { + "stateLabel": "A", + "conditionMap": [ + { + "scriptAccount": "Luftfeuchtigkeit", + "minValue": 0, + "maxValue": "10" + } + ] + }, + { + "stateLabel": "B", + "conditionMap": [ + { + "scriptAccount": "New ScriptAccount", + "minValue": 0, + "maxValue": 100 + } + ] + } + ], + "transitions": [ + { + "startingState": "A", + "endingState": "B", + "conditionMap": [ + { + "scriptAccount": "Temperature", + "minValue": 0, + "maxValue": 10 + } + ], + "actionMap": [ + { + "changingValue": 10, + "scriptAccount": "Luftfeuchtigkeit" + } + ] + } + ] } ] } \ No newline at end of file diff --git a/testModel/characters/Hicks Haddock.json b/testModel/characters/Hicks Haddock.json index 571f2e5..158b912 100644 --- a/testModel/characters/Hicks Haddock.json +++ b/testModel/characters/Hicks Haddock.json @@ -37,8 +37,24 @@ }, { "componentName": "Letters", - "states": [], - "transitions": [] + "states": [ + { + "stateLabel": "A", + "conditionMap": [] + }, + { + "stateLabel": "B", + "conditionMap": [] + } + ], + "transitions": [ + { + "startingState": "A", + "endingState": "B", + "conditionMap": [], + "actionMap": [] + } + ] } ] } \ No newline at end of file diff --git a/testModel/gamesystems/Producttest/Letters.json b/testModel/gamesystems/Producttest/Letters.json index 4be751b..9bab958 100644 --- a/testModel/gamesystems/Producttest/Letters.json +++ b/testModel/gamesystems/Producttest/Letters.json @@ -1,7 +1,27 @@ { "componentName": "Letters", "componentDescription": "", - "states": [], - "transitions": [], + "states": [ + { + "initial": false, + "conditions": [], + "stateLabel": "A", + "stateDescription": "" + }, + { + "initial": false, + "conditions": [], + "stateLabel": "B", + "stateDescription": "" + } + ], + "transitions": [ + { + "scriptAccountActions": [], + "scriptAccountConditions": [], + "startingState": "A", + "endingState": "B" + } + ], "templateType": 0 } \ No newline at end of file diff --git a/testModel/gamesystems/Producttest/Numbers.json b/testModel/gamesystems/Producttest/Numbers.json index 5c9bd28..89f1e28 100644 --- a/testModel/gamesystems/Producttest/Numbers.json +++ b/testModel/gamesystems/Producttest/Numbers.json @@ -1,6 +1,26 @@ { "componentName": "Numbers", "componentDescription": "", - "states": [], - "transitions": [] + "states": [ + { + "initial": false, + "conditions": [], + "stateLabel": "1", + "stateDescription": "" + }, + { + "initial": false, + "conditions": [], + "stateLabel": "2", + "stateDescription": "" + } + ], + "transitions": [ + { + "scriptAccountActions": [], + "scriptAccountConditions": [], + "startingState": "1", + "endingState": "2" + } + ] } \ No newline at end of file