diff --git a/src/app/app.component.html b/src/app/app.component.html
index 2801b21..03b9350 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -3,7 +3,9 @@
+ (click)="openGamesystemsOverview()">code
+
@@ -20,10 +22,12 @@
+
+
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 2467861..fc3303d 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -206,6 +206,11 @@ export class AppComponent implements OnInit{
this.drawer!.open();
}
+ openCharactersOverview() {
+ this.openContent = ModelComponentType.CHARACTER
+ this.drawer!.open()
+ }
+
protected readonly ModelComponentType = ModelComponentType;
closeContentOverview() {
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 69fde6f..b7e8b29 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -68,6 +68,7 @@ import {
import {
ScriptaccountConditionEditorComponent
} from "./editor/gamesystem-editor/scriptaccount-condition-editor/scriptaccount-condition-editor.component";
+import {CharacterOverviewComponent} from "./side-overviews/character-overview/character-overview.component";
// AoT requires an exported function for factories
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new TranslateHttpLoader(http, './assets/i18n/', '.json');
@@ -91,63 +92,64 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new Transl
ScriptaccountActionEditorComponent,
ScriptaccountConditionEditorComponent
],
- imports: [
- BrowserModule,
- FormsModule,
- HttpClientModule,
- CoreModule,
- SharedModule,
- TranslateModule.forRoot({
- loader: {
- provide: TranslateLoader,
- useFactory: httpLoaderFactory,
- deps: [HttpClient]
- }
- }),
- BrowserAnimationsModule,
- MatIcon,
- MatToolbar,
- MatButton,
- MatFormField,
- MatInput,
- MatDrawerContainer,
- MatDrawer,
- MatIconButton,
- MatMenuTrigger,
- MatMenu,
- MatMenuItem,
- MatListItem,
- MatActionList,
- MatTabGroup,
- MatTab,
- MatTabLabel,
- MatLabel,
- MatFormField,
- ReactiveFormsModule,
- MatError,
- MatDialogTitle,
- MatDialogContent,
- MatDialogActions,
- MatMiniFabButton,
- MatTreeModule,
- MatTable,
- MatColumnDef,
- MatHeaderCell,
- MatHeaderCellDef,
- MatCellDef,
- MatCell,
- MatHeaderRow,
- MatRow,
- MatHeaderRowDef,
- MatRowDef,
- MatCheckbox,
- MatSelect,
- MatOption,
- MatHint,
- MatTooltip,
- MatCard,
- MatCardContent
- ],
+ imports: [
+ BrowserModule,
+ FormsModule,
+ HttpClientModule,
+ CoreModule,
+ SharedModule,
+ TranslateModule.forRoot({
+ loader: {
+ provide: TranslateLoader,
+ useFactory: httpLoaderFactory,
+ deps: [HttpClient]
+ }
+ }),
+ BrowserAnimationsModule,
+ MatIcon,
+ MatToolbar,
+ MatButton,
+ MatFormField,
+ MatInput,
+ MatDrawerContainer,
+ MatDrawer,
+ MatIconButton,
+ MatMenuTrigger,
+ MatMenu,
+ MatMenuItem,
+ MatListItem,
+ MatActionList,
+ MatTabGroup,
+ MatTab,
+ MatTabLabel,
+ MatLabel,
+ MatFormField,
+ ReactiveFormsModule,
+ MatError,
+ MatDialogTitle,
+ MatDialogContent,
+ MatDialogActions,
+ MatMiniFabButton,
+ MatTreeModule,
+ MatTable,
+ MatColumnDef,
+ MatHeaderCell,
+ MatHeaderCellDef,
+ MatCellDef,
+ MatCell,
+ MatHeaderRow,
+ MatRow,
+ MatHeaderRowDef,
+ MatRowDef,
+ MatCheckbox,
+ MatSelect,
+ MatOption,
+ MatHint,
+ MatTooltip,
+ MatCard,
+ MatCardContent,
+ CharacterOverviewComponent
+ ],
providers: [],
bootstrap: [AppComponent]
})
diff --git a/src/app/project/game-model/GameModel.ts b/src/app/project/game-model/GameModel.ts
index 66dd46c..5ac5c22 100644
--- a/src/app/project/game-model/GameModel.ts
+++ b/src/app/project/game-model/GameModel.ts
@@ -4,16 +4,20 @@ import {Transition} from "./gamesystems/transitions/Transition";
import {State} from "./gamesystems/states/State";
import {ProductGamesystem} from "./gamesystems/ProductGamesystem";
import {SimpleGamesystem} from "./gamesystems/SimpleGamesystem";
-import {StorageModel} from "./fs/StorageModel";
+import {Character} from "./characters/Character";
+import {ModelComponentType} from "./ModelComponentType";
export class GameModel {
gameModelName: string
gamesystems: Gamesystem
[] = [];
scriptAccounts: ScriptAccount[] = [];
+ characters: Character[] = []
constructor(gameModelName: string) {
this.gameModelName = gameModelName;
+ this.characters.push(new Character("Astrid Hofferson", "", ModelComponentType.CHARACTER))
+ this.characters.push(new Character("Hicks Haddock", "", ModelComponentType.CHARACTER))
}
addGamesystem(gamesystem: Gamesystem) {
diff --git a/src/app/project/game-model/ModelComponentType.ts b/src/app/project/game-model/ModelComponentType.ts
index 77a75a7..14eaf8b 100644
--- a/src/app/project/game-model/ModelComponentType.ts
+++ b/src/app/project/game-model/ModelComponentType.ts
@@ -1,5 +1,6 @@
export enum ModelComponentType {
SCRIPTACCOUNT,
- GAMESYTEM
+ GAMESYTEM,
+ CHARACTER
}
diff --git a/src/app/project/game-model/ModelComponentTypeUtillities.ts b/src/app/project/game-model/ModelComponentTypeUtillities.ts
index da1f827..aa736fd 100644
--- a/src/app/project/game-model/ModelComponentTypeUtillities.ts
+++ b/src/app/project/game-model/ModelComponentTypeUtillities.ts
@@ -5,6 +5,7 @@ export class ModelComponentTypeUtillities {
switch (modelComponentType) {
case ModelComponentType.SCRIPTACCOUNT: return "ScriptAccounts";
case ModelComponentType.GAMESYTEM: return "Gamesystems";
+ case ModelComponentType.CHARACTER: return "Characters"
default: return "Undefined";
}
}
@@ -13,6 +14,7 @@ export class ModelComponentTypeUtillities {
switch (modelComponentType) {
case ModelComponentType.SCRIPTACCOUNT: return "ScriptAccount";
case ModelComponentType.GAMESYTEM: return "Gamesystem";
+ case ModelComponentType.CHARACTER: return "Character"
default: return "Undefined";
}
}
@@ -21,6 +23,7 @@ export class ModelComponentTypeUtillities {
switch (string) {
case "gamesystem": return ModelComponentType.GAMESYTEM;
case "scriptaccount": return ModelComponentType.SCRIPTACCOUNT;
+ case "character": return ModelComponentType.CHARACTER
}
}
}
diff --git a/src/app/project/game-model/characters/Character.ts b/src/app/project/game-model/characters/Character.ts
new file mode 100644
index 0000000..711ca1a
--- /dev/null
+++ b/src/app/project/game-model/characters/Character.ts
@@ -0,0 +1,9 @@
+import {ModelComponent} from "../ModelComponent";
+import {ModelComponentType} from "../ModelComponentType";
+
+export class Character extends ModelComponent{
+
+ constructor(componentName: string, componentDescription: string, type: ModelComponentType) {
+ super(componentName, componentDescription, type);
+ }
+}
diff --git a/src/app/side-overviews/character-overview/character-overview.component.html b/src/app/side-overviews/character-overview/character-overview.component.html
new file mode 100644
index 0000000..2c284db
--- /dev/null
+++ b/src/app/side-overviews/character-overview/character-overview.component.html
@@ -0,0 +1,5 @@
+
+
+ person{{character.componentName}}
+
+
diff --git a/src/app/side-overviews/character-overview/character-overview.component.scss b/src/app/side-overviews/character-overview/character-overview.component.scss
new file mode 100644
index 0000000..0dde805
--- /dev/null
+++ b/src/app/side-overviews/character-overview/character-overview.component.scss
@@ -0,0 +1,14 @@
+.scriptAccount-item {
+ min-height: 1.8em !important;
+ height: 1.8em !important;
+}
+
+.scriptAccount-icon {
+ margin-right: 10px;
+ color: #ccffff;
+ align-content: baseline;
+}
+
+.selected-item {
+ background-color: #8696b6;
+}
diff --git a/src/app/side-overviews/character-overview/character-overview.component.spec.ts b/src/app/side-overviews/character-overview/character-overview.component.spec.ts
new file mode 100644
index 0000000..6edeb91
--- /dev/null
+++ b/src/app/side-overviews/character-overview/character-overview.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CharacterOverviewComponent } from './character-overview.component';
+
+describe('CharacterOverviewComponent', () => {
+ let component: CharacterOverviewComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [CharacterOverviewComponent]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(CharacterOverviewComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/side-overviews/character-overview/character-overview.component.ts b/src/app/side-overviews/character-overview/character-overview.component.ts
new file mode 100644
index 0000000..823d455
--- /dev/null
+++ b/src/app/side-overviews/character-overview/character-overview.component.ts
@@ -0,0 +1,22 @@
+import {Component, Input} from '@angular/core';
+import {GameModel} from "../../project/game-model/GameModel";
+import {MatActionList, MatListItem} from "@angular/material/list";
+import {MatIcon} from "@angular/material/icon";
+import {NgForOf} from "@angular/common";
+
+@Component({
+ selector: 'app-character-overview',
+ standalone: true,
+ imports: [
+ MatActionList,
+ MatIcon,
+ MatListItem,
+ NgForOf
+ ],
+ templateUrl: './character-overview.component.html',
+ styleUrl: './character-overview.component.scss'
+})
+export class CharacterOverviewComponent {
+
+ @Input() gameModel: GameModel | undefined
+}