diff --git a/android/assets/text/application/application_cs.properties b/android/assets/text/application/application_cs.properties index 7d3d81fb8a70412679d4fbf7ef1e449b1f5fca07..095741916d6899b545f9b09cd664d333bf3724e3 100644 --- a/android/assets/text/application/application_cs.properties +++ b/android/assets/text/application/application_cs.properties @@ -9,6 +9,7 @@ mainmenu_encyclopedia=Encyklopedie mainmenu_preferences=Nastavenà mainmenu_about=O aplikaci mainmenu_logout=Odhlásit +mainmenu_screendebug=Debug Screen gamedifficulty_easy=Lehká gamedifficulty_medium=Střednà diff --git a/android/assets/text/application/application_sk.properties b/android/assets/text/application/application_sk.properties index b26613dd35db570e2a33845fb550aae6389dbb2e..ed092ed093b5b0a4f3ffe2c11c2ec8ea941ad0e4 100644 --- a/android/assets/text/application/application_sk.properties +++ b/android/assets/text/application/application_sk.properties @@ -9,6 +9,7 @@ mainmenu_encyclopedia=Encyklopédia mainmenu_preferences=Nastavenie mainmenu_about=O aplikácià mainmenu_logout=Odhlásiť +mainmenu_screendebug=Debug Screen gamedifficulty_easy=Ľahká gamedifficulty_medium=Stredná diff --git a/core/assets/common/screen/gamemenu/overlay.png b/core/assets/common/screen/debug/black.png similarity index 100% rename from core/assets/common/screen/gamemenu/overlay.png rename to core/assets/common/screen/debug/black.png diff --git a/core/assets/common/screen/debug/blue.png b/core/assets/common/screen/debug/blue.png new file mode 100644 index 0000000000000000000000000000000000000000..c3870f917f4968a8db714a3628a502e7fc310841 Binary files /dev/null and b/core/assets/common/screen/debug/blue.png differ diff --git a/core/assets/common/screen/debug/checker.png b/core/assets/common/screen/debug/checker.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6cf9854d9be63a361d443eb0bbca60813714b2 Binary files /dev/null and b/core/assets/common/screen/debug/checker.png differ diff --git a/core/assets/common/screen/debug/pink.png b/core/assets/common/screen/debug/pink.png new file mode 100644 index 0000000000000000000000000000000000000000..26eb49ed2d2bc4562b4b7bf96c20f6d45268bebe Binary files /dev/null and b/core/assets/common/screen/debug/pink.png differ diff --git a/core/assets/common/screen/debug/point.png b/core/assets/common/screen/debug/point.png new file mode 100644 index 0000000000000000000000000000000000000000..e5328a7b3a237e8774cda4b5fd7132826a4c5a4f Binary files /dev/null and b/core/assets/common/screen/debug/point.png differ diff --git a/core/assets/common/screen/debug/red.png b/core/assets/common/screen/debug/red.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc4cc83c9b5d765531cf3061344e26ba428e430 Binary files /dev/null and b/core/assets/common/screen/debug/red.png differ diff --git a/core/assets/common/screen/debug/yellow.png b/core/assets/common/screen/debug/yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..de8ab0bd398bc00d945e679e6a301d971caa7f2f Binary files /dev/null and b/core/assets/common/screen/debug/yellow.png differ diff --git a/core/assets/common/screen/gamemenu/bankovniloupez_back.png b/core/assets/common/screen/gamemenu/gfx/bankovniloupez_back.png similarity index 100% rename from core/assets/common/screen/gamemenu/bankovniloupez_back.png rename to core/assets/common/screen/gamemenu/gfx/bankovniloupez_back.png diff --git a/core/assets/common/screen/gamemenu/bankovniloupez_fore.png b/core/assets/common/screen/gamemenu/gfx/bankovniloupez_fore.png similarity index 100% rename from core/assets/common/screen/gamemenu/bankovniloupez_fore.png rename to core/assets/common/screen/gamemenu/gfx/bankovniloupez_fore.png diff --git a/core/assets/common/screen/gamemenu/bankovniloupez_mid.png b/core/assets/common/screen/gamemenu/gfx/bankovniloupez_mid.png similarity index 100% rename from core/assets/common/screen/gamemenu/bankovniloupez_mid.png rename to core/assets/common/screen/gamemenu/gfx/bankovniloupez_mid.png diff --git a/core/assets/common/screen/gamemenu/clickablemap.png b/core/assets/common/screen/gamemenu/gfx/clickablemap.png similarity index 100% rename from core/assets/common/screen/gamemenu/clickablemap.png rename to core/assets/common/screen/gamemenu/gfx/clickablemap.png diff --git a/core/assets/common/screen/gamemenu/desk.png b/core/assets/common/screen/gamemenu/gfx/desk.png similarity index 100% rename from core/assets/common/screen/gamemenu/desk.png rename to core/assets/common/screen/gamemenu/gfx/desk.png diff --git a/core/assets/common/screen/gamemenu/difficultyseekbar_background.png b/core/assets/common/screen/gamemenu/gfx/difficultyseekbar_background.png similarity index 100% rename from core/assets/common/screen/gamemenu/difficultyseekbar_background.png rename to core/assets/common/screen/gamemenu/gfx/difficultyseekbar_background.png diff --git a/core/assets/common/screen/gamemenu/difficultyseekbar_thumb.png b/core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb.png similarity index 100% rename from core/assets/common/screen/gamemenu/difficultyseekbar_thumb.png rename to core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb.png diff --git a/core/assets/common/screen/gamemenu/difficultyseekbar_thumb_easy.png b/core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb_easy.png similarity index 100% rename from core/assets/common/screen/gamemenu/difficultyseekbar_thumb_easy.png rename to core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb_easy.png diff --git a/core/assets/common/screen/gamemenu/difficultyseekbar_thumb_hard.png b/core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb_hard.png similarity index 100% rename from core/assets/common/screen/gamemenu/difficultyseekbar_thumb_hard.png rename to core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb_hard.png diff --git a/core/assets/common/screen/gamemenu/difficultyseekbar_thumb_medium.png b/core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb_medium.png similarity index 100% rename from core/assets/common/screen/gamemenu/difficultyseekbar_thumb_medium.png rename to core/assets/common/screen/gamemenu/gfx/difficultyseekbar_thumb_medium.png diff --git a/core/assets/common/screen/gamemenu/encyclopedia_pressed.png b/core/assets/common/screen/gamemenu/gfx/encyclopedia_pressed.png similarity index 100% rename from core/assets/common/screen/gamemenu/encyclopedia_pressed.png rename to core/assets/common/screen/gamemenu/gfx/encyclopedia_pressed.png diff --git a/core/assets/common/screen/gamemenu/halloffame_pressed.png b/core/assets/common/screen/gamemenu/gfx/halloffame_pressed.png similarity index 100% rename from core/assets/common/screen/gamemenu/halloffame_pressed.png rename to core/assets/common/screen/gamemenu/gfx/halloffame_pressed.png diff --git a/core/assets/common/screen/gamemenu/helpbutton_pressed.png b/core/assets/common/screen/gamemenu/gfx/helpbutton_pressed.png similarity index 100% rename from core/assets/common/screen/gamemenu/helpbutton_pressed.png rename to core/assets/common/screen/gamemenu/gfx/helpbutton_pressed.png diff --git a/core/assets/common/screen/gamemenu/helpbutton_unpressed.png b/core/assets/common/screen/gamemenu/gfx/helpbutton_unpressed.png similarity index 100% rename from core/assets/common/screen/gamemenu/helpbutton_unpressed.png rename to core/assets/common/screen/gamemenu/gfx/helpbutton_unpressed.png diff --git a/core/assets/common/screen/gamemenu/helplayer_clickablemap.png b/core/assets/common/screen/gamemenu/gfx/helplayer_clickablemap.png similarity index 100% rename from core/assets/common/screen/gamemenu/helplayer_clickablemap.png rename to core/assets/common/screen/gamemenu/gfx/helplayer_clickablemap.png diff --git a/core/assets/common/screen/gamemenu/nocnisledovani_back.png b/core/assets/common/screen/gamemenu/gfx/nocnisledovani_back.png similarity index 100% rename from core/assets/common/screen/gamemenu/nocnisledovani_back.png rename to core/assets/common/screen/gamemenu/gfx/nocnisledovani_back.png diff --git a/core/assets/common/screen/gamemenu/nocnisledovani_fore.png b/core/assets/common/screen/gamemenu/gfx/nocnisledovani_fore.png similarity index 100% rename from core/assets/common/screen/gamemenu/nocnisledovani_fore.png rename to core/assets/common/screen/gamemenu/gfx/nocnisledovani_fore.png diff --git a/core/assets/common/screen/gamemenu/nocnisledovani_mid.png b/core/assets/common/screen/gamemenu/gfx/nocnisledovani_mid.png similarity index 100% rename from core/assets/common/screen/gamemenu/nocnisledovani_mid.png rename to core/assets/common/screen/gamemenu/gfx/nocnisledovani_mid.png diff --git a/core/assets/common/screen/gamemenu/gfx/overlay.png b/core/assets/common/screen/gamemenu/gfx/overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..d8fc30a3129c1ed8bf6f5c1ffb25a031c3e894ea Binary files /dev/null and b/core/assets/common/screen/gamemenu/gfx/overlay.png differ diff --git a/core/assets/common/screen/gamemenu/potme_back.png b/core/assets/common/screen/gamemenu/gfx/potme_back.png similarity index 100% rename from core/assets/common/screen/gamemenu/potme_back.png rename to core/assets/common/screen/gamemenu/gfx/potme_back.png diff --git a/core/assets/common/screen/gamemenu/potme_fore.png b/core/assets/common/screen/gamemenu/gfx/potme_fore.png similarity index 100% rename from core/assets/common/screen/gamemenu/potme_fore.png rename to core/assets/common/screen/gamemenu/gfx/potme_fore.png diff --git a/core/assets/common/screen/gamemenu/potme_mid.png b/core/assets/common/screen/gamemenu/gfx/potme_mid.png similarity index 100% rename from core/assets/common/screen/gamemenu/potme_mid.png rename to core/assets/common/screen/gamemenu/gfx/potme_mid.png diff --git a/core/assets/common/screen/gamemenu/profile_pressed.png b/core/assets/common/screen/gamemenu/gfx/profile_pressed.png similarity index 100% rename from core/assets/common/screen/gamemenu/profile_pressed.png rename to core/assets/common/screen/gamemenu/gfx/profile_pressed.png diff --git a/core/assets/common/screen/gamemenu/pronasledovani_back.png b/core/assets/common/screen/gamemenu/gfx/pronasledovani_back.png similarity index 100% rename from core/assets/common/screen/gamemenu/pronasledovani_back.png rename to core/assets/common/screen/gamemenu/gfx/pronasledovani_back.png diff --git a/core/assets/common/screen/gamemenu/pronasledovani_fore.png b/core/assets/common/screen/gamemenu/gfx/pronasledovani_fore.png similarity index 100% rename from core/assets/common/screen/gamemenu/pronasledovani_fore.png rename to core/assets/common/screen/gamemenu/gfx/pronasledovani_fore.png diff --git a/core/assets/common/screen/gamemenu/pronasledovani_mid.png b/core/assets/common/screen/gamemenu/gfx/pronasledovani_mid.png similarity index 100% rename from core/assets/common/screen/gamemenu/pronasledovani_mid.png rename to core/assets/common/screen/gamemenu/gfx/pronasledovani_mid.png diff --git a/core/assets/common/screen/gamemenu/statistics_pressed.png b/core/assets/common/screen/gamemenu/gfx/statistics_pressed.png similarity index 100% rename from core/assets/common/screen/gamemenu/statistics_pressed.png rename to core/assets/common/screen/gamemenu/gfx/statistics_pressed.png diff --git a/core/assets/common/screen/gamemenu/streetdoor_pressed.png b/core/assets/common/screen/gamemenu/gfx/streetdoor_pressed.png similarity index 100% rename from core/assets/common/screen/gamemenu/streetdoor_pressed.png rename to core/assets/common/screen/gamemenu/gfx/streetdoor_pressed.png diff --git a/core/assets/common/screen/gamemenu/strelnice_back.png b/core/assets/common/screen/gamemenu/gfx/strelnice_back.png similarity index 100% rename from core/assets/common/screen/gamemenu/strelnice_back.png rename to core/assets/common/screen/gamemenu/gfx/strelnice_back.png diff --git a/core/assets/common/screen/gamemenu/strelnice_fore.png b/core/assets/common/screen/gamemenu/gfx/strelnice_fore.png similarity index 100% rename from core/assets/common/screen/gamemenu/strelnice_fore.png rename to core/assets/common/screen/gamemenu/gfx/strelnice_fore.png diff --git a/core/assets/common/screen/gamemenu/strelnice_mid.png b/core/assets/common/screen/gamemenu/gfx/strelnice_mid.png similarity index 100% rename from core/assets/common/screen/gamemenu/strelnice_mid.png rename to core/assets/common/screen/gamemenu/gfx/strelnice_mid.png diff --git a/core/assets/common/screen/gamemenu/unos_back.png b/core/assets/common/screen/gamemenu/gfx/unos_back.png similarity index 100% rename from core/assets/common/screen/gamemenu/unos_back.png rename to core/assets/common/screen/gamemenu/gfx/unos_back.png diff --git a/core/assets/common/screen/gamemenu/unos_fore.png b/core/assets/common/screen/gamemenu/gfx/unos_fore.png similarity index 100% rename from core/assets/common/screen/gamemenu/unos_fore.png rename to core/assets/common/screen/gamemenu/gfx/unos_fore.png diff --git a/core/assets/common/screen/gamemenu/unos_mid.png b/core/assets/common/screen/gamemenu/gfx/unos_mid.png similarity index 100% rename from core/assets/common/screen/gamemenu/unos_mid.png rename to core/assets/common/screen/gamemenu/gfx/unos_mid.png diff --git a/core/assets/common/screen/gamemenu/vignetting.png b/core/assets/common/screen/gamemenu/gfx/vignetting.png similarity index 100% rename from core/assets/common/screen/gamemenu/vignetting.png rename to core/assets/common/screen/gamemenu/gfx/vignetting.png diff --git a/core/assets/cs/screen/gamemenu/bankovniloupez_startbutton.png b/core/assets/cs/screen/gamemenu/gfx/bankovniloupez_startbutton.png similarity index 100% rename from core/assets/cs/screen/gamemenu/bankovniloupez_startbutton.png rename to core/assets/cs/screen/gamemenu/gfx/bankovniloupez_startbutton.png diff --git a/core/assets/cs/screen/gamemenu/bankovniloupez_startbutton_pressed.png b/core/assets/cs/screen/gamemenu/gfx/bankovniloupez_startbutton_pressed.png similarity index 100% rename from core/assets/cs/screen/gamemenu/bankovniloupez_startbutton_pressed.png rename to core/assets/cs/screen/gamemenu/gfx/bankovniloupez_startbutton_pressed.png diff --git a/core/assets/cs/screen/gamemenu/bankovniloupez_title.png b/core/assets/cs/screen/gamemenu/gfx/bankovniloupez_title.png similarity index 100% rename from core/assets/cs/screen/gamemenu/bankovniloupez_title.png rename to core/assets/cs/screen/gamemenu/gfx/bankovniloupez_title.png diff --git a/core/assets/cs/screen/gamemenu/helplayer.png b/core/assets/cs/screen/gamemenu/gfx/helplayer.png similarity index 100% rename from core/assets/cs/screen/gamemenu/helplayer.png rename to core/assets/cs/screen/gamemenu/gfx/helplayer.png diff --git a/core/assets/cs/screen/gamemenu/nocnisledovani_startbutton.png b/core/assets/cs/screen/gamemenu/gfx/nocnisledovani_startbutton.png similarity index 100% rename from core/assets/cs/screen/gamemenu/nocnisledovani_startbutton.png rename to core/assets/cs/screen/gamemenu/gfx/nocnisledovani_startbutton.png diff --git a/core/assets/cs/screen/gamemenu/nocnisledovani_startbutton_pressed.png b/core/assets/cs/screen/gamemenu/gfx/nocnisledovani_startbutton_pressed.png similarity index 100% rename from core/assets/cs/screen/gamemenu/nocnisledovani_startbutton_pressed.png rename to core/assets/cs/screen/gamemenu/gfx/nocnisledovani_startbutton_pressed.png diff --git a/core/assets/cs/screen/gamemenu/nocnisledovani_title.png b/core/assets/cs/screen/gamemenu/gfx/nocnisledovani_title.png similarity index 100% rename from core/assets/cs/screen/gamemenu/nocnisledovani_title.png rename to core/assets/cs/screen/gamemenu/gfx/nocnisledovani_title.png diff --git a/core/assets/cs/screen/gamemenu/office.jpg b/core/assets/cs/screen/gamemenu/gfx/office.jpg similarity index 100% rename from core/assets/cs/screen/gamemenu/office.jpg rename to core/assets/cs/screen/gamemenu/gfx/office.jpg diff --git a/core/assets/cs/screen/gamemenu/potme_startbutton.png b/core/assets/cs/screen/gamemenu/gfx/potme_startbutton.png similarity index 100% rename from core/assets/cs/screen/gamemenu/potme_startbutton.png rename to core/assets/cs/screen/gamemenu/gfx/potme_startbutton.png diff --git a/core/assets/cs/screen/gamemenu/potme_startbutton_pressed.png b/core/assets/cs/screen/gamemenu/gfx/potme_startbutton_pressed.png similarity index 100% rename from core/assets/cs/screen/gamemenu/potme_startbutton_pressed.png rename to core/assets/cs/screen/gamemenu/gfx/potme_startbutton_pressed.png diff --git a/core/assets/cs/screen/gamemenu/potme_title.png b/core/assets/cs/screen/gamemenu/gfx/potme_title.png similarity index 100% rename from core/assets/cs/screen/gamemenu/potme_title.png rename to core/assets/cs/screen/gamemenu/gfx/potme_title.png diff --git a/core/assets/cs/screen/gamemenu/pronasledovani_startbutton.png b/core/assets/cs/screen/gamemenu/gfx/pronasledovani_startbutton.png similarity index 100% rename from core/assets/cs/screen/gamemenu/pronasledovani_startbutton.png rename to core/assets/cs/screen/gamemenu/gfx/pronasledovani_startbutton.png diff --git a/core/assets/cs/screen/gamemenu/pronasledovani_startbutton_pressed.png b/core/assets/cs/screen/gamemenu/gfx/pronasledovani_startbutton_pressed.png similarity index 100% rename from core/assets/cs/screen/gamemenu/pronasledovani_startbutton_pressed.png rename to core/assets/cs/screen/gamemenu/gfx/pronasledovani_startbutton_pressed.png diff --git a/core/assets/cs/screen/gamemenu/pronasledovani_title.png b/core/assets/cs/screen/gamemenu/gfx/pronasledovani_title.png similarity index 100% rename from core/assets/cs/screen/gamemenu/pronasledovani_title.png rename to core/assets/cs/screen/gamemenu/gfx/pronasledovani_title.png diff --git a/core/assets/cs/screen/gamemenu/strelnice_startbutton.png b/core/assets/cs/screen/gamemenu/gfx/strelnice_startbutton.png similarity index 100% rename from core/assets/cs/screen/gamemenu/strelnice_startbutton.png rename to core/assets/cs/screen/gamemenu/gfx/strelnice_startbutton.png diff --git a/core/assets/cs/screen/gamemenu/strelnice_startbutton_pressed.png b/core/assets/cs/screen/gamemenu/gfx/strelnice_startbutton_pressed.png similarity index 100% rename from core/assets/cs/screen/gamemenu/strelnice_startbutton_pressed.png rename to core/assets/cs/screen/gamemenu/gfx/strelnice_startbutton_pressed.png diff --git a/core/assets/cs/screen/gamemenu/strelnice_title.png b/core/assets/cs/screen/gamemenu/gfx/strelnice_title.png similarity index 100% rename from core/assets/cs/screen/gamemenu/strelnice_title.png rename to core/assets/cs/screen/gamemenu/gfx/strelnice_title.png diff --git a/core/assets/cs/screen/gamemenu/unos_startbutton.png b/core/assets/cs/screen/gamemenu/gfx/unos_startbutton.png similarity index 100% rename from core/assets/cs/screen/gamemenu/unos_startbutton.png rename to core/assets/cs/screen/gamemenu/gfx/unos_startbutton.png diff --git a/core/assets/cs/screen/gamemenu/unos_startbutton_pressed.png b/core/assets/cs/screen/gamemenu/gfx/unos_startbutton_pressed.png similarity index 100% rename from core/assets/cs/screen/gamemenu/unos_startbutton_pressed.png rename to core/assets/cs/screen/gamemenu/gfx/unos_startbutton_pressed.png diff --git a/core/assets/cs/screen/gamemenu/unos_title.png b/core/assets/cs/screen/gamemenu/gfx/unos_title.png similarity index 100% rename from core/assets/cs/screen/gamemenu/unos_title.png rename to core/assets/cs/screen/gamemenu/gfx/unos_title.png diff --git a/core/assets/sk/screen/gamemenu/screen_gamemenu_startmenu_background.jpg b/core/assets/sk/screen/gamemenu/gfx/screen_gamemenu_startmenu_background.jpg similarity index 100% rename from core/assets/sk/screen/gamemenu/screen_gamemenu_startmenu_background.jpg rename to core/assets/sk/screen/gamemenu/gfx/screen_gamemenu_startmenu_background.jpg diff --git a/core/src/cz/nic/tablexia/TablexiaApplication.java b/core/src/cz/nic/tablexia/TablexiaApplication.java index 2f4df4f53e13b3781c391dfbcb5fad587f0bd447..f03c247fc1c3bebe01759e5a93f7343ff7f536cc 100644 --- a/core/src/cz/nic/tablexia/TablexiaApplication.java +++ b/core/src/cz/nic/tablexia/TablexiaApplication.java @@ -37,9 +37,9 @@ public abstract class TablexiaApplication implements ApplicationListener { private AbstractTablexiaScreen<?> lastScreen; private AbstractTablexiaScreen<?> screen; - private InputMultiplexer inputMultiplexer; - private DebugInfo debugInfo; - private Stage stage; + private InputMultiplexer inputMultiplexer; + private DebugInfo debugInfo; + private Stage stage; public Stage getStage() { @@ -80,7 +80,7 @@ public abstract class TablexiaApplication implements ApplicationListener { @Override public void create() { - stage = new Stage(new XFillViewport()); + stage = new Stage(); inputMultiplexer = new InputMultiplexer(stage); Gdx.input.setInputProcessor(inputMultiplexer); prepareDebugInfo(); @@ -108,6 +108,10 @@ public abstract class TablexiaApplication implements ApplicationListener { if (lastScreen != null) lastScreen.resize(width, height); if (screen != null) screen.resize(width, height); stage.getViewport().update(width, height, true); + // keep debug info on edges of the screen + if (TablexiaSettings.getInstance().isDebug()) { + debugInfo.onResize(); + } } @@ -115,7 +119,7 @@ public abstract class TablexiaApplication implements ApplicationListener { private void prepareDebugInfo() { if (TablexiaSettings.getInstance().isDebug()) { - debugInfo = new DebugInfo(getStage().getWidth(), getStage().getHeight()); + debugInfo = new DebugInfo(); // TODO probably deprecated creating specific size getStage().addActor(debugInfo); } } @@ -190,27 +194,27 @@ public abstract class TablexiaApplication implements ApplicationListener { screen = newScreen; screenTransaction.processTransaction(stage, lastScreen, newScreen, - new Runnable() { + new Runnable() { - @Override - public void run() { - processNewScreen(screen); - } - }, + @Override + public void run() { + processNewScreen(screen); + } + }, - new Runnable() { - @Override - public void run() { - processLastScreen(); - } - }, + new Runnable() { + @Override + public void run() { + processLastScreen(); + } + }, - new Runnable() { - @Override - public void run() { - newScreen.performScreenVisible(); - } - }); + new Runnable() { + @Override + public void run() { + newScreen.performScreenVisible(); + } + }); } } @@ -271,8 +275,8 @@ public abstract class TablexiaApplication implements ApplicationListener { private static class MoveRightAnimation implements cz.nic.tablexia.TablexiaApplication.ScreenTransaction.ScreenTransactionImplementation { protected float newScreenMoveFrom = -Gdx.graphics.getWidth(); - protected float newScreenMoveTo = 0; - protected float lastScreenMoveTo = Gdx.graphics.getWidth(); + protected float newScreenMoveTo = 0; + protected float lastScreenMoveTo = Gdx.graphics.getWidth(); @Override public void processTransaction(Stage stage, final AbstractTablexiaScreen<?> lastScreen, final AbstractTablexiaScreen<?> newScreen, Runnable newScreenHandler, final Runnable lastScreenHandler, final Runnable finishHandler) { diff --git a/core/src/cz/nic/tablexia/debug/DebugInfo.java b/core/src/cz/nic/tablexia/debug/DebugInfo.java index 2c6f1f8b946032356266b0ba541a12f32b1671d2..462f5c979dd03434f396ff6deda876e7d45bf5e0 100644 --- a/core/src/cz/nic/tablexia/debug/DebugInfo.java +++ b/core/src/cz/nic/tablexia/debug/DebugInfo.java @@ -29,41 +29,38 @@ import static com.badlogic.gdx.scenes.scene2d.actions.Actions.alpha; /** * Debug info container - * - * @author Matyáš Latner * + * @author Matyáš Latner */ public class DebugInfo extends Table implements Disposable { - private static class DebugInfoComponent extends Table { - - private Map<String, Label> infoLabelMap; - private LabelStyle labelStyle; - - public DebugInfoComponent(float width, float height) { - infoLabelMap = new HashMap<String, Label>(); - setBounds(0, 0, width, height); - setBackground(new TextureRegionDrawable(new TextureRegion(new ColorTexture(1, 1, BACKGROUND_COLOR)))); - addAction(alpha(BACKGROUND_ALPHA)); - - labelStyle = new LabelStyle(new BitmapFont(), FONT_COLOR); - } - - public synchronized void setInfoValue(String infoKey, String infoValue) { - Label label = infoLabelMap.get(infoKey); - if (label == null) { - createInfoLabel(infoKey, infoValue); - } else { - label.setText(infoKey + KEY_COLON + infoValue); - } - } - - private void clean() { - clearChildren(); - infoLabelMap.clear(); - } - - private void createInfoLabel(String infoKey, String infoValue) { + private static class DebugInfoComponent extends Table { + + private Map<String, Label> infoLabelMap; + private LabelStyle labelStyle; + + public DebugInfoComponent() { + infoLabelMap = new HashMap<String, Label>(); + setBackground(new TextureRegionDrawable(new TextureRegion(new ColorTexture(1, 1, BACKGROUND_COLOR)))); + addAction(alpha(BACKGROUND_ALPHA)); + labelStyle = new LabelStyle(new BitmapFont(), FONT_COLOR); + } + + public synchronized void setInfoValue(String infoKey, String infoValue) { + Label label = infoLabelMap.get(infoKey); + if (label == null) { + createInfoLabel(infoKey, infoValue); + } else { + label.setText(infoKey + KEY_COLON + infoValue); + } + } + + private void clean() { + clearChildren(); + infoLabelMap.clear(); + } + + private void createInfoLabel(String infoKey, String infoValue) { Label infoLabel = new Label(infoKey + KEY_COLON + infoValue, labelStyle); infoLabelMap.put(infoKey, infoLabel); clearChildren(); @@ -74,88 +71,90 @@ public class DebugInfo extends Table implements Disposable { cell.pad(0, INFO_PADDING, 0, 0); } } - } - - @Override - public void setSize(float width, float height) { - super.setSize(width, height); - } - - } - - - private static final String NATIVE_HEAP = "Native Heap"; - private static final String JAVA_HEAP = "Java Heap"; - private static final String FPS = "FPS"; - private static final String LOCALE = "Locale"; - private static final String VERSION = "Version"; - - private static final String SCREEN_NAME = "Screen Name"; - - private static final int INFO_PADDING = 20; - private static final int MB_SIZE = 1000000; - private static final String UNIT_MB = " MB"; - private static final String KEY_COLON = ": "; - - private static final Color FONT_COLOR = Color.WHITE; - private static final Color BACKGROUND_COLOR = Color.BLACK; - private static final float BACKGROUND_ALPHA = 0.5f; - - private DebugInfoComponent applicationDebugInfo; - private DebugInfoComponent screenNameInfo; - private DebugInfoComponent screenDebugInfo; - - private ConcurrentLinkedQueue<ScreenInfoEvent> screenDebugInfoQueue = new ConcurrentLinkedQueue<ScreenInfoEvent>(); - private ConcurrentLinkedQueue<ScreenChangedEvent> screenNameInfoQueue = new ConcurrentLinkedQueue<ScreenChangedEvent>(); - - public DebugInfo(float width, float height) { - setBounds(0, 0, width, height); - ApplicationBus.getInstance().subscribe(this); - - applicationDebugInfo = new DebugInfoComponent(width, height); - screenNameInfo = new DebugInfoComponent(width, height); - screenDebugInfo = new DebugInfoComponent(width, height); - - Table topTable = new Table(); - topTable.add(screenNameInfo).expandX(); - topTable.add(screenDebugInfo).pad(0, INFO_PADDING, 0, 0).expandX(); - add(topTable); - row(); - add(new Container<Actor>()).expand(); - row(); - add(applicationDebugInfo).expandX(); - } - - public void update() { + } + + @Override + public void setSize(float width, float height) { + super.setSize(width, height); + } + } + + + private static final String NATIVE_HEAP = "Native Heap"; + private static final String JAVA_HEAP = "Java Heap"; + private static final String FPS = "FPS"; + private static final String LOCALE = "Locale"; + private static final String VERSION = "Version"; + + private static final String SCREEN_NAME = "Screen Name"; + + private static final int INFO_PADDING = 20; + private static final int MB_SIZE = 1000000; + private static final String UNIT_MB = " MB"; + private static final String KEY_COLON = ": "; + + private static final Color FONT_COLOR = Color.WHITE; + private static final Color BACKGROUND_COLOR = Color.BLACK; + private static final float BACKGROUND_ALPHA = 0.5f; + + private DebugInfoComponent applicationDebugInfo; + private DebugInfoComponent screenNameInfo; + private DebugInfoComponent screenDebugInfo; + + private ConcurrentLinkedQueue<ScreenInfoEvent> screenDebugInfoQueue = new ConcurrentLinkedQueue<ScreenInfoEvent>(); + private ConcurrentLinkedQueue<ScreenChangedEvent> screenNameInfoQueue = new ConcurrentLinkedQueue<ScreenChangedEvent>(); + + public DebugInfo() { + ApplicationBus.getInstance().subscribe(this); + + applicationDebugInfo = new DebugInfoComponent(); + screenNameInfo = new DebugInfoComponent(); + screenDebugInfo = new DebugInfoComponent(); + + Table topTable = new Table(); + topTable.add(screenNameInfo).expandX(); + topTable.add(screenDebugInfo).pad(0, INFO_PADDING, 0, 0).expandX(); + add(topTable); + row(); + add(new Container<Actor>()).expand(); + row(); + add(applicationDebugInfo).expandX(); + } + + public void update() { applicationDebugInfo.setInfoValue(FPS, "" + Gdx.graphics.getFramesPerSecond()); applicationDebugInfo.setInfoValue(JAVA_HEAP, ("" + Gdx.app.getJavaHeap() / MB_SIZE) + UNIT_MB); applicationDebugInfo.setInfoValue(NATIVE_HEAP, ("" + Gdx.app.getNativeHeap() / MB_SIZE) + UNIT_MB); applicationDebugInfo.setInfoValue(LOCALE, "" + TablexiaSettings.getInstance().getLocale()); applicationDebugInfo.setInfoValue(VERSION, "" + TablexiaSettings.getInstance().getVersionName()); - while (!screenDebugInfoQueue.isEmpty()) { - ScreenInfoEvent screenInfoEvent = screenDebugInfoQueue.poll(); - screenDebugInfo.setInfoValue(screenInfoEvent.getInfoKey(), screenInfoEvent.getInfoValue()); - } - - while (!screenNameInfoQueue.isEmpty()) { - screenNameInfo.setInfoValue(SCREEN_NAME, "" + screenNameInfoQueue.poll().getScreenClass().getSimpleName()); - } - } - - @Handler - public void handleScreenChangedEvent(ScreenChangedEvent screenChangedEvent) { - screenDebugInfo.clean(); - screenNameInfoQueue.add(screenChangedEvent); - } - - @Handler - public void handleScreenInfoEvent(ScreenInfoEvent screenInfoEvent) { - screenDebugInfoQueue.add(screenInfoEvent); - } - - @Override - public void dispose() { - ApplicationBus.getInstance().unsubscribe(this); - } + while (!screenDebugInfoQueue.isEmpty()) { + ScreenInfoEvent screenInfoEvent = screenDebugInfoQueue.poll(); + screenDebugInfo.setInfoValue(screenInfoEvent.getInfoKey(), screenInfoEvent.getInfoValue()); + } + + while (!screenNameInfoQueue.isEmpty()) { + screenNameInfo.setInfoValue(SCREEN_NAME, "" + screenNameInfoQueue.poll().getScreenClass().getSimpleName()); + } + } + + public void onResize() { + setBounds(0,getStage().getCamera().position.y - getStage().getHeight() / 2,getStage().getWidth(), getStage().getHeight()); + } + + @Handler + public void handleScreenChangedEvent(ScreenChangedEvent screenChangedEvent) { + screenDebugInfo.clean(); + screenNameInfoQueue.add(screenChangedEvent); + } + + @Handler + public void handleScreenInfoEvent(ScreenInfoEvent screenInfoEvent) { + screenDebugInfoQueue.add(screenInfoEvent); + } + + @Override + public void dispose() { + ApplicationBus.getInstance().unsubscribe(this); + } } diff --git a/core/src/cz/nic/tablexia/menu/MainMenu.java b/core/src/cz/nic/tablexia/menu/MainMenu.java index 9f5b5234bd1221a7cdb414d9a08777a50b7e8e18..9bd2e24a680129d42d525feaa03763ec7536f9d9 100644 --- a/core/src/cz/nic/tablexia/menu/MainMenu.java +++ b/core/src/cz/nic/tablexia/menu/MainMenu.java @@ -102,7 +102,7 @@ public class MainMenu extends Stack { menuTableLayout.reset(); menuTableLayout.setDebug(TablexiaSettings.getInstance().isShowBoundingBoxes()); - for (final MainMenuDefinition menuItem : MainMenuDefinition.values()) { + for (final MainMenuDefinition menuItem : MainMenuDefinition.getItemsForMenu()) { addMenuItem(menuItem); IMenuItem[] subMenu = menuItem.getSubmenu(); if (subMenu != null) { diff --git a/core/src/cz/nic/tablexia/menu/MainMenuDefinition.java b/core/src/cz/nic/tablexia/menu/MainMenuDefinition.java index 39eece81d741773b1c416ef0c1eac9d95f8b3291..c5dc2cd762935e724295b96b9590ced8dcfe65d4 100644 --- a/core/src/cz/nic/tablexia/menu/MainMenuDefinition.java +++ b/core/src/cz/nic/tablexia/menu/MainMenuDefinition.java @@ -1,7 +1,11 @@ package cz.nic.tablexia.menu; +import java.util.ArrayList; +import java.util.List; + import cz.nic.tablexia.Tablexia; import cz.nic.tablexia.TablexiaApplication; +import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.bus.ApplicationBus.ApplicationEvent; import cz.nic.tablexia.game.GameDefinition; @@ -11,31 +15,35 @@ import cz.nic.tablexia.screen.encyclopedia.EncyclopediaScreen; import cz.nic.tablexia.screen.halloffame.HallOfFameScreen; import cz.nic.tablexia.screen.preferences.PreferencesScreen; import cz.nic.tablexia.screen.statistics.StatisticsScreen; +import cz.nic.tablexia.screen.viewport.ViewportDebugScreen; public enum MainMenuDefinition implements IMenuItem { - GAMES ("mainmenu_games", GameDefinition.values(), false, null), // TODO open menu event - HALL_OF_FAME ("mainmenu_halloffame", null, true, new Tablexia.ChangeScreenEvent(HallOfFameScreen.class, TablexiaApplication.ScreenTransaction.FADE)), - STATISTICS ("mainmenu_statistics", null, true, new Tablexia.ChangeScreenEvent(StatisticsScreen.class, TablexiaApplication.ScreenTransaction.FADE)), - ENCYCLOPEDIA ("mainmenu_encyclopedia", null, true, new Tablexia.ChangeScreenEvent(EncyclopediaScreen.class, TablexiaApplication.ScreenTransaction.FADE)), - PREFERENCES ("mainmenu_preferences", null, true, new Tablexia.ChangeScreenEvent(PreferencesScreen.class, TablexiaApplication.ScreenTransaction.FADE)), - ABOUT_APPLICATION ("mainmenu_about", null, true, new Tablexia.ChangeScreenEvent(AboutScreen.class, TablexiaApplication.ScreenTransaction.FADE)), - LOGOUT ("mainmenu_logout", null, true, null); // TODO specify event + GAMES (false, "mainmenu_games", GameDefinition.values(), false, null), // TODO open menu event + HALL_OF_FAME (false, "mainmenu_halloffame", null, true, new Tablexia.ChangeScreenEvent(HallOfFameScreen.class, TablexiaApplication.ScreenTransaction.FADE)), + STATISTICS (false, "mainmenu_statistics", null, true, new Tablexia.ChangeScreenEvent(StatisticsScreen.class, TablexiaApplication.ScreenTransaction.FADE)), + ENCYCLOPEDIA (false, "mainmenu_encyclopedia", null, true, new Tablexia.ChangeScreenEvent(EncyclopediaScreen.class, TablexiaApplication.ScreenTransaction.FADE)), + PREFERENCES (false, "mainmenu_preferences", null, true, new Tablexia.ChangeScreenEvent(PreferencesScreen.class, TablexiaApplication.ScreenTransaction.FADE)), + ABOUT_APPLICATION (false, "mainmenu_about", null, true, new Tablexia.ChangeScreenEvent(AboutScreen.class, TablexiaApplication.ScreenTransaction.FADE)), + LOGOUT (false, "mainmenu_logout", null, true, null), // TODO specify event + SCREEN_DEBUG (true, "mainmenu_screendebug", null, true, new Tablexia.ChangeScreenEvent(ViewportDebugScreen.class, TablexiaApplication.ScreenTransaction.FADE)); - private String menuTextKey; + private boolean debug; + private String menuTextKey; private IMenuItem[] submenu; private boolean isCloseMenu; private ApplicationEvent action; - private MainMenuDefinition(String nameResource, IMenuItem[] submenu, boolean isCloseMenu, ApplicationEvent action) { - this.menuTextKey = nameResource; + private MainMenuDefinition(boolean debug, String nameResource, IMenuItem[] submenu, boolean isCloseMenu, ApplicationEvent action) { + this.debug = debug; + this.menuTextKey = nameResource; this.submenu = submenu; this.isCloseMenu = isCloseMenu; this.action = action; } - public ApplicationEvent getAction() { + public ApplicationEvent getAction() { return action; } @@ -57,4 +65,14 @@ public enum MainMenuDefinition implements IMenuItem { public boolean isCloseMenu() { return isCloseMenu; } + + public static List<MainMenuDefinition> getItemsForMenu() { + List<MainMenuDefinition> mainMenu = new ArrayList<MainMenuDefinition>(); + for (MainMenuDefinition mainMenuDefinition : MainMenuDefinition.values()) { + if (TablexiaSettings.getInstance().isDebug() || !mainMenuDefinition.debug) { + mainMenu.add(mainMenuDefinition); + } + } + return mainMenu; + } } diff --git a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java index 9970ef10468877e99387d9b2d02b540482b33bdc..66131df18860ff40f227dd7ffceec1249a6d5168 100644 --- a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java +++ b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java @@ -158,7 +158,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { //////////////////////////// STAGE private Stage prepareStage() { - return new Stage(new XFillViewport()); + return new Stage(new XFillViewport()); } public Stage getStage() { diff --git a/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuAssets.java b/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuAssets.java index b86aed5b550d6f2d11691d0e92fecf2919608033..724ad0a8489dc7f1c80136e927eb04537932c8af 100644 --- a/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuAssets.java +++ b/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuAssets.java @@ -18,7 +18,7 @@ public final class GameMenuAssets { FORE, MID, BACK, TITLE, STARTBUTTON, STARTBUTTON_PRESSED; } - private static final String GAMEMENU_PATH = "screen/gamemenu/"; + private static final String GAMEMENU_PATH = "screen/gamemenu/gfx/"; public static final String OFFICE = GAMEMENU_PATH + "office.jpg"; public static final String OFFICE_CLICKMAP = GAMEMENU_PATH + "clickablemap.png"; diff --git a/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java b/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java index 9fc0efbecdf452775909c568aac8124bc80b94d1..6edb7edaea7d2567b3d391e182b7728291c929ae 100644 --- a/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java +++ b/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java @@ -8,6 +8,7 @@ import net.engio.mbassy.listener.Handler; import java.util.List; +import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.screen.AbstractTablexiaScreen; @@ -27,6 +28,7 @@ public class GameMenuScreen extends AbstractTablexiaScreen<Void> { @Override protected void screenLoaded() { + getStage().setDebugAll(TablexiaSettings.getInstance().isShowBoundingBoxes()); vp = new ViewPager(); vp.addPage(new OfficeMenuPage(this)); diff --git a/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java b/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java index 8bc3b3a995ccd53c3d5bcc4a603eec4cb68fa43d..ab4540de92b5599693c68da84ce0edc1ee5a8680 100644 --- a/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java +++ b/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java @@ -1,5 +1,6 @@ package cz.nic.tablexia.screen.loader; +import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.badlogic.gdx.scenes.scene2d.ui.Image; @@ -12,7 +13,7 @@ public class LoaderScreen extends AbstractTablexiaScreen<Void> { private static final String LOADER_BACKGROUND = "gfx/screen_loader_background.jpg"; private static final String LOADER_SMALL_HAND = "gfx/screen_loader_smallhand.png"; - private static final String LOADER_BIG_HAND = "gfx/screen_loader_bighand.png"; + private static final String LOADER_BIG_HAND = "gfx/screen_loader_bighand.png"; public LoaderScreen() { super(false, false, TablexiaAssetManager.StorageType.INTERNAL); @@ -33,17 +34,24 @@ public class LoaderScreen extends AbstractTablexiaScreen<Void> { getStage().addActor(background); Image smallhand = new Image(getTexture(LOADER_SMALL_HAND)); - smallhand.setPosition(getStage().getWidth()*0.22f, getStage().getHeight() * 0.64f); - smallhand.setSize(getStage().getWidth()*0.01f, getStage().getHeight()*0.06f); + smallhand.setPosition(getStage().getWidth() * 0.22f, getStage().getHeight() * 0.64f); + smallhand.setSize(getStage().getWidth() * 0.01f, getStage().getHeight() * 0.06f); getStage().addActor(smallhand); - smallhand.setOrigin(smallhand.getWidth()/2,0); + smallhand.setOrigin(smallhand.getWidth() / 2, 0); smallhand.addAction(Actions.forever(Actions.rotateBy(-360, 6))); Image bighand = new Image(getTexture(LOADER_BIG_HAND)); - bighand.setPosition(getStage().getWidth()*0.22f, getStage().getHeight() * 0.64f); - bighand.setSize(getStage().getWidth()*0.01f, getStage().getHeight()*0.06f); + bighand.setPosition(getStage().getWidth() * 0.22f, getStage().getHeight() * 0.64f); + bighand.setSize(getStage().getWidth() * 0.01f, getStage().getHeight() * 0.06f); getStage().addActor(bighand); - bighand.setOrigin(bighand.getWidth()/2,0); + bighand.setOrigin(bighand.getWidth() / 2, 0); bighand.addAction(Actions.forever(Actions.rotateBy(-360, 0.5f))); } + + @Override + public Texture getTexture(String textureName) { + Texture t = super.getTexture(textureName); + t.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); + return t; + } } diff --git a/core/src/cz/nic/tablexia/screen/viewport/FullscreenImageDebugScreen.java b/core/src/cz/nic/tablexia/screen/viewport/FullscreenImageDebugScreen.java new file mode 100644 index 0000000000000000000000000000000000000000..62d64ab7a0eeaa9b14075ec63589e971306a25d8 --- /dev/null +++ b/core/src/cz/nic/tablexia/screen/viewport/FullscreenImageDebugScreen.java @@ -0,0 +1,57 @@ +package cz.nic.tablexia.screen.viewport; + +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.scenes.scene2d.actions.Actions; +import com.badlogic.gdx.scenes.scene2d.ui.Image; + +import java.util.List; + +import cz.nic.tablexia.loader.TablexiaAssetManager; +import cz.nic.tablexia.screen.AbstractTablexiaScreen; + +public class FullscreenImageDebugScreen extends AbstractTablexiaScreen<Void> { + + private static final String LOADER_BACKGROUND = "gfx/screen_loader_background.jpg"; + private static final String LOADER_SMALL_HAND = "gfx/screen_loader_smallhand.png"; + private static final String LOADER_BIG_HAND = "gfx/screen_loader_bighand.png"; + + public FullscreenImageDebugScreen() { + super(false, false, TablexiaAssetManager.StorageType.INTERNAL); + } + + @Override + protected void prepareScreenTextureAssetNames(List<String> textureFileNames) { + textureFileNames.add(LOADER_BACKGROUND); + textureFileNames.add(LOADER_SMALL_HAND); + textureFileNames.add(LOADER_BIG_HAND); + } + + @Override + protected void screenLoaded() { + Image background = new Image(getTexture(LOADER_BACKGROUND)); + background.setPosition(0, 0); + background.setSize(getStage().getWidth(), getStage().getHeight()); + getStage().addActor(background); + + Image smallhand = new Image(getTexture(LOADER_SMALL_HAND)); + smallhand.setPosition(getStage().getWidth() * 0.22f, getStage().getHeight() * 0.64f); + smallhand.setSize(getStage().getWidth() * 0.01f, getStage().getHeight() * 0.06f); + getStage().addActor(smallhand); + smallhand.setOrigin(smallhand.getWidth() / 2, 0); + smallhand.addAction(Actions.forever(Actions.rotateBy(-360, 6))); + + Image bighand = new Image(getTexture(LOADER_BIG_HAND)); + bighand.setPosition(getStage().getWidth() * 0.22f, getStage().getHeight() * 0.64f); + bighand.setSize(getStage().getWidth() * 0.01f, getStage().getHeight() * 0.06f); + getStage().addActor(bighand); + bighand.setOrigin(bighand.getWidth() / 2, 0); + bighand.addAction(Actions.forever(Actions.rotateBy(-360, 0.5f))); + } + + @Override + public Texture getTexture(String textureName) { + Texture t = super.getTexture(textureName); + t.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); + return t; + } +} diff --git a/core/src/cz/nic/tablexia/screen/viewport/ViewportDebugScreen.java b/core/src/cz/nic/tablexia/screen/viewport/ViewportDebugScreen.java new file mode 100644 index 0000000000000000000000000000000000000000..ab27da94d0352bebe2fc8f214cd809a7e933b88b --- /dev/null +++ b/core/src/cz/nic/tablexia/screen/viewport/ViewportDebugScreen.java @@ -0,0 +1,91 @@ +package cz.nic.tablexia.screen.viewport; + +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.InputListener; +import com.badlogic.gdx.scenes.scene2d.ui.Image; + +import java.util.List; + +import cz.nic.tablexia.TablexiaSettings; +import cz.nic.tablexia.screen.AbstractTablexiaScreen; +import cz.nic.tablexia.util.Log; + +/** + * Created by lhoracek on 4/13/15. + */ +public class ViewportDebugScreen extends AbstractTablexiaScreen<Void> { + + private static final String BASE = "screen/debug/"; + + @Override + protected void prepareScreenTextureAssetNames(List<String> textureFileNames) { + textureFileNames.add(BASE + "red.png"); + textureFileNames.add(BASE + "blue.png"); + textureFileNames.add(BASE + "yellow.png"); + textureFileNames.add(BASE + "pink.png"); + textureFileNames.add(BASE + "black.png"); + textureFileNames.add(BASE + "checker.png"); + textureFileNames.add(BASE + "point.png"); + } + + @Override + protected void screenLoaded() { + getStage().setDebugAll(true); + + Image large = new Image(getTexture("yellow.png")); + large.setSize(TablexiaSettings.getDefaultScreenWidth(), TablexiaSettings.getMinScreenHeight() * 2); + large.setPosition(0, TablexiaSettings.getMinScreenHeight() / -2.0f); + getStage().addActor(large); + + + Image widescreen = new Image(getTexture("red.png")); + widescreen.setSize(1000, TablexiaSettings.getMinScreenHeight()); + getStage().addActor(widescreen); + + int size = 10; + for (int i = 0; i < size; i++) { + for (int j = 0; j < size; j++) { + Texture checker = getTexture("checker.png"); + Image check = new Image(checker); + check.setPosition(500 - (check.getWidth() * size / 2) + (i * check.getWidth()), TablexiaSettings.getMinScreenHeight() / 2 - (check.getWidth() * size / 2) + (j * check.getWidth())); + getStage().addActor(check); + } + } + + getStage().addListener(new InputListener() { + Image point; + + @Override + public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { + Log.debug(getClass(), "Touchdown"); + point = new Image(getTexture("point.png")); + getStage().addActor(point); + point.setPosition(x - point.getWidth() / 2, y - point.getHeight() / 2); + return true; + } + + + @Override + public void touchDragged(InputEvent event, float x, float y, int pointer) { + point.setPosition(x - point.getWidth() / 2, y - point.getHeight() / 2); + } + + @Override + public void touchUp(InputEvent event, float x, float y, int pointer, int button) { + Log.debug(getClass(), "Liftoff"); + point.remove(); + point = null; + } + }); + // TODO + } + + @Override + public Texture getTexture(String textureName) { + Texture texture = super.getTexture(BASE + textureName); + texture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); + return texture; + } + +} diff --git a/core/src/cz/nic/tablexia/util/ui/ViewPager.java b/core/src/cz/nic/tablexia/util/ui/ViewPager.java index 63c279437d71f12586b139866d752714ad05d645..4f63c9811ca3868e22ee7be33bb2f69c07617c3c 100644 --- a/core/src/cz/nic/tablexia/util/ui/ViewPager.java +++ b/core/src/cz/nic/tablexia/util/ui/ViewPager.java @@ -40,6 +40,7 @@ public class ViewPager extends ScrollPane { private void setup() { content = new Table(); super.setWidget(content); + content.setSize(100,100); content.defaults().space(0); //setClamp(false); //setScrollingDisabled(false, true); diff --git a/core/src/cz/nic/tablexia/util/ui/XFillViewport.java b/core/src/cz/nic/tablexia/util/ui/XFillViewport.java index 6f9a192ae6d2aa2d54538ee7d8112485584eb355..831a9ac5c06b710f0c2051dc35b4e88a2812a4db 100644 --- a/core/src/cz/nic/tablexia/util/ui/XFillViewport.java +++ b/core/src/cz/nic/tablexia/util/ui/XFillViewport.java @@ -1,5 +1,6 @@ package cz.nic.tablexia.util.ui; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Camera; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.utils.viewport.Viewport; @@ -12,9 +13,6 @@ import cz.nic.tablexia.util.Log; */ public class XFillViewport extends Viewport { - - private float worldWidth, worldHeight; - /** * Creates a new viewport using a new {@link com.badlogic.gdx.graphics.OrthographicCamera} with no maximum world size. */ @@ -31,10 +29,36 @@ public class XFillViewport extends Viewport { setCamera(camera); } + private int screenX, screenY, screenWidth, screenHeight; + private float cameraYOffset; + + @Override public void update(int screenWidth, int screenHeight, boolean centerCamera) { - int height = (int) Math.min(screenHeight, screenWidth * TablexiaSettings.getMaximumRatio()); - setScreenBounds(0, Math.max(0, (screenHeight - height) / 2), screenWidth, height); + float newWorldHeight = getWorldWidth() / ((float) screenWidth / (float) screenHeight); + + // FIT into screen keeping at least minimum ration + this.screenX = (newWorldHeight < TablexiaSettings.getMinScreenHeight()) ? ((int) ((screenWidth - (screenHeight / TablexiaSettings.getMaximumRatio())) / 2)) : 0; + this.screenY = 0; + this.screenWidth = (newWorldHeight < TablexiaSettings.getMinScreenHeight()) ? ((int) (screenHeight / TablexiaSettings.getMaximumRatio())) : screenWidth; + this.screenHeight = screenHeight; + setScreenBounds(screenX,screenY,this.screenWidth,this.screenHeight); + // SET NEW WORLD HEIGHT + this.setWorldHeight(newWorldHeight < TablexiaSettings.getMinScreenHeight() ? TablexiaSettings.getMinScreenHeight() : newWorldHeight); // World width dooes not change + cameraYOffset = (getWorldHeight() - TablexiaSettings.getMinScreenHeight()) / 2; + + Log.info(getClass().getName(), "New viewport size (min: " + TablexiaSettings.getMinScreenHeight() + ") update: " + screenWidth + "x" + screenHeight + " - position: " + screenX + "x" + screenY + " - bounds: " + this.screenWidth + "x" + this.screenHeight + " - world: " + getWorldWidth() + "x" + getWorldHeight() + " - y offset: " + cameraYOffset); apply(centerCamera); } + + @Override + public void apply(boolean centerCamera) { + Gdx.gl.glViewport(screenX, screenY, screenWidth, screenHeight); + getCamera().viewportWidth = getWorldWidth(); + getCamera().viewportHeight = getWorldHeight(); + if (centerCamera) getCamera().position.set(getWorldWidth() / 2, getWorldHeight() / 2, 0); + getCamera().position.y -= cameraYOffset; + getCamera().update(); + } + } \ No newline at end of file diff --git a/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java b/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java index 2b8c7bf1a4785907312bfa5822ea82880cead70d..e9bbd105644580e38b9e1667aa2a04d63f006544 100644 --- a/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java +++ b/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java @@ -32,7 +32,7 @@ public class DesktopLauncher { String versionName = loadAttributeFromManifest(VERSION_NAME_MANIFEST_ATTRIBUTE); LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); - config.resizable = false; + config.resizable = buildType == null || buildType.equals(TablexiaSettings.BuildType.DEVEL.getKey()); config.width = 1280; config.height = 800;