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 +}