package com.carpentersblocks.util.handler;
import java.lang.reflect.Method;
import net.minecraft.block.Block;
import net.minecraft.world.IBlockAccess;
import org.apache.logging.log4j.Level;
import com.carpentersblocks.util.ModLogger;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class OptifineHandler {
public static boolean enableOptifineIntegration = false;
private static Method getColorMultiplier;
/**
* Initializes Optifine integration.
* If reflection fails, will return false.
*/
public static void init()
{
try {
Class<?> CustomColorizer = Class.forName("CustomColorizer");
getColorMultiplier = CustomColorizer.getMethod("getColorMultiplier", Block.class, IBlockAccess.class, int.class, int.class, int.class);
ModLogger.log(Level.INFO, "Optifine integration successful.");
enableOptifineIntegration = true;
} catch (Exception e) {
ModLogger.log(Level.WARN, "Optifine integration failed: " + e.getMessage());
}
}
public static int getColorMultiplier(Block block, IBlockAccess blockAccess, int x, int y, int z)
{
int colorMultiplier = block.colorMultiplier(blockAccess, x, y, z);
try {
colorMultiplier = (Integer) getColorMultiplier.invoke(null, block, blockAccess, x, y, z);
} catch (Exception e) {
ModLogger.log(Level.WARN, "Block custom coloring failed, disabling Optifine integration: " + e.getMessage());
enableOptifineIntegration = false;
}
return colorMultiplier;
}
}