@@ -0,0 +1,1603 @@
+/*%0A * To change this license header, choose License Headers in Project Properties.%0A * To change this template file, choose Tools %7C Templates%0A * and open the template in the editor.%0A */%0A%0Apackage net.kirauks.minigames.engine;%0A%0Aimport javafx.application.Application;%0Aimport javafx.event.EventHandler;%0Aimport javafx.scene.Scene;%0Aimport javafx.stage.Stage;%0Aimport javafx.stage.WindowEvent;%0A%0A/**%0A *%0A * @author Karl%0A */%0Aabstract class GameApplication extends Application%7B%0A    @Override%0A    public void start(Stage stage) throws Exception %7B%0A        stage.setTitle(this.createStageTitle());%0A        %0A        Scene scene = this.createScene();%0A        stage.setScene(scene);%0A        %0A        stage.setOnCloseRequest(new EventHandler%3CWindowEvent%3E() %7B%0A            @Override%0A            public void handle(WindowEvent t) %7B%0A                GameApplication.this.onCloseStage();%0A            %7D%0A        %7D);%0A        %0A        stage.show();%0A    %7D%0A    %0A    /**%0A     * Called on Stage creation, the returned String will be used as Stage's title.%0A     * %0A     * @return The used stage title; %0A     */%0A    public abstract String createStageTitle();%0A    %0A    /**%0A     * Called on Scene adding during the Stage creation process, the returned Scene will be added to the Scene.%0A     * %0A     * @return %0A     */%0A    public abstract Scene createScene();%0A    %0A    /**%0A     * Called on GameApplication close;%0A     */%0A    public abstract void onCloseStage();%0A    %0A    /**%0A     * Called on Game pause.%0A     */%0A    public abstract void onPauseGame();%0A%0A    /**%0A     * Called on Game resume.%0A     */%0A    public abstract void onResumeGame();%0A%7D%0A

Add base GameApplication