import Scene from "../../Wolfie2D/Scene/Scene"; import ConfigManager from "../Tools/ConfigManager"; import SaveManager from "../Tools/SaveManager"; import Vec2 from "../../Wolfie2D/DataTypes/Vec2"; import { GameEventType } from "../../Wolfie2D/Events/GameEventType"; import AnimatedSprite from "../../Wolfie2D/Nodes/Sprites/AnimatedSprite"; import Button from "../../Wolfie2D/Nodes/UIElements/Button"; import { UIElementType } from "../../Wolfie2D/Nodes/UIElements/UIElementTypes"; import Color from "../../Wolfie2D/Utils/Color"; import Layer from "../../Wolfie2D/Scene/Layer"; import Label from "../../Wolfie2D/Nodes/UIElements/Label"; import Levels from "./Levels"; import RandomMapGenerator from "../Tools/RandomMapGenerator"; export default class MainMenu extends Scene { protected config: ConfigManager; protected save: SaveManager; // Layers, for multiple main menu screens private mainMenu: Layer; private about: Layer; private control: Layer; // private rmg: RandomMapGenerator; animatedSprite: AnimatedSprite; loadScene(): void { // Load the menu song //this.load.audio("menu", "shattered_sword_assets/music/menu.mp3"); } //TODO startScene(): void{ // this.config = new ConfigManager(); // this.save = new SaveManager(); // console.log(this.config.getVolume()); // this.config.setVolume(100); // console.log(this.config.getVolume()); // console.log(this.save.getLevel()); // this.save.setLevel(10); // console.log(this.save.getLevel()); // this.rmg = new RandomMapGenerator("shattered_sword_assets/jsons/forest_template.json", 114514); // this.rmg.getMap(); // Scene has started, so start playing music //this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "menu", loop: true, holdReference: true}); const center = this.viewport.getCenter(); // The main menu this.mainMenu = this.addUILayer("mainMenu"); // Add map button, and give it an event to emit on press const map = this.add.uiElement(UIElementType.BUTTON, "mainMenu", {position: new Vec2(center.x, center.y - 100), text: "Map"}); map.size.set(200, 50); map.borderWidth = 2; map.borderColor = Color.WHITE; map.backgroundColor = Color.TRANSPARENT; map.onClickEventId = "map"; // Add about button const about = this.add.uiElement(UIElementType.BUTTON, "mainMenu", {position: new Vec2(center.x, center.y + 100), text: "About"}); about.size.set(200, 50); about.borderWidth = 2; about.borderColor = Color.WHITE; about.backgroundColor = Color.TRANSPARENT; about.onClickEventId = "about"; // Add control button, and give it an event to emit on press const control = this.add.uiElement(UIElementType.BUTTON, "mainMenu", {position: new Vec2(center.x, center.y), text: "Controls"}); control.size.set(200, 50); control.borderWidth = 2; control.borderColor = Color.WHITE; control.backgroundColor = Color.TRANSPARENT; control.onClickEventId = "control"; /* ########## ABOUT SCREEN ########## */ this.about = this.addUILayer("about"); this.about.setHidden(true); const aboutHeader =