From d6c46158f5d474dc35d049a3e187dc86d2cd7c45 Mon Sep 17 00:00:00 2001 From: "Luis C.M" Date: Wed, 4 May 2022 23:08:30 -0500 Subject: [PATCH] TexturedRect classes for GUIs & overlays, and Custom GUI buttons now support textures of all sizes when using URLs. EntityCustomFX: -Added URL support --- .../java/noppes/npcs/client/fx/EntityCustomFX.java | 10 ++++++++++ .../client/gui/custom/components/CustomGuiButton.java | 2 +- .../gui/custom/components/CustomGuiTexturedRect.java | 2 +- .../components/CustomOverlayTexturedRect.java | 2 +- .../npcs/client/renderer/ImageBufferDownloadAlt.java | 9 ++++++++- 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/java/noppes/npcs/client/fx/EntityCustomFX.java b/src/main/java/noppes/npcs/client/fx/EntityCustomFX.java index 92b2e4014..339116806 100644 --- a/src/main/java/noppes/npcs/client/fx/EntityCustomFX.java +++ b/src/main/java/noppes/npcs/client/fx/EntityCustomFX.java @@ -3,10 +3,15 @@ package noppes.npcs.client.fx; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.ITextureObject; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.SkinManager; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import noppes.npcs.client.ClientProxy; +import noppes.npcs.client.ImageDownloadAlt; +import noppes.npcs.client.renderer.ImageBufferDownloadAlt; import org.lwjgl.opengl.GL11; public class EntityCustomFX extends EntityFX { @@ -118,6 +123,11 @@ public class EntityCustomFX extends EntityFX { } location = new ResourceLocation(directory); + if(directory.startsWith("https://")){ + TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); + ITextureObject object = new ImageDownloadAlt(null, directory, new ResourceLocation("customnpcs:textures/gui/invisible.png"), new ImageBufferDownloadAlt(true,false)); + texturemanager.loadTexture(this.location, object); + } this.facePlayer = facePlayer; } diff --git a/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiButton.java b/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiButton.java index b2d73a5cd..a51ce5f45 100644 --- a/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiButton.java +++ b/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiButton.java @@ -53,7 +53,7 @@ public class CustomGuiButton extends GuiButton implements IClickListener { if(texture.startsWith("https://")){ TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); - ITextureObject object = new ImageDownloadAlt(null, texture, SkinManager.field_152793_a, new ImageBufferDownloadAlt(false)); + ITextureObject object = new ImageDownloadAlt(null, texture, new ResourceLocation("customnpcs:textures/gui/invisible.png"), new ImageBufferDownloadAlt(true,false)); texturemanager.loadTexture(this.texture, object); } } diff --git a/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiTexturedRect.java b/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiTexturedRect.java index 4c9a56ab3..163ed6b37 100644 --- a/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiTexturedRect.java +++ b/src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiTexturedRect.java @@ -57,7 +57,7 @@ public class CustomGuiTexturedRect extends Gui implements IGuiComponent { if(texture.startsWith("https://")){ TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); - ITextureObject object = new ImageDownloadAlt(null, texture, SkinManager.field_152793_a, new ImageBufferDownloadAlt(false)); + ITextureObject object = new ImageDownloadAlt(null, texture, new ResourceLocation("customnpcs:textures/gui/invisible.png"), new ImageBufferDownloadAlt(true,false)); texturemanager.loadTexture(this.texture, object); } } diff --git a/src/main/java/noppes/npcs/client/gui/customoverlay/components/CustomOverlayTexturedRect.java b/src/main/java/noppes/npcs/client/gui/customoverlay/components/CustomOverlayTexturedRect.java index 06867b921..2a6367815 100644 --- a/src/main/java/noppes/npcs/client/gui/customoverlay/components/CustomOverlayTexturedRect.java +++ b/src/main/java/noppes/npcs/client/gui/customoverlay/components/CustomOverlayTexturedRect.java @@ -55,7 +55,7 @@ public class CustomOverlayTexturedRect extends Gui implements IOverlayComponent if(texture.startsWith("https://")){ TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); - ITextureObject object = new ImageDownloadAlt(null, texture, SkinManager.field_152793_a, new ImageBufferDownloadAlt(false)); + ITextureObject object = new ImageDownloadAlt(null, texture, new ResourceLocation("customnpcs:textures/gui/invisible.png"), new ImageBufferDownloadAlt(true,false)); texturemanager.loadTexture(this.texture, object); } } diff --git a/src/main/java/noppes/npcs/client/renderer/ImageBufferDownloadAlt.java b/src/main/java/noppes/npcs/client/renderer/ImageBufferDownloadAlt.java index 5ff467ac4..ca25d7008 100644 --- a/src/main/java/noppes/npcs/client/renderer/ImageBufferDownloadAlt.java +++ b/src/main/java/noppes/npcs/client/renderer/ImageBufferDownloadAlt.java @@ -12,12 +12,18 @@ public class ImageBufferDownloadAlt extends ImageBufferDownload { private int imageWidth; private int imageHeight; private boolean version; + public boolean skinTexture = true; // If Version == true, use 64 Loader public ImageBufferDownloadAlt(boolean ver){ this.version = ver; } + public ImageBufferDownloadAlt(boolean ver, boolean skinTexture){ + this.version = ver; + this.skinTexture = skinTexture; + } + @Override public BufferedImage parseUserSkin(BufferedImage bufferedimage) { @@ -31,7 +37,8 @@ public class ImageBufferDownloadAlt extends ImageBufferDownload { g.dispose(); imageData = ((DataBufferInt) bufferedimage1.getRaster().getDataBuffer()).getData(); - setAreaTransparent(imageWidth / 2, 0, imageWidth, imageHeight / 4); + if(skinTexture) + setAreaTransparent(imageWidth / 2, 0, imageWidth, imageHeight / 4); return bufferedimage1; }