From 38ffeaa390322ab109bfe933f124091966a57158 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sat, 8 Jun 2024 23:17:57 +0500 Subject: feat: text loader --- .../kz/ilotterytea/maxon/assets/loaders/Text.java | 39 ++++++++++++++++++++++ .../maxon/assets/loaders/TextLoader.java | 39 ++++++++++++++++++++++ .../kz/ilotterytea/maxon/utils/AssetLoading.java | 4 +++ 3 files changed, 82 insertions(+) create mode 100644 core/src/kz/ilotterytea/maxon/assets/loaders/Text.java create mode 100644 core/src/kz/ilotterytea/maxon/assets/loaders/TextLoader.java (limited to 'core') diff --git a/core/src/kz/ilotterytea/maxon/assets/loaders/Text.java b/core/src/kz/ilotterytea/maxon/assets/loaders/Text.java new file mode 100644 index 0000000..6ce483e --- /dev/null +++ b/core/src/kz/ilotterytea/maxon/assets/loaders/Text.java @@ -0,0 +1,39 @@ +package kz.ilotterytea.maxon.assets.loaders; + +import com.badlogic.gdx.files.FileHandle; + +public class Text { + private String string; + + public Text() { + this.string = new String("".getBytes()); + } + + public Text(byte[] data) { + this.string = new String(data); + } + + public Text(String string) { + this.string = new String(string.getBytes()); + } + + public Text(FileHandle file) { + this.string = new String(file.readBytes()); + } + + public Text(Text text) { + this.string = new String(text.getString().getBytes()); + } + + public void setString(String string) { + this.string = string; + } + + public String getString() { + return this.string; + } + + public void clear() { + this.string = new String("".getBytes()); + } +} \ No newline at end of file diff --git a/core/src/kz/ilotterytea/maxon/assets/loaders/TextLoader.java b/core/src/kz/ilotterytea/maxon/assets/loaders/TextLoader.java new file mode 100644 index 0000000..9dff07e --- /dev/null +++ b/core/src/kz/ilotterytea/maxon/assets/loaders/TextLoader.java @@ -0,0 +1,39 @@ +package kz.ilotterytea.maxon.assets.loaders; + +import com.badlogic.gdx.assets.AssetDescriptor; +import com.badlogic.gdx.assets.AssetLoaderParameters; +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.assets.loaders.AsynchronousAssetLoader; +import com.badlogic.gdx.assets.loaders.FileHandleResolver; +import com.badlogic.gdx.files.FileHandle; +import com.badlogic.gdx.utils.Array; + +public class TextLoader extends AsynchronousAssetLoader { + public TextLoader(FileHandleResolver resolver) { + super(resolver); + } + + Text text; + + @Override + public void loadAsync(AssetManager manager, String fileName, FileHandle file, TextParameter parameter) { + this.text = null; + this.text = new Text(file); + } + + @Override + public Text loadSync(AssetManager manager, String fileName, FileHandle file, TextParameter parameter) { + Text text = this.text; + this.text = null; + + return text; + } + + @SuppressWarnings("rawtypes") + @Override + public Array getDependencies(String fileName, FileHandle file, TextParameter parameter) { + return null; + } + + public static class TextParameter extends AssetLoaderParameters {} +} \ No newline at end of file diff --git a/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java b/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java index a948ba0..640becd 100644 --- a/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java +++ b/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java @@ -2,11 +2,14 @@ package kz.ilotterytea.maxon.utils; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.assets.loaders.SkinLoader; +import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver; import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import kz.ilotterytea.maxon.anim.SpriteUtils; +import kz.ilotterytea.maxon.assets.loaders.Text; +import kz.ilotterytea.maxon.assets.loaders.TextLoader; import kz.ilotterytea.maxon.player.MaxonItemEnum; import kz.ilotterytea.maxon.player.MaxonItemRegister; import kz.ilotterytea.maxon.ui.AnimatedImage; @@ -16,6 +19,7 @@ import net.mgsx.gltf.scene3d.scene.SceneAsset; public class AssetLoading { public static void setup(AssetManager am) { am.setLoader(SceneAsset.class, ".glb", new GLBAssetLoader()); + am.setLoader(Text.class, new TextLoader(new InternalFileHandleResolver())); } public static void queue(AssetManager am) { -- cgit v1.2.3