/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package poe.level.fx.overlay; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javafx.fxml.FXMLLoader; import javafx.geometry.Rectangle2D; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; import javafx.stage.Screen; import javafx.stage.Stage; import javafx.stage.StageStyle; import poe.level.fx.Main_Stage; import static poe.level.fx.POELevelFx.saveBuildsToMemory; import poe.level.fx.Preferences_Controller; /** * * @author Christos */ public class LevelOverlay_Stage extends Stage{ private LevelOverlay_Controller controller; public static double prefX; public static double prefY; public LevelOverlay_Stage(){ FXMLLoader loader = new FXMLLoader(getClass().getResource("/poe/level/fx/overlay/LevelOverlay.fxml")); AnchorPane ap = null; try { ap = loader.load(); } catch (IOException ex) { Logger.getLogger(ZoneOverlay_Stage.class.getName()).log(Level.SEVERE, null, ex); } controller = loader.<LevelOverlay_Controller>getController(); Scene scene = new Scene(ap); scene.getStylesheets().add(getClass().getResource("/styles/style.css").toExternalForm()); scene.setFill(Color.TRANSPARENT); this.setOnCloseRequest(event -> { System.out.println("Closing application from stage -> level:: "); if(saveBuildsToMemory()){ System.out.println("Successfully saved checkpoint"); }else{ System.out.println("Checkpoint save failed"); } System.exit(10); }); this.setScene(scene); this.setAlwaysOnTop(true); this.initStyle(StageStyle.TRANSPARENT); if(Preferences_Controller.level_overlay_pos[0] == -200 && Preferences_Controller.level_overlay_pos[1] == -200){ Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds(); prefX = primScreenBounds.getWidth()/2 - 736/2; prefY = primScreenBounds.getMaxY() - 100; Preferences_Controller.updateLevelPos(prefX, prefY); }else{ prefX = Preferences_Controller.level_overlay_pos[0]; prefY = Preferences_Controller.level_overlay_pos[1]; } this.setX(prefX); this.setY(prefY); controller.hookStage(this); controller.setPlayerLevel(Main_Stage.playerLevel); controller.reset(Main_Stage.playerLevel); this.show(); } public void update(int playerLvl, int zoneLvl){ controller.update(playerLvl,zoneLvl); } public void reset(int playerLvl){ controller.reset(playerLvl); } }