From ce74ad0a82fca5b51c03af4a6e77f9efc8f4f90d Mon Sep 17 00:00:00 2001 From: sanderof <sanderof@stud.ntnu.no> Date: Mon, 13 Mar 2023 12:26:02 +0100 Subject: [PATCH] feat: Simple AssetManager set up Issue #19 --- .../com/game/tankwars/MenuAssetManager.java | 57 +++++++++++++++++++ .../com/game/tankwars/model/MenuHeader.java | 17 ++++++ .../com/game/tankwars/view/LoginScreen.java | 3 + 3 files changed, 77 insertions(+) create mode 100644 frontend/core/src/com/game/tankwars/MenuAssetManager.java create mode 100644 frontend/core/src/com/game/tankwars/model/MenuHeader.java diff --git a/frontend/core/src/com/game/tankwars/MenuAssetManager.java b/frontend/core/src/com/game/tankwars/MenuAssetManager.java new file mode 100644 index 0000000..ef77bdb --- /dev/null +++ b/frontend/core/src/com/game/tankwars/MenuAssetManager.java @@ -0,0 +1,57 @@ +package com.game.tankwars; + +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.assets.loaders.FileHandleResolver; +import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; +import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGeneratorLoader; +import com.badlogic.gdx.graphics.g2d.freetype.FreetypeFontLoader; + +import java.util.HashMap; + +public class MenuAssetManager { + + private final AssetManager manager; + + private final HashMap<String, String> textures; + private final HashMap<String, String> fonts; + + public MenuAssetManager() { + manager = new AssetManager(); + + textures = new HashMap<>(); + textures.put("menu-background", "menu-background.png"); + textures.put("logo", "tankwars-logo.png"); + textures.put("menu-header-box", "main-menu-welcome-box.png"); + textures.put("dialog-box", "menu-button.png"); + textures.put("menu-button", "menu-button-2.png"); + + fonts = new HashMap<>(); + fonts.put("menu-regular", "RollAccurate-mvrx.ttf"); + + FileHandleResolver resolver = new InternalFileHandleResolver(); + manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver)); + manager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver)); + } + + public void loadTextures() { + for (String internalPath : textures.keySet()) { + manager.load(internalPath, Texture.class); + } + } + + public void loadFonts() { + // First, let's define the params and then load our smaller font + FreetypeFontLoader.FreeTypeFontLoaderParameter mySmallFont = new FreetypeFontLoader.FreeTypeFontLoaderParameter(); + mySmallFont.fontFileName = "arial.ttf"; + mySmallFont.fontParameters.size = 10; + manager.load("arial.ttf", BitmapFont.class, mySmallFont); + } + + public void finishLoading() { + manager.finishLoading(); + } + +} diff --git a/frontend/core/src/com/game/tankwars/model/MenuHeader.java b/frontend/core/src/com/game/tankwars/model/MenuHeader.java new file mode 100644 index 0000000..4946701 --- /dev/null +++ b/frontend/core/src/com/game/tankwars/model/MenuHeader.java @@ -0,0 +1,17 @@ +package com.game.tankwars.model; + +import com.badlogic.gdx.graphics.Texture; + +public class MenuHeader { + + private final Texture texture; + + public MenuHeader() { + texture = new Texture("main-menu-welcome-box.png"); + } + + public Texture getTexture() { + return texture; + } + +} diff --git a/frontend/core/src/com/game/tankwars/view/LoginScreen.java b/frontend/core/src/com/game/tankwars/view/LoginScreen.java index 0928db1..6704768 100644 --- a/frontend/core/src/com/game/tankwars/view/LoginScreen.java +++ b/frontend/core/src/com/game/tankwars/view/LoginScreen.java @@ -15,6 +15,7 @@ import com.badlogic.gdx.utils.viewport.Viewport; import com.game.tankwars.TankWarsGame; import com.game.tankwars.controller.LoginController; import com.game.tankwars.model.FontGeneratorTTF; +import com.game.tankwars.model.MenuHeader; public class LoginScreen extends InputAdapter implements Screen { @@ -27,6 +28,7 @@ public class LoginScreen extends InputAdapter implements Screen { private final Texture background; private final Sprite logo; private final Texture headerBox; + private final MenuHeader menuHeader; private final GlyphLayout title; @@ -51,6 +53,7 @@ public class LoginScreen extends InputAdapter implements Screen { logo.setScale(1.3f); logo.setPosition(-logo.getWidth() / 2, 32 * heightPercentile); + menuHeader = new MenuHeader(); headerBox = new Texture("main-menu-welcome-box.png"); font.getData().setScale(1f); -- GitLab