issue-15 #21
@ -14,13 +14,10 @@ import {MatDialog} from "@angular/material/dialog";
 | 
			
		||||
import {DeleteConfirmationDialogComponent} from "./delete-confirmation-dialog/delete-confirmation-dialog.component";
 | 
			
		||||
import {ScriptAccount} from "./game-model/scriptAccounts/ScriptAccount";
 | 
			
		||||
import {GamescriptOverviewComponent} from "./side-overviews/gamescript-overview/gamescript-overview.component";
 | 
			
		||||
import {SimpleGamesystem} from "./game-model/gamesystems/SimpleGamesystem";
 | 
			
		||||
import {ProductGamesystem} from "./game-model/gamesystems/ProductGamesystem";
 | 
			
		||||
import {ProductState} from "./game-model/gamesystems/states/ProductState";
 | 
			
		||||
import {LoadModel} from "../../app/LoadModel";
 | 
			
		||||
import {LoadedProject} from "../../app/LoadedProject";
 | 
			
		||||
import {ProcessLoadedProject} from "./game-model/fs/ProcessLoadedProject";
 | 
			
		||||
import {StoreProject} from "./game-model/fs/store/StoreProject";
 | 
			
		||||
import {Gamesystem} from "./game-model/gamesystems/Gamesystem";
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-root',
 | 
			
		||||
