diff --git a/src/view/model/FadeInfo.ts b/src/view/model/FadeInfo.ts new file mode 100644 index 0000000..b316da7 --- /dev/null +++ b/src/view/model/FadeInfo.ts @@ -0,0 +1,5 @@ +export class FadeInfo { + public fadeIn: boolean = false; + public fadeOut: boolean = false; + public duration: number = 0; +} \ No newline at end of file diff --git a/src/view/model/Menu.ts b/src/view/model/Menu.ts new file mode 100644 index 0000000..57cbaf1 --- /dev/null +++ b/src/view/model/Menu.ts @@ -0,0 +1,22 @@ +import { MenuItem } from "./MenuItem"; + +export class Menu { + items: MenuItem[]; + + constructor(private title: string) { + this.title = title; + this.items = []; + } + + public getTitle(): string { return this.title; } + + public getItems(): MenuItem[] { return this.items; } + + public addItem(name: string, position: number): void { + this.items.push({ name: name, position: position }); + } + + public getPosition(itemIndex: number) { + return this.items[itemIndex].position; + } +} diff --git a/src/view/model/MenuItem.ts b/src/view/model/MenuItem.ts new file mode 100644 index 0000000..23ffd9c --- /dev/null +++ b/src/view/model/MenuItem.ts @@ -0,0 +1,4 @@ +export interface MenuItem { + name: string; + position: number; +} \ No newline at end of file diff --git a/src/view/model/ViewModel.ts b/src/view/model/ViewModel.ts new file mode 100644 index 0000000..ec97625 --- /dev/null +++ b/src/view/model/ViewModel.ts @@ -0,0 +1,40 @@ +import { FadeInfo } from "./FadeInfo" +import { Menu } from "./Menu" + +export interface ViewModel { + text(text: string): void + textW(whoid: string, text: string): void + meet(whoid: string, name: string): void + background(type: string, name: string, effect: string): void + sprite(whoid: string, params: string, position: string, alias: string, effect: string): void + hideSprite(whoid: string, effect: string): void + + menu(menu: Menu): void + showMap(): void + setZone(zone: string, label: string): void + disableCurrentZone(): void + disableAllZones(): void + resetZone(zone: string): void + + makeNamesUnknown(): void + makeNamesKnown(): void + + music(name: string, fade: FadeInfo): void + ambience(name: string, fade: FadeInfo): void + sound(name: string, fade: FadeInfo): void + soundLoop(name: string, fade: FadeInfo): void + + addSoundToQueue(name: string): void + addMusicToQueue(name: string): void + + stopAmbience(fade: FadeInfo): void + stopSoundLoop(fade: FadeInfo): void + stopSound(fade: FadeInfo): void + stopMusic(fade: FadeInfo): void + + windowShow(effect: string): boolean + windowHide(effect: string): boolean + + pause(duration: number, isHard: boolean): void + finish(): void +} \ No newline at end of file