diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 7412843..ab95304 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -29,7 +29,7 @@ import {ModelComponentEditorComponent} from "./editor/model-component-editor/mod
import {DeleteConfirmationDialogComponent} from "./delete-confirmation-dialog/delete-confirmation-dialog.component";
import {MatDialogActions, MatDialogContent, MatDialogTitle} from "@angular/material/dialog";
import {GamescriptOverviewComponent} from "./side-overviews/gamescript-overview/gamescript-overview.component";
-import {MatTree, MatTreeModule} from "@angular/material/tree";
+import { MatTreeModule} from "@angular/material/tree";
import {GamesystemEditorComponent} from "./editor/gamesystem-editor/gamesystem-editor.component";
import {
SimpleGamesystemEditorComponent
@@ -61,7 +61,7 @@ import {
ProductStateEditorComponent
} from "./editor/gamesystem-editor/state-editor/product-state-editor/product-state-editor.component";
import {MatTooltip} from "@angular/material/tooltip";
-import {MatCard, MatCardContent} from "@angular/material/card";
+import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
import {
ScriptaccountActionEditorComponent
} from "./editor/gamesystem-editor/transition-editor/scriptaccount-action-editor/scriptaccount-action-editor.component";
@@ -70,6 +70,7 @@ import {
} from "./editor/gamesystem-editor/scriptaccount-condition-editor/scriptaccount-condition-editor.component";
import {CharacterOverviewComponent} from "./side-overviews/character-overview/character-overview.component";
import {CharacterEditorComponent} from "./editor/character-editor/character-editor.component";
+import {MatAccordion, MatExpansionPanel, MatExpansionPanelTitle} from "@angular/material/expansion";
// AoT requires an exported function for factories
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new TranslateHttpLoader(http, './assets/i18n/', '.json');
@@ -150,7 +151,11 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new Transl
MatHint,
MatTooltip,
MatCard,
- MatCardContent
+ MatCardContent,
+ MatCardHeader,
+ MatAccordion,
+ MatExpansionPanel,
+ MatExpansionPanelTitle
],
providers: [],
bootstrap: [AppComponent]
diff --git a/src/app/editor/character-editor/character-editor.component.html b/src/app/editor/character-editor/character-editor.component.html
index 4750ae3..648137c 100644
--- a/src/app/editor/character-editor/character-editor.component.html
+++ b/src/app/editor/character-editor/character-editor.component.html
@@ -1 +1,15 @@
-
character-editor works!
+
+
+ Charactersystems
+
+
+
+
+
+ {{characterSystem.componentName}}
+
+
+
+
+
+
diff --git a/src/app/editor/character-editor/character-editor.component.ts b/src/app/editor/character-editor/character-editor.component.ts
index 23e8438..8eba0b2 100644
--- a/src/app/editor/character-editor/character-editor.component.ts
+++ b/src/app/editor/character-editor/character-editor.component.ts
@@ -1,4 +1,6 @@
-import { Component } from '@angular/core';
+import { Component, Input } from '@angular/core';
+import { Character } from '../../project/game-model/characters/Character';
+import {ScriptAccount} from "../../project/game-model/scriptAccounts/ScriptAccount";
@Component({
selector: 'app-character-editor',
@@ -7,4 +9,6 @@ import { Component } from '@angular/core';
})
export class CharacterEditorComponent {
+ @Input() character: Character | undefined
+ @Input() scriptAccounts: ScriptAccount[] = []
}
diff --git a/src/app/editor/editor.component.html b/src/app/editor/editor.component.html
index b351774..acf4c2e 100644
--- a/src/app/editor/editor.component.html
+++ b/src/app/editor/editor.component.html
@@ -14,7 +14,9 @@
[gamesystem]="convertModelComponentToGamesystem(modelComponent)"
(onOpenGamesystemEditor)="openGameModelComponent($event)"
[scriptAccounts]="gameModel!.scriptAccounts">
-
+
diff --git a/src/app/editor/editor.component.ts b/src/app/editor/editor.component.ts
index 887f4d8..3c8325a 100644
--- a/src/app/editor/editor.component.ts
+++ b/src/app/editor/editor.component.ts
@@ -6,6 +6,7 @@ import {Gamesystem} from "../project/game-model/gamesystems/Gamesystem";
import {State} from "../project/game-model/gamesystems/states/State";
import {Transition} from "../project/game-model/gamesystems/transitions/Transition";
import {ModelComponentType} from "../project/game-model/ModelComponentType";
+import {Character} from "../project/game-model/characters/Character";
@Component({
@@ -50,4 +51,10 @@ export class EditorComponent {
}
protected readonly ModelComponentType = ModelComponentType;
+
+ convertModelComponentToCharacter(modelComponent: ModelComponent) {
+ if(modelComponent instanceof Character) {
+ return modelComponent as Character
+ }
+ }
}
diff --git a/src/app/editor/gamesystem-editor/gamesystem-editor.component.html b/src/app/editor/gamesystem-editor/gamesystem-editor.component.html
index 2eb564e..7dbcecd 100644
--- a/src/app/editor/gamesystem-editor/gamesystem-editor.component.html
+++ b/src/app/editor/gamesystem-editor/gamesystem-editor.component.html
@@ -1,3 +1,10 @@
+
+
+ Templatetype
+ None
+ Character
+
+
diff --git a/src/app/editor/gamesystem-editor/gamesystem-editor.component.ts b/src/app/editor/gamesystem-editor/gamesystem-editor.component.ts
index f14dda3..17e5dad 100644
--- a/src/app/editor/gamesystem-editor/gamesystem-editor.component.ts
+++ b/src/app/editor/gamesystem-editor/gamesystem-editor.component.ts
@@ -5,6 +5,7 @@ import { Transition } from '../../project/game-model/gamesystems/transitions/Tra
import {ScriptAccount} from "../../project/game-model/scriptAccounts/ScriptAccount";
import {SimpleGamesystem} from "../../project/game-model/gamesystems/SimpleGamesystem";
import {ProductGamesystem} from "../../project/game-model/gamesystems/ProductGamesystem";
+import {TemplateType} from "../../project/game-model/gamesystems/TemplateType";
@Component({
selector: 'app-gamesystem-editor',
@@ -40,4 +41,6 @@ export class GamesystemEditorComponent implements OnInit{
onOpenGamesystemEditor(gamesystem: SimpleGamesystem) {
this.openGamesystemEmitter.emit(gamesystem);
}
+
+ protected readonly TemplateType = TemplateType;
}
diff --git a/src/app/project/game-model/gamesystems/Gamesystem.ts b/src/app/project/game-model/gamesystems/Gamesystem.ts
index 2e94174..41e13f1 100644
--- a/src/app/project/game-model/gamesystems/Gamesystem.ts
+++ b/src/app/project/game-model/gamesystems/Gamesystem.ts
@@ -2,12 +2,15 @@ import {SimpleGamesystem} from "./SimpleGamesystem";
import {ProductGamesystem} from "./ProductGamesystem";
import {ModelComponent} from "../ModelComponent";
import {ModelComponentType} from "../ModelComponentType";
+import {TemplateType} from "./TemplateType";
export abstract class Gamesystem extends ModelComponent{
states: S[] = [];
transitions: T[] = [];
parentGamesystem: ProductGamesystem | undefined
+ template: TemplateType = TemplateType.NONE
+
constructor(gamesystemName: string, gamesystemDescription: string) {
super(gamesystemName, gamesystemDescription, ModelComponentType.GAMESYTEM);
}
diff --git a/src/app/project/game-model/gamesystems/TemplateType.ts b/src/app/project/game-model/gamesystems/TemplateType.ts
new file mode 100644
index 0000000..6f4f6e8
--- /dev/null
+++ b/src/app/project/game-model/gamesystems/TemplateType.ts
@@ -0,0 +1,4 @@
+export enum TemplateType {
+ NONE,
+ CHARACTER
+}
diff --git a/testModel/characters/Astrid Hofferson.json b/testModel/characters/Astrid Hofferson.json
index 0678c2b..c0c32fc 100644
--- a/testModel/characters/Astrid Hofferson.json
+++ b/testModel/characters/Astrid Hofferson.json
@@ -1,4 +1,5 @@
{
"componentName": "Astrid Hofferson",
- "componentDescription": ""
+ "componentDescription": "",
+ "characterSpecificGamesystems": []
}
\ No newline at end of file
diff --git a/testModel/characters/Hicks Haddock.json b/testModel/characters/Hicks Haddock.json
index 1e611d7..e11ab14 100644
--- a/testModel/characters/Hicks Haddock.json
+++ b/testModel/characters/Hicks Haddock.json
@@ -1,4 +1,5 @@
{
"componentName": "Hicks Haddock",
- "componentDescription": ""
+ "componentDescription": "",
+ "characterSpecificGamesystems": []
}
\ No newline at end of file
diff --git a/testModel/gamesystems/Testsystem.json b/testModel/gamesystems/Testsystem.json
index 654df19..71ada4d 100644
--- a/testModel/gamesystems/Testsystem.json
+++ b/testModel/gamesystems/Testsystem.json
@@ -33,5 +33,6 @@
"startingState": "A",
"endingState": "B"
}
- ]
+ ],
+ "template": 0
}
\ No newline at end of file
diff --git a/testModel/gamesystems/Weathersystem/Season.json b/testModel/gamesystems/Weathersystem/Season.json
index a815ccb..0d38734 100644
--- a/testModel/gamesystems/Weathersystem/Season.json
+++ b/testModel/gamesystems/Weathersystem/Season.json
@@ -76,5 +76,6 @@
"startingState": "Winter",
"endingState": "Frühling"
}
- ]
+ ],
+ "template": 0
}
\ No newline at end of file
diff --git a/testModel/gamesystems/Weathersystem/Weather.json b/testModel/gamesystems/Weathersystem/Weather.json
index b9de825..39afb9f 100644
--- a/testModel/gamesystems/Weathersystem/Weather.json
+++ b/testModel/gamesystems/Weathersystem/Weather.json
@@ -76,5 +76,6 @@
"startingState": "Schnee",
"endingState": "Wolke"
}
- ]
+ ],
+ "template": 0
}
\ No newline at end of file