summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-01-28 22:18:36 +0500
committerilotterytea <iltsu@alright.party>2025-01-28 22:18:36 +0500
commit76c0903ea857ff9bf31fe3cf75a3a41d3ee2ec06 (patch)
tree0e5539ada54e288c175fabdafb2cd07e4b275a63
parent2afe1a0c8341d8baa34b99a623da0c4b81f6eb39 (diff)
feat: debug widget
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java1
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java4
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java4
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java4
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java4
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java40
6 files changed, 57 insertions, 0 deletions
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java b/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java
index c61fade..1f79cfe 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java
@@ -33,6 +33,7 @@ public class FrogarthaGame extends Game {
// preventing space key from triggering scrolling
if (Gdx.app.getType() == Application.ApplicationType.WebGL) {
Gdx.input.setCatchKey(Input.Keys.SPACE, true);
+ Gdx.input.setCatchKey(Input.Keys.F3, true);
}
setScreen(new SplashScreen());
}
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java
index 12f54bb..114ee22 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java
@@ -17,6 +17,7 @@ import kz.ilotterytea.frogartha.assets.Assets;
import kz.ilotterytea.frogartha.domain.PlayerData;
import kz.ilotterytea.frogartha.entities.LocalPlayerEntity;
import kz.ilotterytea.frogartha.entities.PlayerEntity;
+import kz.ilotterytea.frogartha.ui.DebugWidget;
import kz.ilotterytea.frogartha.ui.game.ChatTable;
import net.mgsx.gltf.scene3d.attributes.PBRCubemapAttribute;
import net.mgsx.gltf.scene3d.attributes.PBRTextureAttribute;
@@ -187,6 +188,9 @@ public class GameScreen implements Screen {
stage = new Stage(new ScreenViewport());
skin = game.getAssetManager().get(Assets.Skins.SKIN_UI);
+ DebugWidget debugWidget = new DebugWidget(skin);
+ stage.addActor(debugWidget);
+
Table mainTable = new Table();
mainTable.setFillParent(true);
stage.addActor(mainTable);
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java
index dd98361..5f5f3f1 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java
@@ -15,6 +15,7 @@ import com.badlogic.gdx.utils.viewport.ScreenViewport;
import kz.ilotterytea.frogartha.FrogarthaGame;
import kz.ilotterytea.frogartha.assets.Assets;
import kz.ilotterytea.frogartha.exceptions.PlayerKickException;
+import kz.ilotterytea.frogartha.ui.DebugWidget;
public class KickScreen implements Screen {
private FrogarthaGame game;
@@ -74,6 +75,9 @@ public class KickScreen implements Screen {
stage = new Stage(new ScreenViewport());
Skin skin = game.getAssetManager().get(Assets.Skins.SKIN_UI);
+ DebugWidget debugWidget = new DebugWidget(skin);
+ stage.addActor(debugWidget);
+
Table mainTable = new Table();
mainTable.setFillParent(true);
mainTable.align(Align.center);
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java
index 2e30527..7e8f5bb 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java
@@ -23,6 +23,7 @@ import kz.ilotterytea.frogartha.assets.Assets;
import kz.ilotterytea.frogartha.domain.RoomTopic;
import kz.ilotterytea.frogartha.sessions.IdentityClient;
import kz.ilotterytea.frogartha.sessions.SessionClient;
+import kz.ilotterytea.frogartha.ui.DebugWidget;
import kz.ilotterytea.frogartha.ui.menu.RoomTopicWidget;
import net.mgsx.gltf.scene3d.scene.SceneManager;
import net.mgsx.gltf.scene3d.scene.SceneSkybox;
@@ -124,6 +125,9 @@ public class MenuScreen implements Screen {
Skin skin = game.getAssetManager().get(Assets.Skins.SKIN_UI);
Skin widgetSkin = game.getAssetManager().get(Assets.Skins.SKIN_WIDGET);
+ DebugWidget debugWidget = new DebugWidget(skin);
+ stage.addActor(debugWidget);
+
// Creating main table
Table mainTable = new Table();
mainTable.setFillParent(true);
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java
index 39771ed..31ce32e 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java
@@ -15,6 +15,7 @@ import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.viewport.ScreenViewport;
import kz.ilotterytea.frogartha.FrogarthaGame;
import kz.ilotterytea.frogartha.assets.Assets;
+import kz.ilotterytea.frogartha.ui.DebugWidget;
public class SplashScreen implements Screen {
private FrogarthaGame game;
@@ -35,6 +36,9 @@ public class SplashScreen implements Screen {
skin = new Skin(Gdx.files.internal(Assets.Skins.SKIN_UI));
texture = new Texture(Gdx.files.internal(Assets.Sprites.SPRITE_ILOTTERYTEA));
+ DebugWidget debugWidget = new DebugWidget(skin);
+ stage.addActor(debugWidget);
+
float stageWidth = Math.min(700f, stage.getWidth());
table = new Table();
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java b/core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java
new file mode 100644
index 0000000..25d9db1
--- /dev/null
+++ b/core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java
@@ -0,0 +1,40 @@
+package kz.ilotterytea.frogartha.ui;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Input;
+import com.badlogic.gdx.scenes.scene2d.ui.Label;
+import com.badlogic.gdx.scenes.scene2d.ui.Skin;
+import com.badlogic.gdx.scenes.scene2d.ui.Table;
+import com.badlogic.gdx.utils.Align;
+import kz.ilotterytea.frogartha.FrogarthaConstants;
+
+public class DebugWidget extends Table {
+ private final Label fpsLabel;
+
+ public DebugWidget(Skin skin) {
+ super();
+ setFillParent(true);
+ align(Align.topLeft);
+ pad(16f);
+ setZIndex(100);
+
+ Label infoLabel = new Label(FrogarthaConstants.Game.APP_NAME + " " + FrogarthaConstants.Game.APP_VERSION, skin);
+ add(infoLabel).growX().row();
+
+ fpsLabel = new Label("", skin);
+ add(fpsLabel).growX().row();
+ }
+
+ @Override
+ public void act(float delta) {
+ super.act(delta);
+
+ boolean isEnabled = Gdx.input.isKeyPressed(Input.Keys.F3);
+
+ if (isEnabled) {
+ fpsLabel.setText(Gdx.graphics.getFramesPerSecond() + " fps");
+ }
+
+ fpsLabel.setVisible(isEnabled);
+ }
+}