main #48
@ -175,27 +175,6 @@ export class AppComponent implements OnInit{
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private onCreateNewGamesystem(templateType: TemplateType | undefined) {
 | 
			
		||||
    let parentGamesystemName = undefined
 | 
			
		||||
    if(this.openContent != ModelComponentType.GAMESYTEM) {
 | 
			
		||||
      this.openGamesystemsOverview();
 | 
			
		||||
    } else {
 | 
			
		||||
      parentGamesystemName = this.gamesystemOverview!.selectedGamesystemName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    let createdGamesystem;
 | 
			
		||||
    if(parentGamesystemName == undefined) {
 | 
			
		||||
      createdGamesystem = this.gameModel?.createSimpleGamesystem("New Gamesystem", templateType);
 | 
			
		||||
    } else {
 | 
			
		||||
      createdGamesystem = this.gameModel!.createSimpleGamesystemWithParent("New Gamesystem", parentGamesystemName, templateType)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(createdGamesystem != undefined) {
 | 
			
		||||
      this.gamesystemOverview!.refresh();
 | 
			
		||||
      this.editor?.openGameModelComponent(createdGamesystem);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private getSelectedModelComponent(): ModelComponent | undefined {
 | 
			
		||||
    if(this.openContent == ModelComponentType.SCRIPTACCOUNT) {
 | 
			
		||||
@ -332,8 +311,12 @@ export class AppComponent implements OnInit{
 | 
			
		||||
  get openedOverview(): Overview | undefined {
 | 
			
		||||
    if(this.openContent === ModelComponentType.ITEMGROUP || this.openContent === ModelComponentType.ITEM) {
 | 
			
		||||
      return this.itemOverview;
 | 
			
		||||
    } else {
 | 
			
		||||
      return undefined;
 | 
			
		||||
    } else if(this.openContent === ModelComponentType.SCRIPTACCOUNT) {
 | 
			
		||||
      return this.scriptAccountOverview;
 | 
			
		||||
    } else if(this.openContent === ModelComponentType.CHARACTER) {
 | 
			
		||||
      return this.characterOverview;
 | 
			
		||||
    } else if(this.openContent === ModelComponentType.GAMESYTEM) {
 | 
			
		||||
      return this.gamesystemOverview;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -32,14 +32,12 @@ export class ProductGamesystem extends Gamesystem<ProductState, ProductTransitio
 | 
			
		||||
      simpleGamesystem.parentGamesystem = this
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if(parentGamesystem != undefined) {
 | 
			
		||||
    if(parentGamesystem == undefined || parentGamesystem.componentName === this.componentName) {
 | 
			
		||||
      gameModel.removeGamesystem(simpleGamesystem);
 | 
			
		||||
      this.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
    } else {
 | 
			
		||||
      parentGamesystem.removeChildGamesystem(simpleGamesystem);
 | 
			
		||||
      parentGamesystem.addChildGamesystem(this);
 | 
			
		||||
      this.parentGamesystem = parentGamesystem
 | 
			
		||||
    } else {
 | 
			
		||||
      gameModel.removeGamesystem(simpleGamesystem);
 | 
			
		||||
      gameModel.addGamesystem(this);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,8 @@ import {SimpleGamesystem} from "../../gamesystems/SimpleGamesystem";
 | 
			
		||||
import {ProductGamesystem} from "../../gamesystems/ProductGamesystem";
 | 
			
		||||
import {SimpleTemplateGamesystem} from "../../templates/simpleGamesystem/SimpleTemplateGamesystem";
 | 
			
		||||
import {ProductTemplateCreator} from "../../templates/productGamesystem/ProductTemplateCreator";
 | 
			
		||||
import {ProductTemplateSystem} from "../../templates/productGamesystem/ProductTemplateSystem";
 | 
			
		||||
import {TemplateType} from "../../templates/TemplateType";
 | 
			
		||||
 | 
			
		||||
export class GamesystemCreator extends ModelComponentCreator{
 | 
			
		||||
 | 
			
		||||
@ -25,15 +27,7 @@ export class GamesystemCreator extends ModelComponentCreator{
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(this.selectedComponent !== undefined && this.selectedComponent instanceof Gamesystem)/**Aka productGamesystem**/ {
 | 
			
		||||
      let productParentsystem: ProductGamesystem;
 | 
			
		||||
      if(this.selectedComponent instanceof SimpleTemplateGamesystem) {
 | 
			
		||||
        productParentsystem = ProductTemplateCreator.constructTemplateFromSimpleGamesystem(this.selectedComponent, this.gameModel!, this.selectedComponent.templateType);
 | 
			
		||||
      } else if(this.selectedComponent instanceof SimpleGamesystem) {
 | 
			
		||||
        productParentsystem = ProductGamesystem.constructFromSimpleGamesystem(this.selectedComponent, this.gameModel);
 | 
			
		||||
      } else {
 | 
			
		||||
        productParentsystem = this.selectedComponent as ProductGamesystem;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      const productParentsystem: ProductGamesystem = this.constructProductFromSimple(this.selectedComponent, undefined)!
 | 
			
		||||
      productParentsystem.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
    } else {
 | 
			
		||||
      this.gameModel!.gamesystems.push(simpleGamesystem);
 | 
			
		||||
@ -42,5 +36,51 @@ export class GamesystemCreator extends ModelComponentCreator{
 | 
			
		||||
    return simpleGamesystem;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private constructProductFromSimple(simpleGamesystem: Gamesystem<any, any>, producttemplateType: TemplateType | undefined): ProductGamesystem | undefined {
 | 
			
		||||
    if(!(simpleGamesystem instanceof ProductTemplateSystem) && producttemplateType != undefined) {
 | 
			
		||||
      console.log("Wierd, Debug")
 | 
			
		||||
      return ProductTemplateCreator.convertProductToTemplate(simpleGamesystem as ProductGamesystem, this.gameModel, producttemplateType);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(simpleGamesystem instanceof ProductGamesystem) {
 | 
			
		||||
      console.log("Wierder Debug")
 | 
			
		||||
      return simpleGamesystem;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let productGamesystem: ProductGamesystem
 | 
			
		||||
    if(producttemplateType != undefined) {
 | 
			
		||||
      productGamesystem = new ProductTemplateSystem(simpleGamesystem.componentName, simpleGamesystem.componentDescription, producttemplateType);
 | 
			
		||||
    } else {
 | 
			
		||||
      productGamesystem = new ProductGamesystem(simpleGamesystem.componentName, simpleGamesystem.componentDescription);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this.constructGamesystemHierarchy(productGamesystem, simpleGamesystem as SimpleGamesystem)
 | 
			
		||||
    return productGamesystem;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private constructGamesystemHierarchy(productGamesystem: ProductGamesystem, simpleGamesystem: SimpleGamesystem) {
 | 
			
		||||
    const simpleParentGamesystem = simpleGamesystem.parentGamesystem;
 | 
			
		||||
 | 
			
		||||
    if(simpleGamesystem.states.length > 0) {
 | 
			
		||||
      simpleGamesystem.componentName += "(Child)";
 | 
			
		||||
      if(simpleParentGamesystem == undefined) {
 | 
			
		||||
        this.gameModel.removeGamesystem(simpleGamesystem);
 | 
			
		||||
        productGamesystem.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
        this.gameModel.addGamesystem(productGamesystem);
 | 
			
		||||
      } else {
 | 
			
		||||
        simpleParentGamesystem.removeChildGamesystem(simpleGamesystem);
 | 
			
		||||
        productGamesystem.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
        simpleParentGamesystem.addChildGamesystem(productGamesystem);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      if(simpleParentGamesystem == undefined) {
 | 
			
		||||
        this.gameModel.removeGamesystem(simpleGamesystem);
 | 
			
		||||
        this.gameModel.addGamesystem(productGamesystem);
 | 
			
		||||
      } else {
 | 
			
		||||
        simpleParentGamesystem.removeChildGamesystem(simpleGamesystem);
 | 
			
		||||
        simpleParentGamesystem.addChildGamesystem(productGamesystem);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,13 +5,17 @@ import {MatIcon} from "@angular/material/icon";
 | 
			
		||||
import {NgClass, NgForOf} from "@angular/common";
 | 
			
		||||
import {ScriptAccount} from "../../project/game-model/scriptAccounts/ScriptAccount";
 | 
			
		||||
import {Character} from "../../project/game-model/characters/Character";
 | 
			
		||||
import {Overview} from "../Overview";
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-character-overview',
 | 
			
		||||
  templateUrl: './character-overview.component.html',
 | 
			
		||||
  styleUrl: './character-overview.component.scss'
 | 
			
		||||
})
 | 
			
		||||
export class CharacterOverviewComponent {
 | 
			
		||||
export class CharacterOverviewComponent implements Overview{
 | 
			
		||||
  refresh(): void {
 | 
			
		||||
    //Nothing to-do
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Input() gameModel: GameModel | undefined
 | 
			
		||||
  @Output("onOpenCharacterEditor") openCharacterEmitter: EventEmitter<Character> = new EventEmitter<Character>();
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,7 @@ import {State} from "../../project/game-model/gamesystems/states/State";
 | 
			
		||||
import {Transition} from "../../project/game-model/gamesystems/transitions/Transition";
 | 
			
		||||
import {ProductGamesystem} from "../../project/game-model/gamesystems/ProductGamesystem";
 | 
			
		||||
import {SimpleGamesystem} from "../../project/game-model/gamesystems/SimpleGamesystem";
 | 
			
		||||
import {Overview} from "../Overview";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
interface FlatNode {
 | 
			
		||||
@ -20,7 +21,7 @@ interface FlatNode {
 | 
			
		||||
  templateUrl: './gamescript-overview.component.html',
 | 
			
		||||
  styleUrl: './gamescript-overview.component.scss'
 | 
			
		||||
})
 | 
			
		||||
export class GamescriptOverviewComponent implements OnInit {
 | 
			
		||||
export class GamescriptOverviewComponent implements OnInit, Overview {
 | 
			
		||||
 | 
			
		||||
  @Input('gameModel') gameModel: GameModel | undefined
 | 
			
		||||
  @Output('openGamesystemEditor') openGamesystemEmitter : EventEmitter<Gamesystem<State<any>, Transition<any>>> = new EventEmitter<Gamesystem<State<any>, Transition<any>>>();
 | 
			
		||||
 | 
			
		||||
@ -2,13 +2,14 @@ import {Component, EventEmitter, Input, NgZone, Output} from '@angular/core';
 | 
			
		||||
import {ElectronService} from "../../core/services";
 | 
			
		||||
import {GameModel} from "../../project/game-model/GameModel";
 | 
			
		||||
import {ScriptAccount} from "../../project/game-model/scriptAccounts/ScriptAccount";
 | 
			
		||||
import {Overview} from "../Overview";
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-script-account-overview',
 | 
			
		||||
  templateUrl: './script-account-overview.component.html',
 | 
			
		||||
  styleUrl: './script-account-overview.component.css'
 | 
			
		||||
})
 | 
			
		||||
export class ScriptAccountOverviewComponent {
 | 
			
		||||
export class ScriptAccountOverviewComponent implements Overview{
 | 
			
		||||
  @Input("gameModel") gameModel: GameModel | undefined
 | 
			
		||||
  @Output("onOpenScriptAccount") openScriptAccountEmitter: EventEmitter<ScriptAccount> = new EventEmitter<ScriptAccount>();
 | 
			
		||||
 | 
			
		||||
@ -17,6 +18,10 @@ export class ScriptAccountOverviewComponent {
 | 
			
		||||
  constructor() {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  refresh(): void {
 | 
			
		||||
    //Nothing to do
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onOpenScriptAccount(scriptAccount: ScriptAccount) {
 | 
			
		||||
    console.log("onOpenScriptAccount (overview)")
 | 
			
		||||
    this.openScriptAccountEmitter.emit(scriptAccount);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								testModel/gamesystems/Parentgamesystem.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								testModel/gamesystems/Parentgamesystem.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
    "componentName": "Parentgamesystem",
 | 
			
		||||
    "componentDescription": "",
 | 
			
		||||
    "states": [],
 | 
			
		||||
    "transitions": [],
 | 
			
		||||
    "generateIsolatedStates": false
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user