Browse Source

Start of input

tbvns 4 months ago
parent
commit
496f44eed1

+ 1 - 1
android/AndroidManifest.xml

@@ -14,7 +14,7 @@
     <activity
         android:name="xyz.prismix.android.AndroidLauncher"
         android:label="@string/app_name"
-        android:screenOrientation="landscape"
+        android:screenOrientation="portrait"
         android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|screenLayout"
         android:exported="true">
         <intent-filter>

BIN
assets/hud/Input.png


BIN
assets/hud/cursor.png


+ 1 - 2
build.gradle

@@ -9,9 +9,8 @@ buildscript {
     maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' }
   }
   dependencies {
-    classpath "com.android.tools.build:gradle:8.5.2"
+    classpath "com.android.tools.build:gradle:8.2.0"
     classpath "io.freefair.gradle:lombok-plugin:8.3"
-
   }
 }
 

+ 1 - 0
core/build.gradle

@@ -16,6 +16,7 @@ dependencies {
   api project(':shared')
   annotationProcessor "org.projectlombok:lombok:$lombokVersion"
   compileOnly "org.projectlombok:lombok:$lombokVersion"
+  implementation 'org.reflections:reflections:0.10.2'
 
   if(enableGraalNative == 'true') {
     implementation "io.github.berstanio:gdx-svmhelper-annotations:$graalHelperVersion"

+ 20 - 5
core/src/main/java/xyz/prismix/Main.java

@@ -1,29 +1,44 @@
 package xyz.prismix;
 
 import com.badlogic.gdx.ApplicationAdapter;
+import com.badlogic.gdx.Game;
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.GL20;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.utils.ScreenUtils;
+import xyz.prismix.Screens.List.Account.LoginScreen;
+import xyz.prismix.Screens.ScreenManagers;
+
+import java.lang.reflect.InvocationTargetException;
 
 /** {@link com.badlogic.gdx.ApplicationListener} implementation shared by all platforms. */
-public class Main extends ApplicationAdapter {
+public class Main extends Game {
     private SpriteBatch batch;
     private Texture image;
+    private LoginScreen screen;
 
     @Override
     public void create() {
+        try {
+            ScreenManagers.load();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
         batch = new SpriteBatch();
         image = new Texture("libgdx.png");
+        screen = new LoginScreen();
+        setScreen(screen);
     }
 
     @Override
     public void render() {
-        ScreenUtils.clear(0.15f, 0.15f, 0.2f, 1f);
-        batch.begin();
-        batch.draw(image, 140, 210);
-        batch.end();
+//        ScreenUtils.clear(0.15f, 0.15f, 0.2f, 1f);
+//        batch.begin();
+//        batch.draw(image, Gdx.graphics.getWidth()/2 - image.getWidth()/2, Gdx.graphics.getHeight()/2 - image.getHeight()/2);
+//        batch.end();
+        screen.render(0);
     }
 
     @Override

+ 55 - 0
core/src/main/java/xyz/prismix/Screens/List/Account/LoginScreen.java

@@ -0,0 +1,55 @@
+package xyz.prismix.Screens.List.Account;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Screen;
+import com.badlogic.gdx.ScreenAdapter;
+import com.badlogic.gdx.graphics.Color;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.graphics.g2d.BitmapFont;
+import com.badlogic.gdx.graphics.g2d.SpriteBatch;
+import com.badlogic.gdx.scenes.scene2d.Stage;
+import com.badlogic.gdx.scenes.scene2d.ui.Table;
+import com.badlogic.gdx.scenes.scene2d.ui.TextField;
+import xyz.prismix.Skins.Skins;
+
+public class LoginScreen extends ScreenAdapter {
+
+    TextField field;
+    Stage stage;
+    Table table;
+
+    public LoginScreen() {
+
+    }
+
+    @Override
+    public void show() {
+        stage = new Stage();
+
+
+        TextField.TextFieldStyle style = new TextField.TextFieldStyle();
+        style.font = new BitmapFont();
+        style.fontColor = Color.CHARTREUSE;
+
+        TextField field = new TextField("", style);
+        field.setText("Test");
+        field.setWidth(150);
+        field.setBlinkTime(1);
+        field.setStyle(Skins.textField());
+
+        this.field = field;
+
+        table = new Table();
+        stage.addActor(field);
+        Gdx.input.setInputProcessor(stage);
+    }
+
+    @Override
+    public void render(float v) {
+        Gdx.gl.glClearColor(0, 0, 0, 1);
+        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
+
+        stage.draw();
+        stage.act();
+    }
+}

+ 21 - 0
core/src/main/java/xyz/prismix/Screens/ScreenManagers.java

@@ -0,0 +1,21 @@
+package xyz.prismix.Screens;
+
+import com.badlogic.gdx.Screen;
+import org.reflections.Reflections;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.HashMap;
+import java.util.Set;
+
+public class ScreenManagers {
+    private static final HashMap<Class, Screen> Screens = new HashMap<>();
+
+    public static void load() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
+        Reflections reflections = new Reflections("xyz.prismix.Screens.List");
+        Set<Class<? extends Screen>> screens = reflections.getSubTypesOf(Screen.class);
+        for (Class<? extends Screen> screen : screens) {
+            Screen newScreen = screen.getDeclaredConstructor().newInstance();
+            Screens.put(newScreen.getClass(), newScreen);
+        }
+    }
+}

+ 35 - 0
core/src/main/java/xyz/prismix/Skins/Skins.java

@@ -0,0 +1,35 @@
+package xyz.prismix.Skins;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Color;
+import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.BitmapFont;
+import com.badlogic.gdx.graphics.g2d.NinePatch;
+import com.badlogic.gdx.scenes.scene2d.ui.Skin;
+import com.badlogic.gdx.scenes.scene2d.ui.TextField;
+
+public class Skins {
+
+    public static Skin skin() {
+        Skin skin = new Skin();
+        skin.add(
+            "background",
+            new NinePatch(new Texture(Gdx.files.internal("hud/Input.png")), 5, 5, 5, 5) //TODO: That's never deleted from memory UwU
+        );
+        skin.add("cursor", new Texture(Gdx.files.internal("hud/cursor.png")));
+        return skin;
+    }
+
+    public static TextField.TextFieldStyle textField() {
+        TextField.TextFieldStyle tStyle = new TextField.TextFieldStyle();
+        tStyle.fontColor = Color.BLACK;
+        tStyle.font = new BitmapFont();
+        tStyle.background = skin().getDrawable("background");
+        tStyle.cursor = skin().newDrawable("cursor");
+        tStyle.cursor.setMinWidth(2f);
+        tStyle.selection = skin().newDrawable("background", 0.5f, 0.5f, 0.5f,
+            0.5f);
+
+        return tStyle;
+    }
+}

+ 8 - 2
local.properties

@@ -1,2 +1,8 @@
-# Location of the Android SDK:
-sdk.dir=/home/tbvns/Android/Sdk
+## This file must *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+# For customization when using a Version Control System, please read the
+# header note.
+#Fri Nov 15 19:28:13 UTC 2024
+sdk.dir=C\:\\Users\\Tbvns\\AppData\\Local\\Android\\Sdk