package cofh.asm;
import cofh.core.CoFHProps;
import cofh.core.item.IEqualityOverrideItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPane;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.ITickable;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.util.ForgeDirection;
public class HooksCore {
// { Vanilla hooks
public static boolean areItemsEqualHook(ItemStack held, ItemStack lastHeld) {
if (held.getItem() != lastHeld.getItem()) {
return false;
}
Item item = held.getItem();
if (item instanceof IEqualityOverrideItem && ((IEqualityOverrideItem) item).isLastHeldItemEqual(held, lastHeld)) {
return true;
}
if (held.isItemStackDamageable() && held.getItemDamage() != lastHeld.getItemDamage()) {
return false;
}
return ItemStack.areItemStackTagsEqual(held, lastHeld);
}
@SideOnly(Side.CLIENT)
public static void tickTextures(ITickable obj) {
if (CoFHProps.enableAnimatedTexutres) {
obj.tick();
}
}
public static boolean paneConnectsTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
Block block = world.getBlock(x, y, z);
return block.func_149730_j() ||
block.getMaterial() == Material.glass ||
block instanceof BlockPane ||
world.isSideSolid(x, y, z, dir.getOpposite(), false);
}
// }
}