@ -111,12 +108,16 @@ export class AppComponent implements OnInit{
 | 
			
		||||
 | 
			
		||||
  private onDeleteModelComponent() {
 | 
			
		||||
    const affectedModelComponent = this.getSelectedModelComponent();
 | 
			
		||||
    console.log("Affected ModelComponent: ", affectedModelComponent)
 | 
			
		||||
    const dialogRef = this.dialog.open(DeleteConfirmationDialogComponent, {data: affectedModelComponent, minWidth: "400px"});
 | 
			
		||||
 | 
			
		||||
    dialogRef.afterClosed().subscribe(res => {
 | 
			
		||||
      if(res != undefined && res) {
 | 
			
		||||
        if(affectedModelComponent instanceof ScriptAccount) {
 | 
			
		||||
          this.gameModel!.removeScriptAccount(affectedModelComponent);
 | 
			
		||||
        } else if(affectedModelComponent instanceof Gamesystem) {
 | 
			
		||||
          this.gameModel!.removeGamesystem(affectedModelComponent);
 | 
			
		||||
          this.gamesystemOverview!.refresh()
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
@ -159,6 +160,12 @@ export class AppComponent implements OnInit{
 | 
			
		||||
      } else {
 | 
			
		||||
        console.log("[WARN] [App.component] ScriptAccountOverview is undefined")
 | 
			
		||||
      }
 | 
			
		||||
    } else if(this.openContent == ModelComponentType.GAMESYTEM){
 | 
			
		||||
      if(this.gamesystemOverview != undefined) {
 | 
			
		||||
        return this.gamesystemOverview!.getSelectedGamesystem()
 | 
			
		||||
      } else {
 | 
			
		||||
        console.log("[WARN] [App.component] GamesystemOverview is undefined")
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,12 @@ export class GameModel {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  removeGamesystem(gamesystem : Gamesystem<any, any>) {
 | 
			
		||||
    this._gamesystems = this._gamesystems.filter(g => g !== gamesystem);
 | 
			
		||||
    if(gamesystem.parentGamesystem == undefined) {
 | 
			
		||||
      this._gamesystems = this._gamesystems.filter(g => g !== gamesystem);
 | 
			
		||||
    } else {
 | 
			
		||||
      (gamesystem.parentGamesystem as ProductGamesystem).removeChildGamesystem(gamesystem);
 | 
			
		||||
      console.log(gamesystem.parentGamesystem)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  createScriptAccount(scriptAccountName: string) {
 | 
			
		||||
 | 
			
		||||
@ -50,12 +50,14 @@ export class ProcessLoadedProject {
 | 
			
		||||
        const simpleGamesystem: SimpleGamesystem = SimpleGamesystemParser.parseSimpleGamesystem(parsedJsonString, gameModel.scriptAccounts);
 | 
			
		||||
        const parentModel: ProductGamesystem = gameModel.findGamesystem(recursiveLoadModel.parentLoadModelname) as ProductGamesystem
 | 
			
		||||
        parentModel.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
        simpleGamesystem.parentGamesystem = parentModel
 | 
			
		||||
      } else {
 | 
			
		||||
        console.log("Gamesystems: ", )
 | 
			
		||||
        //ProductGamesystem
 | 
			
		||||
        const productGamesystem: ProductGamesystem = ProductGamesystemParser.parseProductGamesystem(parsedJsonString);
 | 
			
		||||
        const parentModel: ProductGamesystem = gameModel.findGamesystem(recursiveLoadModel.parentLoadModelname) as ProductGamesystem;
 | 
			
		||||
        parentModel.addChildGamesystem(productGamesystem);
 | 
			
		||||
        productGamesystem.parentGamesystem = parentModel
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      //Top Gamesystem
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@ export abstract class Gamesystem<S, T> extends ModelComponent{
 | 
			
		||||
 | 
			
		||||
  states: S[] = [];
 | 
			
		||||
  transitions: T[] = [];
 | 
			
		||||
  parentGamesystem: ProductGamesystem | undefined
 | 
			
		||||
  constructor(gamesystemName: string, gamesystemDescription: string) {
 | 
			
		||||
   super(gamesystemName, gamesystemDescription, ModelComponentType.GAMESYTEM);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,6 @@ import {ProductStateTrainer} from "../../../../e2e/game-model/gamesystems/produc
 | 
			
		||||
export class ProductGamesystem extends Gamesystem<ProductState, ProductTransition> {
 | 
			
		||||
 | 
			
		||||
  innerGamesystems: Gamesystem<State<any>, Transition<any>>[] = [];
 | 
			
		||||
  parentGamesystem: ProductGamesystem | undefined
 | 
			
		||||
 | 
			
		||||
  static constructFromSimpleGamesystem(simpleGamesystem: SimpleGamesystem, gameModel: GameModel) {
 | 
			
		||||
    const productGamesystem = new ProductGamesystem(simpleGamesystem.componentName, simpleGamesystem.componentDescription);
 | 
			
		||||
@ -154,8 +153,8 @@ export class ProductGamesystem extends Gamesystem<ProductState, ProductTransitio
 | 
			
		||||
    this.innerGamesystems.push(gamesystem);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private removeChildGamesystem(gamesystem: Gamesystem<State<any>, Transition<any>>) {
 | 
			
		||||
    this.innerGamesystems = this.innerGamesystems.filter(childSystem => childSystem != gamesystem);
 | 
			
		||||
  removeChildGamesystem(gamesystem: Gamesystem<State<any>, Transition<any>>) {
 | 
			
		||||
    this.innerGamesystems = this.innerGamesystems.filter(childSystem => childSystem.componentName !== gamesystem.componentName);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  findProductStateByInnerStates(innerStates: State<any>[]) {
 | 
			
		||||
 | 
			
		||||
@ -8,8 +8,6 @@ import {ProductTransition} from "./transitions/ProductTransition";
 | 
			
		||||
import {ProductGamesystem} from "./ProductGamesystem";
 | 
			
		||||
export class SimpleGamesystem extends Gamesystem<SimpleState, SimpleTransition> {
 | 
			
		||||
 | 
			
		||||
  parentGamesystem: ProductGamesystem | undefined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  createState(label: string, description: string): SimpleState | undefined {
 | 
			
		||||
 | 
			
		||||
@ -4,15 +4,7 @@ import {State} from "../../game-model/gamesystems/states/State";
 | 
			
		||||
import {Transition} from "../../game-model/gamesystems/transitions/Transition";
 | 
			
		||||
import {ProductGamesystem} from "../../game-model/gamesystems/ProductGamesystem";
 | 
			
		||||
import {FlatTreeControl} from "@angular/cdk/tree";
 | 
			
		||||
import {
 | 
			
		||||
  MatTree,
 | 
			
		||||
  MatTreeFlatDataSource,
 | 
			
		||||
  MatTreeFlattener,
 | 
			
		||||
  MatTreeNode, MatTreeNodeDef,
 | 
			
		||||
  MatTreeNodePadding, MatTreeNodeToggle
 | 
			
		||||
} from "@angular/material/tree";
 | 
			
		||||
import {MatIcon} from "@angular/material/icon";
 | 
			
		||||
import {MatIconButton} from "@angular/material/button";
 | 
			
		||||
import {MatTreeFlatDataSource, MatTreeFlattener} from "@angular/material/tree";
 | 
			
		||||
import {SimpleGamesystem} from "../../game-model/gamesystems/SimpleGamesystem";
 | 
			
		||||
import {GameModel} from "../../game-model/GameModel";
 | 
			
		||||
import {ElectronService} from "../../core/services";
 | 
			
		||||
@ -100,6 +92,14 @@ export class GamescriptOverviewComponent implements OnInit {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getSelectedGamesystem() {
 | 
			
		||||
    if(this.selectedGamesystem != undefined) {
 | 
			
		||||
      return this.gameModel!.findGamesystem(this.selectedGamesystem!.name);
 | 
			
		||||
    } else {
 | 
			
		||||
      return undefined;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  refresh() {
 | 
			
		||||
    this.dataSource.data = this.gameModel!.gamesystems;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user