Package uristqwerty.CraftGuide.api

Source Code of uristqwerty.CraftGuide.api.LiquidFilter

package uristqwerty.CraftGuide.api;

import java.util.ArrayList;
import java.util.List;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;

import org.lwjgl.opengl.GL11;

public class LiquidFilter implements ItemFilter
{
  private static NamedTexture containerTexture = null;
  private FluidStack liquid;
  private String liquidName;
  private List<String> tooltip = new ArrayList<String>();

  public LiquidFilter(FluidStack liquid)
  {
    if(containerTexture == null)
    {
      containerTexture = Util.instance.getTexture("liquidFilterContainer");
    }

    setLiquid(liquid);
  }

  public void setLiquid(FluidStack liquid)
  {
    String name = liquid.getFluid().getLocalizedName();
    this.liquid = liquid;
    liquidName = name.toLowerCase();
    tooltip.clear();
    tooltip.add(name);
  }

  @Override
  public boolean matches(Object item)
  {
    if(item instanceof ItemStack)
    {
      return liquid.isFluidEqual((ItemStack)item);
    }
    else if(item instanceof FluidStack)
    {
      return liquid.isFluidEqual((FluidStack)item);
    }
    else if(item instanceof String)
    {
      return liquidName.contains(((String)item).toLowerCase());
    }
    else if(item instanceof List)
    {
      for(Object object: ((List)item))
      {
        if(matches(object))
        {
          return true;
        }
      }
    }

    return false;
  }

  @Override
  public void draw(Renderer renderer, int x, int y)
  {
    if(liquid != null)
    {
      TextureManager textureManager = Minecraft.getMinecraft().getTextureManager();

      Fluid fluid = liquid.getFluid();
      IIcon icon = fluid.getStillIcon();

      if(icon != null)
      {
        textureManager.bindTexture(TextureMap.locationBlocksTexture);

                double u = icon.getInterpolatedU(3.0);
                double u2 = icon.getInterpolatedU(13.0);
                double v = icon.getInterpolatedV(1.0);
                double v2 = icon.getInterpolatedV(15.0);

                GL11.glEnable(GL11.GL_TEXTURE_2D);
                GL11.glColor4d(1.0, 1.0, 1.0, 1.0);

            GL11.glBegin(GL11.GL_QUADS);
                  GL11.glTexCoord2d(u, v);
                  GL11.glVertex2i(x + 3, y + 1);

                  GL11.glTexCoord2d(u, v2);
                  GL11.glVertex2i(x + 3, y + 15);

                  GL11.glTexCoord2d(u2, v2);
                  GL11.glVertex2i(x + 13, y + 15);

                  GL11.glTexCoord2d(u2, v);
                  GL11.glVertex2i(x + 13, y + 1);
            GL11.glEnd();
      }
    }

    renderer.renderRect(x - 1, y - 1, 18, 18, containerTexture);
  }

  @Override
  public List<String> getTooltip()
  {
    return tooltip;
  }
}
TOP

Related Classes of uristqwerty.CraftGuide.api.LiquidFilter

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.