diff --git a/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java b/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java index b06816c7f..c4f1462b6 100644 --- a/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java +++ b/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java @@ -6,6 +6,10 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.resources.FallbackResourceManager; +import net.minecraft.client.resources.IResourceManager; +import net.minecraft.client.resources.IResourcePack; +import net.minecraft.client.resources.SimpleReloadableResourceManager; import net.minecraft.launchwrapper.Launch; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; @@ -384,11 +388,25 @@ public static TextureType getTypeFor(CarvableHelper inst, String modid, String p return CUSTOM; } - // This is ugly, but faster than class.getResource private static boolean exists(String modid, String path, String postfix) { ResourceLocation rl = new ResourceLocation(modid, "textures/blocks/" + path + postfix + ".png"); + + final IResourceManager resMan = Minecraft.getMinecraft().getResourceManager(); + if (resMan instanceof SimpleReloadableResourceManager simple) { + FallbackResourceManager fallback = (FallbackResourceManager)simple.domainResourceManagers.get(rl.getResourceDomain()); + if (fallback != null) { + for (Object obj : fallback.resourcePacks) { + if (obj instanceof IResourcePack rp && rp.resourceExists(rl)) { + return true; + } + } + return false; + } + } + + // Fallback try { - Minecraft.getMinecraft().getResourceManager().getAllResources(rl); + resMan.getAllResources(rl); return true; } catch (Throwable t) { return false; diff --git a/src/main/resources/META-INF/chisel_compile_at.cfg b/src/main/resources/META-INF/chisel_compile_at.cfg index 71ec24c73..7d2cf7d1b 100644 --- a/src/main/resources/META-INF/chisel_compile_at.cfg +++ b/src/main/resources/META-INF/chisel_compile_at.cfg @@ -5,3 +5,7 @@ public net.minecraft.client.renderer.Tessellator field_78417_x # GUI stuff for item scale protected net.minecraft.client.gui.inventory.GuiContainer func_146977_a(Lnet/minecraft/inventory/Slot;)V # drawSlot + +# Checking if a resource exists +public net.minecraft.client.resources.SimpleReloadableResourceManager field_110548_a # domainResourceManagers +public net.minecraft.client.resources.FallbackResourceManager field_110540_a # resourcePacks