package gui; import src.MarbleGame; import gui.GuiControl.MouseState; import hxd.res.BitmapFont; import h3d.Vector; import src.ResourceLoader; import src.Settings; import src.Util; class MainMenuGui extends GuiImage { public function new() { var img = ResourceLoader.getImage('data/ui/backgrounds/platinum/${cast (Math.floor(Util.lerp(1, 28, Math.random())), Int)}.jpg'); super(img.resource.toTile()); var domcasual32fontdata = ResourceLoader.getFileEntry("data/font/DomCasualD.fnt"); var domcasual32b = new BitmapFont(domcasual32fontdata.entry); @:privateAccess domcasual32b.loader = ResourceLoader.loader; var domcasual32 = domcasual32b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel); this.horizSizing = Width; this.vertSizing = Height; this.position = new Vector(); this.extent = new Vector(640, 480); var mainMenuContent = new GuiControl(); mainMenuContent.horizSizing = Center; mainMenuContent.vertSizing = Center; mainMenuContent.position = new Vector(-130, -110); mainMenuContent.extent = new Vector(900, 700); function loadButtonImages(path:String) { var normal = ResourceLoader.getResource('${path}_n.png', ResourceLoader.getImage, this.imageResources).toTile(); var hover = ResourceLoader.getResource('${path}_h.png', ResourceLoader.getImage, this.imageResources).toTile(); var pressed = ResourceLoader.getResource('${path}_d.png', ResourceLoader.getImage, this.imageResources).toTile(); return [normal, hover, pressed]; } var siteButton = new GuiButton(loadButtonImages('data/ui/menu/site')); siteButton.horizSizing = Right; siteButton.vertSizing = Top; siteButton.position = new Vector(363, 664); siteButton.extent = new Vector(400, 30); siteButton.pressedAction = (sender) -> {} mainMenuContent.addChild(siteButton); var motdButton = new GuiImage(ResourceLoader.getResource('data/ui/menu/totd_i.png', ResourceLoader.getImage, this.imageResources).toTile()); motdButton.horizSizing = Left; motdButton.vertSizing = Top; motdButton.position = new Vector(706, 536); motdButton.extent = new Vector(191, 141); mainMenuContent.addChild(motdButton); var playButton = new GuiButton(loadButtonImages("data/ui/menu/play")); playButton.position = new Vector(-5, -2); playButton.extent = new Vector(247, 164); playButton.pressedAction = (sender) -> { cast(this.parent, Canvas).setContent(new PlayMissionGui()); } mainMenuContent.addChild(playButton); var lbButton = new GuiImage(ResourceLoader.getResource('data/ui/menu/online_i.png', ResourceLoader.getImage, this.imageResources).toTile()); lbButton.position = new Vector(-5, 128); lbButton.extent = new Vector(247, 164); mainMenuContent.addChild(lbButton); var optionsButton = new GuiButton(loadButtonImages("data/ui/menu/options")); optionsButton.position = new Vector(-5, 258); optionsButton.extent = new Vector(247, 164); optionsButton.pressedAction = (sender) -> { cast(this.parent, Canvas).setContent(new OptionsDlg()); } mainMenuContent.addChild(optionsButton); var exitButton = new GuiButton(loadButtonImages("data/ui/menu/quit")); exitButton.position = new Vector(-5, 388); exitButton.extent = new Vector(247, 164); exitButton.pressedAction = (sender) -> { #if hl Sys.exit(0); #end }; mainMenuContent.addChild(exitButton); var replButton = new GuiButton(loadButtonImages("data/ui/menu/replay")); replButton.horizSizing = Left; replButton.vertSizing = Top; replButton.position = new Vector(552, 536); replButton.extent = new Vector(191, 141); replButton.pressedAction = (sender) -> {}; mainMenuContent.addChild(replButton); var helpButton = new GuiButton(loadButtonImages("data/ui/menu/help")); helpButton.horizSizing = Left; helpButton.vertSizing = Top; helpButton.position = new Vector(398, 536); helpButton.extent = new Vector(191, 141); helpButton.pressedAction = (sender) -> { MarbleGame.canvas.setContent(new HelpCreditsGui()); } mainMenuContent.addChild(helpButton); this.addChild(mainMenuContent); var mbp = new GuiImage(ResourceLoader.getResource("data/ui/menu/mbp.png", ResourceLoader.getImage, this.imageResources).toTile()); mbp.horizSizing = Left; mbp.vertSizing = Bottom; mbp.position = new Vector(476, 12); mbp.extent = new Vector(153, 150); this.addChild(mbp); var versionText = new GuiMLText(domcasual32, null); versionText.horizSizing = Left; versionText.vertSizing = Bottom; versionText.position = new Vector(502, 66); versionText.extent = new Vector(97, 72); versionText.text.text = "

1.1.2

"; this.addChild(versionText); } }