97 lines
2.8 KiB
Java

package net.optifine.util;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.IReloadableResourceManager;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.client.resources.IResourceManagerReloadListener;
import net.optifine.BetterGrass;
import net.optifine.BetterSnow;
import net.optifine.Config;
import net.optifine.CustomItems;
import net.optifine.CustomSky;
import net.optifine.SmartLeaves;
public class TextureUtils {
public static String fixResourcePath(String path, String basePath) {
String s = "assets/minecraft/";
if (path.startsWith(s)) {
path = path.substring(s.length());
return path;
} else if (path.startsWith("./")) {
path = path.substring(2);
if (!basePath.endsWith("/")) {
basePath = basePath + "/";
}
path = basePath + path;
return path;
} else {
if (path.startsWith("/~")) {
path = path.substring(1);
}
String s1 = "mcpatcher/";
if (path.startsWith("~/")) {
path = path.substring(2);
path = s1 + path;
return path;
} else if (path.startsWith("/")) {
path = s1 + path.substring(1);
return path;
} else {
return path;
}
}
}
public static String getBasePath(String path) {
int i = path.lastIndexOf(47);
return i < 0 ? "" : path.substring(0, i);
}
public static void registerResourceListener() {
IResourceManager iresourcemanager = Minecraft.getMinecraft().getResourceManager();
if (iresourcemanager instanceof IReloadableResourceManager) {
IReloadableResourceManager ireloadableresourcemanager = (IReloadableResourceManager) iresourcemanager;
IResourceManagerReloadListener iresourcemanagerreloadlistener = new IResourceManagerReloadListener() {
public void onResourceManagerReload(IResourceManager var1) {
TextureUtils.resourcesReloaded(var1);
}
};
ireloadableresourcemanager.registerReloadListener(iresourcemanagerreloadlistener);
}
}
public static void resourcesReloaded(IResourceManager rm) {
if (Minecraft.getMinecraft().getTextureMapBlocks() != null) {
Config.dbg("*** Reloading custom textures ***");
CustomSky.reset();
// TextureAnimations.reset();
// update();
// NaturalTextures.update();
BetterGrass.update();
BetterSnow.update();
// TextureAnimations.update();
// CustomColors.update();
CustomSky.update();
// RandomEntities.update();
CustomItems.updateModels();
// CustomEntityModels.update();
// Shaders.resourcesReloaded();
// Lang.resourcesReloaded();
// Config.updateTexturePackClouds();
SmartLeaves.updateLeavesModels();
// CustomPanorama.update();
// CustomGuis.update();
// LayerMooshroomMushroom.update();
// CustomLoadingScreens.update();
// CustomBlockLayers.update();
Minecraft.getMinecraft().getTextureManager().tick();
}
}
}