From 474b40018c25b332900582ad71aa94299d22eb35 Mon Sep 17 00:00:00 2001 From: noisymouse27f Date: Mon, 15 Sep 2025 16:44:16 +0100 Subject: [PATCH] Update Asset.java, AssetService.java, and TechnicClient.java - Wrapped AssetManager with AssetService --- .../java/com/ghost/technic/TechnicClient.java | 11 ++-- .../java/com/ghost/technic/asset/Asset.java | 7 +++ .../com/ghost/technic/asset/AssetService.java | 51 +++++++++++++++++++ 3 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 core/src/main/java/com/ghost/technic/asset/Asset.java create mode 100644 core/src/main/java/com/ghost/technic/asset/AssetService.java diff --git a/core/src/main/java/com/ghost/technic/TechnicClient.java b/core/src/main/java/com/ghost/technic/TechnicClient.java index 7234844..e6d316c 100644 --- a/core/src/main/java/com/ghost/technic/TechnicClient.java +++ b/core/src/main/java/com/ghost/technic/TechnicClient.java @@ -3,10 +3,10 @@ package com.ghost.technic; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; -import com.badlogic.gdx.assets.AssetManager; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.utils.GdxRuntimeException; +import com.ghost.technic.asset.AssetService; import com.ghost.technic.screen.BattlefieldScreen; import com.ghost.technic.server.Player; import com.ghost.technic.server.game.GameActionService; @@ -20,7 +20,7 @@ import java.util.Map; public class TechnicClient extends Game { private Skin skin; - private AssetManager assetManager; + private AssetService assetService; private GameState gameState; private GameActionService gameActionService; @@ -30,10 +30,7 @@ public class TechnicClient extends Game { public void create() { skin = new Skin(Gdx.files.internal("ui/uiskin.json")); - assetManager = new AssetManager(); - assetManager.load("cards/cards.atlas", TextureAtlas.class); - assetManager.finishLoading(); - Gdx.app.log("TechnicClient | INFO", "Finished loading assets!"); + assetService = new AssetService(new InternalFileHandleResolver()); gameState = new GameState(new EventBus()); gameActionService = new GameActionService(gameState); diff --git a/core/src/main/java/com/ghost/technic/asset/Asset.java b/core/src/main/java/com/ghost/technic/asset/Asset.java new file mode 100644 index 0000000..bb15962 --- /dev/null +++ b/core/src/main/java/com/ghost/technic/asset/Asset.java @@ -0,0 +1,7 @@ +package com.ghost.technic.asset; + +import com.badlogic.gdx.assets.AssetDescriptor; + +public interface Asset { + AssetDescriptor getDescriptor(); +} diff --git a/core/src/main/java/com/ghost/technic/asset/AssetService.java b/core/src/main/java/com/ghost/technic/asset/AssetService.java new file mode 100644 index 0000000..bd99a7e --- /dev/null +++ b/core/src/main/java/com/ghost/technic/asset/AssetService.java @@ -0,0 +1,51 @@ +package com.ghost.technic.asset; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.assets.loaders.FileHandleResolver; +import com.badlogic.gdx.utils.Disposable; + +public class AssetService implements Disposable { + private final AssetManager assetManager; + + public AssetService(FileHandleResolver fileHandleResolver) { + this.assetManager = new AssetManager(fileHandleResolver); + + // old technic code +// this.assetManager.load("cards/cards.atlas", TextureAtlas.class); +// this.assetManager.finishLoading(); +// Gdx.app.log("Technic | INFO", "Finished loading assets!"); +// this.cardSkin.addRegions(assetManager.get("cards/cards.atlas", TextureAtlas.class)); + } + + public T load(Asset asset) { + this.assetManager.load(asset.getDescriptor()); + this.assetManager.finishLoading(); + return this.assetManager.get(asset.getDescriptor()); + } + + public void unload(Asset asset) { + this.assetManager.unload(asset.getDescriptor().fileName); + } + + public void queue(Asset asset) { + this.assetManager.load(asset.getDescriptor()); + } + + public T get(Asset asset) { + return this.assetManager.get(asset.getDescriptor()); + } + + public boolean update() { + return this.assetManager.update(); + } + + public void debugDiagnostics() { + Gdx.app.debug("AssetService", this.assetManager.getDiagnostics()); + } + + @Override + public void dispose() { + this.assetManager.dispose(); + } +}