Package crazypants.render

Source Code of crazypants.render.IconUtil

package crazypants.render;

import java.util.ArrayList;

import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;
import net.minecraft.util.IIcon;
import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;

public class IconUtil {

  public static interface IIconProvider {

    public void registerIcons(IIconRegister register);

    /** 0 = terrain.png, 1 = items.png */
    public int getTextureType();
  }

  private static ArrayList<IIconProvider> iconProviders = new ArrayList<IIconProvider>();

  public static IIcon whiteTexture;
  public static IIcon blankTexture;
  public static IIcon errorTexture;

  static {
    MinecraftForge.EVENT_BUS.register(new IconUtil());
    addIconProvider(new IIconProvider() {

      @Override
      public void registerIcons(IIconRegister register) {
        whiteTexture = register.registerIcon("enderio:white");
        errorTexture = register.registerIcon("enderio:error");
      }

      @Override
      public int getTextureType() {
        return 0;
      }
    });
  }

  public static void addIconProvider(IIconProvider registrar) {
    iconProviders.add(registrar);
  }

  @Mod.EventHandler
  @SubscribeEvent
  public void onIconLoad(TextureStitchEvent.Pre event) {
    for (IIconProvider reg : iconProviders) {
      if(reg.getTextureType() == event.map.getTextureType()) {
        reg.registerIcons(event.map);
      }
    }
  }

  public static IIcon getIconForItem(int itemId, int meta) {
    Item item = Item.getItemById(itemId);
    if(item == null) {
      return null;
    }
    return item.getIconFromDamage(meta);
  }

}
TOP

Related Classes of crazypants.render.IconUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.