diff --git a/plutogui/src/main/java/cz/tefek/pluto/engine/graphics/font/FontManager.java b/plutogui/src/main/java/cz/tefek/pluto/engine/graphics/font/FontManager.java deleted file mode 100755 index e94315e..0000000 --- a/plutogui/src/main/java/cz/tefek/pluto/engine/graphics/font/FontManager.java +++ /dev/null @@ -1,102 +0,0 @@ -package cz.tefek.pluto.engine.graphics.font; - -import java.util.HashMap; -import java.util.Map; - -import java.io.BufferedReader; -import java.nio.file.Files; - -import cz.tefek.pluto.engine.graphics.texture.MagFilter; -import cz.tefek.pluto.engine.graphics.texture.MinFilter; -import cz.tefek.pluto.engine.graphics.texture.Texture; -import cz.tefek.pluto.engine.graphics.texture.WrapMode; -import cz.tefek.pluto.engine.graphics.texture.texture2d.RectangleTexture; -import cz.tefek.pluto.engine.gui.font.CharacterInfo; -import cz.tefek.pluto.engine.gui.font.Font; -import cz.tefek.pluto.io.asl.resource.ResourceAddress; -import cz.tefek.pluto.io.logger.Logger; -import cz.tefek.pluto.io.logger.SmartSeverity; - -public class FontManager -{ - private static Map fonts = new HashMap<>(); - - public static void loadFont(ResourceAddress address) - { - String fontname = null; - int width = 0; - int height = 0; - var def = new HashMap(); - - int row = 0; - - try (BufferedReader br = Files.newBufferedReader(address.copy().branch("definitions").fileExtension("txt").toNIOPath())) - { - String line; - while ((line = br.readLine()) != null) - { - if (line.startsWith("//")) - { - continue; - } - - if (row == 0) - { - String[] fontinfo; - fontinfo = line.split(","); - - fontname = fontinfo[0]; - - String[] dim = fontinfo[1].split("x"); - - width = Integer.parseInt(dim[0]); - height = Integer.parseInt(dim[1]); - } - - if (row > 0) - { - String[] offs = null; - - offs = line.split(" ")[1].split(";"); - - def.put(line.charAt(0), new CharacterInfo(row - 1, Integer.parseInt(offs[0]), Integer.parseInt(offs[1]))); - } - - row++; - } - - br.close(); - } - catch (Exception e) - { - Logger.log(SmartSeverity.ERROR, "Could not load font: " + address.toString()); - e.printStackTrace(); - } - - Font font = new Font(fontname, width, height, def); - RectangleTexture texture = new RectangleTexture(); - texture.load(address.copy().branch("tex").fileExtension("png"), MagFilter.NEAREST, MinFilter.LINEAR, WrapMode.CLAMP_TO_EDGE, WrapMode.CLAMP_TO_EDGE); - font.setTexture(texture); - - fonts.put(fontname, font); - } - - public static void unloadAll() - { - fonts.values().stream().map(Font::getTexture).forEach(Texture::delete); - fonts.clear(); - } - - public static Font getFontByName(String fontname) - { - var font = fonts.get(fontname); - - if (font == null) - { - Logger.log(SmartSeverity.WARNING, "Font with name " + fontname + " could not be found, using the default one instead (if there is one)."); - return fonts.get("default"); - } - - return font; - } -} diff --git a/plutogui/src/main/java/cz/tefek/pluto/engine/gui/font/CharacterInfo.java b/plutogui/src/main/java/cz/tefek/pluto/engine/gui/font/CharacterInfo.java deleted file mode 100755 index ddb262f..0000000 --- a/plutogui/src/main/java/cz/tefek/pluto/engine/gui/font/CharacterInfo.java +++ /dev/null @@ -1,30 +0,0 @@ -package cz.tefek.pluto.engine.gui.font; - -public class CharacterInfo -{ - int leftOffs; - private int rightOffs; - int number; - - public CharacterInfo(int number, int leftOffs, int rightOffs) - { - this.number = number; - this.leftOffs = leftOffs; - this.rightOffs = rightOffs; - } - - public int getLeftOffset() - { - return this.leftOffs; - } - - public int getNumber() - { - return this.number; - } - - public int getRightOffset() - { - return this.rightOffs; - } -} diff --git a/plutospritesheet/src/main/java/cz/tefek/pluto/engine/graphics/PlutoSpriteSheetMod.java b/plutospritesheet/src/main/java/cz/tefek/pluto/engine/graphics/PlutoSpriteSheetMod.java deleted file mode 100755 index 484bcf2..0000000 --- a/plutospritesheet/src/main/java/cz/tefek/pluto/engine/graphics/PlutoSpriteSheetMod.java +++ /dev/null @@ -1,76 +0,0 @@ -package cz.tefek.pluto.engine.graphics; - -import cz.tefek.pluto.Pluto; -import cz.tefek.pluto.engine.ModLWJGL; -import cz.tefek.pluto.engine.graphics.spritesheet.FramebufferTiledSpriteSheet; -import cz.tefek.pluto.engine.shader.PlutoShaderMod; -import cz.tefek.pluto.engine.shader.RenderShaderBuilder; -import cz.tefek.pluto.io.asl.resource.ResourceSubscriber; -import cz.tefek.pluto.io.logger.Logger; -import cz.tefek.pluto.modloader.Mod; -import cz.tefek.pluto.modloader.ModEntry; -import cz.tefek.pluto.modloader.ModLoaderCore; -import cz.tefek.pluto.modloader.event.ModPreLoad; -import cz.tefek.pluto.modloader.event.ModPreLoadEvent; -import cz.tefek.pluto.modloader.event.ModUnload; -import cz.tefek.pluto.modloader.event.ModUnloadEvent; - -@ModEntry(modid = PlutoSpriteSheetMod.MOD_ID, - version = Pluto.VERSION, - dependencies = { ModLWJGL.class, PlutoShaderMod.class }, - author = "493msi", - displayName = "Pluto SpriteSheet", - description = "A library to manage, store and draw sprites.") -public class PlutoSpriteSheetMod -{ - public static final String MOD_ID = "plutospritesheet"; - - public static Mod instance; - public static ResourceSubscriber subscriber; - - /** - * Strictly internal use only, do NOT use this outside of plutospritesheet - */ - private static Shader2D shader2D; - - /** - * Strictly internal use only, do NOT use this outside of plutospritesheet - */ - private static ShaderRectangle2D shaderRectangle2D; - - /** - * Strictly internal use only, do NOT use this outside of plutospritesheet - */ - private static ShaderRectangle2D spriteSheetShader; - - @ModPreLoad - public static void preLoad(ModPreLoadEvent event) - { - instance = ModLoaderCore.getModByID(MOD_ID); - subscriber = instance.getDefaultResourceSubscriber(); - - Logger.log("Intializing " + MOD_ID + "..."); - - shader2D = new RenderShaderBuilder(subscriber, "shaders.v2D#glsl", "shaders.f2D#glsl").build(Shader2D.class, false); - shaderRectangle2D = new RenderShaderBuilder(subscriber, "shaders.VertexRectangle2D#glsl", "shaders.FragmentRectangle2D#glsl").build(ShaderRectangle2D.class, false); - spriteSheetShader = new RenderShaderBuilder(subscriber, "shaders.VertexSpriteSheet#glsl", "shaders.FragmentSpriteSheet#glsl").build(ShaderRectangle2D.class, false); - - Renderer2D.load(shader2D); - RectangleRenderer2D.load(shaderRectangle2D); - - FramebufferTiledSpriteSheet.setSpriteShader(spriteSheetShader); - } - - @ModUnload - public static void unload(ModUnloadEvent unloadEvent) - { - FramebufferTiledSpriteSheet.setSpriteShader(null); - - spriteSheetShader.dispose(); - shaderRectangle2D.dispose(); - shader2D.dispose(); - - RectangleRenderer2D.unload(); - Renderer2D.unload(); - } -}