diff options
Diffstat (limited to 'src/main/java/io/polyfrost/oneconfig/themes/textures/TextureManager.java')
-rw-r--r-- | src/main/java/io/polyfrost/oneconfig/themes/textures/TextureManager.java | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/src/main/java/io/polyfrost/oneconfig/themes/textures/TextureManager.java b/src/main/java/io/polyfrost/oneconfig/themes/textures/TextureManager.java deleted file mode 100644 index a2e96d4..0000000 --- a/src/main/java/io/polyfrost/oneconfig/themes/textures/TextureManager.java +++ /dev/null @@ -1,113 +0,0 @@ -package io.polyfrost.oneconfig.themes.textures; - -import io.polyfrost.oneconfig.themes.Theme; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.texture.DynamicTexture; -import net.minecraft.crash.CrashReport; -import net.minecraft.util.ReportedException; -import net.minecraft.util.ResourceLocation; -import org.jetbrains.annotations.NotNull; - -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import static io.polyfrost.oneconfig.themes.Themes.activeTheme; -import static io.polyfrost.oneconfig.themes.Themes.themeLog; - -public class TextureManager { - private static final Minecraft mc = Minecraft.getMinecraft(); - private final List<ResourceLocation> resources = new ArrayList<>(); - private final List<TickableTexture> tickableTextures = new ArrayList<>(); - - /** - * Create a new texture manager for this theme, used for drawing of icons, etc. - */ - public TextureManager(Theme theme) { - for (ThemeElement element : ThemeElement.values()) { - BufferedImage img; - try { - img = ImageIO.read(theme.getResource(element.location)); - } catch (Exception e) { - themeLog.error("failed to get themed texture: " + element.location + ", having to fallback to default one. Is pack invalid?"); - try { - img = ImageIO.read(mc.getResourceManager().getResource(new ResourceLocation("oneconfig", element.location)).getInputStream()); - } catch (IOException ex) { - themeLog.fatal("failed to get fallback texture: " + element.location + ", game will crash :("); - throw new ReportedException(new CrashReport("TextureManager failure: FALLBACK_ERROR_OR_MISSING", ex)); - } - } - ResourceLocation location = mc.getTextureManager().getDynamicTextureLocation(element.location, new DynamicTexture(img)); - resources.add(location); - if (img.getWidth() != element.size) { - themeLog.warn("Theme element " + element.name() + " with size " + img.getWidth() + "px is not recommended, expected " + element.size + "px. Continuing anyway."); - } - if (element.ordinal() < 26) { - if (img.getWidth() != img.getHeight()) { - themeLog.info("found tickable animated texture (" + element.name() + "). Loading texture"); - try { - tickableTextures.add(new TickableTexture(element)); - } catch (IOException e) { - themeLog.error("failed to create TickableTexture " + element.location + ". Just going to load it as a normal texture, this may break things!"); - e.printStackTrace(); - } - } - } else { - if (element.ordinal() < 29) { - if (img.getHeight() != 144 || img.getWidth() != 758) { - themeLog.warn("found badly sized button texture " + element.location); - } - } - } - } - } - - /** - * Draw the specified {@link ThemeElement} at the coordinates, scaled to the width and height. - * - * @param element element to draw - * @param x x coordinate (top left) - * @param y y coordinate (top left) - * @param width width of the image - * @param height height of the image - */ - public void draw(@NotNull ThemeElement element, int x, int y, int width, int height) { - if (activeTheme.isReady()) { - ResourceLocation location = resources.get(element.ordinal()); - mc.getTextureManager().bindTexture(location); - GlStateManager.enableBlend(); - try { - if (!tickableTextures.isEmpty()) { - for (TickableTexture texture : tickableTextures) { - if (texture.getElement().equals(element)) { - texture.draw(x, y); - } else { - Gui.drawScaledCustomSizeModalRect(x, y, 0, 0, width, height, width, height, width, height); - } - } - } else { - Gui.drawScaledCustomSizeModalRect(x, y, 0, 0, width, height, width, height, width, height); - } - GlStateManager.disableBlend(); - GlStateManager.color(1f, 1f, 1f, 1f); - } catch (Exception e) { - themeLog.error("Error occurred drawing texture " + element.name() + ", is theme invalid?", e); - } - } - } - - /** - * Draw the specified {@link ThemeElement} at the coordinates, using its recommended width and height. - * - * @param element element to draw - * @param x x coordinate (top left) - * @param y y coordinate (top left) - */ - public void draw(@NotNull ThemeElement element, int x, int y) { - this.draw(element, x, y, element.size, element.size); - } -} |