diff --git a/src/main/java/games/rednblack/editor/HyperLap2DApp.java b/src/main/java/games/rednblack/editor/HyperLap2DApp.java index 7d84194d..5bc79a58 100644 --- a/src/main/java/games/rednblack/editor/HyperLap2DApp.java +++ b/src/main/java/games/rednblack/editor/HyperLap2DApp.java @@ -71,4 +71,22 @@ public class HyperLap2DApp extends ApplicationAdapter { } }); } + + public void showUISplashWindow() { + Lwjgl3Application app = (Lwjgl3Application) Gdx.app; + + Lwjgl3ApplicationConfiguration config2 = new Lwjgl3ApplicationConfiguration(); + config2.setWindowedMode(467, 385); + config2.setTitle("HyperLap2D"); + config2.setResizable(false); + config2.setDecorated(false); + config2.useVsync(false); + config2.setIdleFPS(60); + config2.setWindowIcon("hyperlap_icon_96.png"); + + SplashScreenAdapter adapter = new SplashScreenAdapter(); + adapter.setLoading(false); + + splashWindow = app.newWindow(adapter, config2); + } } diff --git a/src/main/java/games/rednblack/editor/splash/SplashScreen.java b/src/main/java/games/rednblack/editor/splash/SplashScreen.java index d934680b..85c301e1 100644 --- a/src/main/java/games/rednblack/editor/splash/SplashScreen.java +++ b/src/main/java/games/rednblack/editor/splash/SplashScreen.java @@ -1,6 +1,7 @@ package games.rednblack.editor.splash; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.InputMultiplexer; import com.badlogic.gdx.ScreenAdapter; import com.badlogic.gdx.graphics.GL20; @@ -8,8 +9,9 @@ public class SplashScreen extends ScreenAdapter { private SplashStage stage; - public SplashScreen() { - stage = new SplashStage(); + public SplashScreen(boolean loading) { + stage = new SplashStage(loading); + Gdx.input.setInputProcessor(stage); } @Override diff --git a/src/main/java/games/rednblack/editor/splash/SplashScreenAdapter.java b/src/main/java/games/rednblack/editor/splash/SplashScreenAdapter.java index 0268fc1f..b375d6a1 100644 --- a/src/main/java/games/rednblack/editor/splash/SplashScreenAdapter.java +++ b/src/main/java/games/rednblack/editor/splash/SplashScreenAdapter.java @@ -27,13 +27,18 @@ public class SplashScreenAdapter extends Game { public static final String CLOSE_SPLASH = prefix + ".CLOSE"; private SplashScreen screen; + private boolean isLoading = true; @Override public void create () { - screen = new SplashScreen(); + screen = new SplashScreen(isLoading); setScreen(screen); } + public void setLoading(boolean loading) { + isLoading = loading; + } + @Override public void dispose() { super.dispose(); diff --git a/src/main/java/games/rednblack/editor/splash/SplashStage.java b/src/main/java/games/rednblack/editor/splash/SplashStage.java index 6fb04058..e97b8571 100644 --- a/src/main/java/games/rednblack/editor/splash/SplashStage.java +++ b/src/main/java/games/rednblack/editor/splash/SplashStage.java @@ -1,6 +1,8 @@ package games.rednblack.editor.splash; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.InputAdapter; +import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.TextureAtlas; @@ -15,8 +17,10 @@ public class SplashStage extends Stage { private TextureAtlas atlas; private Image logoText; private Label progress; + private boolean isLoading = true; - public SplashStage() { + public SplashStage(boolean isLoading) { + this.isLoading = isLoading; atlas = new TextureAtlas(Gdx.files.internal("splash/splash.atlas")); BitmapFont robotFont = new BitmapFont(Gdx.files.internal("splash/myriad.fnt")); Label.LabelStyle whiteLabelStyle = new Label.LabelStyle(robotFont, new Color(1, 1, 1, 1f)); @@ -48,7 +52,8 @@ public class SplashStage extends Stage { progress = new Label("Loading fonts", blackLabelStyle); progress.setX(logoText.getX() + ((logoText.getWidth() - progress.getWidth() )/ 2)); progress.setY(logo.getY() + 5); - addActor(progress); + if (isLoading) + addActor(progress); Label companyName = new Label("Red & Black Games", whiteLabelStyle); companyName.setX(13); @@ -68,6 +73,15 @@ public class SplashStage extends Stage { setProgressStatus("Initializing"); } + @Override + public boolean touchUp(int screenX, int screenY, int pointer, int button) { + super.touchUp(screenX, screenY, pointer, button); + if (!isLoading) { + HyperLap2DApp.getInstance().splashWindow.closeWindow(); + } + return true; + } + public void setProgressStatus(String status) { progress.setText(status); progress.setX(logoText.getX() + ((logoText.getWidth() - progress.getWidth()) / 2)); diff --git a/src/main/java/games/rednblack/editor/view/ui/properties/panels/UIScenePropertiesMediator.java b/src/main/java/games/rednblack/editor/view/ui/properties/panels/UIScenePropertiesMediator.java index 32dcca69..7770aa2e 100644 --- a/src/main/java/games/rednblack/editor/view/ui/properties/panels/UIScenePropertiesMediator.java +++ b/src/main/java/games/rednblack/editor/view/ui/properties/panels/UIScenePropertiesMediator.java @@ -161,31 +161,5 @@ public class UIScenePropertiesMediator extends UIAbstractPropertiesMediator