Implement basic version of characters #32

Merged
sebastian merged 8 commits from characters-2 into main 2024-04-13 11:59:09 +02:00
2 changed files with 17 additions and 0 deletions
Showing only changes of commit 4c16fb5269 - Show all commits

View File

@ -20,6 +20,8 @@ import {ElectronService} from "./core/services";
import {ScriptAccountSerializer} from "./project/serializer/ScriptAccountSerializer"; import {ScriptAccountSerializer} from "./project/serializer/ScriptAccountSerializer";
import {StoreComponent} from "../../app/storage/StoreComponent"; import {StoreComponent} from "../../app/storage/StoreComponent";
import {GamesystemSerializer} from "./project/serializer/GamesystemSerializer"; import {GamesystemSerializer} from "./project/serializer/GamesystemSerializer";
import {Character} from "./project/game-model/characters/Character";
import {CharacterOverviewComponent} from "./side-overviews/character-overview/character-overview.component";
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
@ -33,6 +35,7 @@ export class AppComponent implements OnInit{
@ViewChild('editor') editor: EditorComponent|undefined @ViewChild('editor') editor: EditorComponent|undefined
@ViewChild('scriptAccountOverview') scriptAccountOverview: ScriptAccountOverviewComponent | undefined @ViewChild('scriptAccountOverview') scriptAccountOverview: ScriptAccountOverviewComponent | undefined
@ViewChild('gamesystemOverview') gamesystemOverview: GamescriptOverviewComponent | undefined @ViewChild('gamesystemOverview') gamesystemOverview: GamescriptOverviewComponent | undefined
@ViewChild('characterOverview') characterOverview: CharacterOverviewComponent | undefined
gameModel: GameModel | undefined gameModel: GameModel | undefined
@ -109,6 +112,8 @@ export class AppComponent implements OnInit{
this.gameModel!.removeGamesystem(affectedModelComponent); this.gameModel!.removeGamesystem(affectedModelComponent);
//this.electronService.ipcRenderer.send('delete-component', new DeleteModel(affectedModelComponent.componentName, ModelComponentType.GAMESYTEM)) //this.electronService.ipcRenderer.send('delete-component', new DeleteModel(affectedModelComponent.componentName, ModelComponentType.GAMESYTEM))
this.gamesystemOverview!.refresh() this.gamesystemOverview!.refresh()
} else if(affectedModelComponent instanceof Character) {
this.gameModel!.removeCharacter(affectedModelComponent)
} }
} }
}) })
@ -169,6 +174,12 @@ export class AppComponent implements OnInit{
} else { } else {
console.log("[WARN] [App.component] GamesystemOverview is undefined") console.log("[WARN] [App.component] GamesystemOverview is undefined")
} }
} else if(this.openContent == ModelComponentType.CHARACTER) {
if(this.characterOverview != undefined) {
return this.characterOverview.selectedCharacter;
} else {
console.log("[WARN] [App.component] ScriptAccountOverview is undefined")
}
} }
return undefined; return undefined;
} }

View File

@ -85,6 +85,12 @@ export class GameModel {
} }
} }
removeCharacter(character: Character) {
if(character != undefined) {
this.characters = this.characters.filter(c => c.componentName !== character.componentName)
}
}
findGamesystem(gamesystemName: string) { findGamesystem(gamesystemName: string) {
const gamesystemQueue : Gamesystem<State<any>, Transition<any>>[] = []; const gamesystemQueue : Gamesystem<State<any>, Transition<any>>[] = [];
this.gamesystems.forEach(gamesystem => gamesystemQueue.push(gamesystem)); this.gamesystems.forEach(gamesystem => gamesystemQueue.push(gamesystem));