diff --git a/src/app/app.component.html b/src/app/app.component.html
index 0626929..49c523d 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,11 +1,13 @@
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 3ad2831..8244f20 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -254,6 +254,11 @@ export class AppComponent implements OnInit{
this.drawer!.open()
}
+ openContentOverview(contentType: ModelComponentType) {
+ this.openContent = contentType;
+ this.drawer!.open();
+ }
+
protected readonly ModelComponentType = ModelComponentType;
closeContentOverview() {
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 34970f6..63ff30b 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -82,6 +82,9 @@ import {
import {
StateInitialCellComponent
} from "./editor/gamesystem-editor/state-editor/simple-state-editor/state-initial-cell/state-initial-cell.component";
+import {
+ InventoryItemOverviewComponent
+} from "./side-overviews/inventory-item-overview/inventory-item-overview.component";
// AoT requires an exported function for factories
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new TranslateHttpLoader(http, './assets/i18n/', '.json');
@@ -107,7 +110,8 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new Transl
CharacterOverviewComponent,
CharacterEditorComponent,
TemplateSpecificatorComponent,
- StateInitialCellComponent
+ StateInitialCellComponent,
+ InventoryItemOverviewComponent
],
imports: [
BrowserModule,
@@ -170,7 +174,7 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new Transl
MatExpansionPanel,
MatExpansionPanelTitle,
MatCardTitle,
- MatExpansionPanelHeader
+ MatExpansionPanelHeader,
],
providers: [],
bootstrap: [AppComponent]
diff --git a/src/app/project/game-model/GameModel.ts b/src/app/project/game-model/GameModel.ts
index 295b6bb..ae2b906 100644
--- a/src/app/project/game-model/GameModel.ts
+++ b/src/app/project/game-model/GameModel.ts
@@ -11,6 +11,7 @@ import {SimpleTemplateGamesystem} from "./templates/simpleGamesystem/SimpleTempl
import {ProductTemplateSystem} from "./templates/productGamesystem/ProductTemplateSystem";
import {ProductTemplateCreator} from "./templates/productGamesystem/ProductTemplateCreator";
import {CharacterRelation} from "./characters/CharacterRelation";
+import {Item} from "./inventory/Item";
export class GameModel {
gameModelName: string
@@ -18,9 +19,13 @@ export class GameModel {
gamesystems: Gamesystem
[] = [];
scriptAccounts: ScriptAccount[] = [];
characters: Character[] = []
+ inventoryItems: Item[] = []
constructor(gameModelName: string) {
this.gameModelName = gameModelName;
+
+ this.createInventoryItem("Item 1")
+ this.createInventoryItem("Item 2")
}
addGamesystem(gamesystem: Gamesystem) {
@@ -101,7 +106,12 @@ export class GameModel {
return simpleGamesystem;
}
-
+ createInventoryItem(itemName: string) {
+ if(itemName != undefined) {
+ const item = new Item(itemName, "", ModelComponentType.CHARACTER);
+ this.inventoryItems.push(item);
+ }
+ }
createGamesystem(gamesystemName: string, parentGamesystemName: string | undefined, templateType: TemplateType | undefined) {
if(gamesystemName != undefined && this.findGamesystem(gamesystemName) == undefined) {
@@ -156,6 +166,10 @@ export class GameModel {
}
}
+ removeItem(item: Item) {
+ this.inventoryItems = this.inventoryItems.filter(i => i.componentName === item.componentName)
+ }
+
findGamesystem(gamesystemName: string) {
const gamesystemQueue : Gamesystem, Transition>[] = [];
this.gamesystems.forEach(gamesystem => gamesystemQueue.push(gamesystem));
diff --git a/src/app/project/game-model/ModelComponentType.ts b/src/app/project/game-model/ModelComponentType.ts
index 14eaf8b..4baebb9 100644
--- a/src/app/project/game-model/ModelComponentType.ts
+++ b/src/app/project/game-model/ModelComponentType.ts
@@ -1,6 +1,6 @@
export enum ModelComponentType {
SCRIPTACCOUNT,
GAMESYTEM,
- CHARACTER
-
+ CHARACTER,
+ ITEM
}
diff --git a/src/app/project/game-model/ModelComponentTypeUtillities.ts b/src/app/project/game-model/ModelComponentTypeUtillities.ts
index aa736fd..a2bdc40 100644
--- a/src/app/project/game-model/ModelComponentTypeUtillities.ts
+++ b/src/app/project/game-model/ModelComponentTypeUtillities.ts
@@ -5,7 +5,8 @@ export class ModelComponentTypeUtillities {
switch (modelComponentType) {
case ModelComponentType.SCRIPTACCOUNT: return "ScriptAccounts";
case ModelComponentType.GAMESYTEM: return "Gamesystems";
- case ModelComponentType.CHARACTER: return "Characters"
+ case ModelComponentType.CHARACTER: return "Characters";
+ case ModelComponentType.ITEM: return "Items";
default: return "Undefined";
}
}
@@ -15,6 +16,7 @@ export class ModelComponentTypeUtillities {
case ModelComponentType.SCRIPTACCOUNT: return "ScriptAccount";
case ModelComponentType.GAMESYTEM: return "Gamesystem";
case ModelComponentType.CHARACTER: return "Character"
+ case ModelComponentType.ITEM: return "Item"
default: return "Undefined";
}
}
@@ -24,6 +26,7 @@ export class ModelComponentTypeUtillities {
case "gamesystem": return ModelComponentType.GAMESYTEM;
case "scriptaccount": return ModelComponentType.SCRIPTACCOUNT;
case "character": return ModelComponentType.CHARACTER
+ case "item": return ModelComponentType.ITEM
}
}
}
diff --git a/src/app/project/game-model/inventory/Item.ts b/src/app/project/game-model/inventory/Item.ts
new file mode 100644
index 0000000..3aec112
--- /dev/null
+++ b/src/app/project/game-model/inventory/Item.ts
@@ -0,0 +1,10 @@
+import {ItemProperty} from "./ItemProperty";
+import {ItemQuality} from "./ItemQuality";
+import {ModelComponent} from "../ModelComponent";
+
+export class Item extends ModelComponent {
+
+ possible_qualities: ItemQuality[] = []
+ itemProperties: ItemProperty[] = []
+
+}
diff --git a/src/app/project/game-model/inventory/ItemProperty.ts b/src/app/project/game-model/inventory/ItemProperty.ts
new file mode 100644
index 0000000..4fb219a
--- /dev/null
+++ b/src/app/project/game-model/inventory/ItemProperty.ts
@@ -0,0 +1,10 @@
+export class ItemProperty {
+ propertyName: string
+ property: number
+
+
+ constructor(propertyName: string, property: number) {
+ this.propertyName = propertyName;
+ this.property = property;
+ }
+}
diff --git a/src/app/project/game-model/inventory/ItemQuality.ts b/src/app/project/game-model/inventory/ItemQuality.ts
new file mode 100644
index 0000000..ba59077
--- /dev/null
+++ b/src/app/project/game-model/inventory/ItemQuality.ts
@@ -0,0 +1,9 @@
+export class ItemQuality {
+ quality_step: number
+ quality_propertes: ItemQuality[] = []
+
+
+ constructor(quality_step: number) {
+ this.quality_step = quality_step;
+ }
+}
diff --git a/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.html b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.html
new file mode 100644
index 0000000..16c4e63
--- /dev/null
+++ b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.html
@@ -0,0 +1,8 @@
+
+
+ inventory_2{{item.componentName}}
+
+
diff --git a/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.scss b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.scss
new file mode 100644
index 0000000..41ac5cd
--- /dev/null
+++ b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.scss
@@ -0,0 +1,14 @@
+.item {
+ min-height: 1.8em !important;
+ height: 1.8em !important;
+}
+
+.icon {
+ margin-right: 10px;
+ color: #ccffff;
+ align-content: baseline;
+}
+
+.selected-item {
+ background-color: #8696b6;
+}
diff --git a/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.spec.ts b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.spec.ts
new file mode 100644
index 0000000..4681b34
--- /dev/null
+++ b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { InventoryItemOverviewComponent } from './inventory-item-overview.component';
+
+describe('InventoryItemOverviewComponent', () => {
+ let component: InventoryItemOverviewComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [InventoryItemOverviewComponent]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(InventoryItemOverviewComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.ts b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.ts
new file mode 100644
index 0000000..f1b2cf0
--- /dev/null
+++ b/src/app/side-overviews/inventory-item-overview/inventory-item-overview.component.ts
@@ -0,0 +1,34 @@
+import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {GameModel} from "../../project/game-model/GameModel";
+import {Item} from "../../project/game-model/inventory/Item";
+import {MatActionList, MatListItem} from "@angular/material/list";
+import {MatIcon} from "@angular/material/icon";
+import {NgForOf} from "@angular/common";
+import {ScriptAccount} from "../../project/game-model/scriptAccounts/ScriptAccount";
+
+@Component({
+ selector: 'app-inventory-item-overview',
+ templateUrl: './inventory-item-overview.component.html',
+ styleUrl: './inventory-item-overview.component.scss'
+})
+export class InventoryItemOverviewComponent {
+
+ @Input() gameModel: GameModel | undefined;
+ @Output() openItemEditor = new EventEmitter- ();
+
+
+ selectedItem: Item | undefined
+
+ onOpenItemEditor(item: Item) {
+ this.openItemEditor.emit(item)
+ }
+
+
+ selectItem(item: Item) {
+ if(this.selectedItem != undefined && this.selectedItem!.componentName === item.componentName) {
+ this.selectedItem = undefined
+ } else {
+ this.selectedItem = item
+ }
+ }
+}
diff --git a/src/app/side-overviews/script-account-overview/script-account-overview.component.html b/src/app/side-overviews/script-account-overview/script-account-overview.component.html
index 797174b..8781cb1 100644
--- a/src/app/side-overviews/script-account-overview/script-account-overview.component.html
+++ b/src/app/side-overviews/script-account-overview/script-account-overview.component.html
@@ -3,6 +3,6 @@
(dblclick)="onOpenScriptAccount(scriptAccount)" (click)="selectScriptAccount(scriptAccount)"
[ngClass]="selectedScriptAccount === scriptAccount ?'selected-item':''"
(contextmenu)="selectScriptAccount(scriptAccount)">
- inventory_2{{scriptAccount.componentName}}
+ analytics{{scriptAccount.componentName}}