package codechicken.nei.api;

import codechicken.nei.PositionedStack;
import codechicken.nei.guihook.GuiContainerManager;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.inventory.Slot;
import org.lwjgl.opengl.GL11;

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

public class DefaultOverlayRenderer implements IRecipeOverlayRenderer
{
    IStackPositioner positioner;
    ArrayList<PositionedStack> ingreds;

    public DefaultOverlayRenderer(List<PositionedStack> ai, IStackPositioner positioner) {
        positioner = this.positioner = positioner;
        ingreds = new ArrayList<PositionedStack>();
        for (PositionedStack stack : ai)
            ingreds.add(stack.copy());
        ingreds = positioner.positionStacks(ingreds);
    }

    @Override
    public void renderOverlay(GuiContainerManager gui, Slot slot) {
        GlStateManager.enableBlend();
        GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);

        GuiContainerManager.setItemRenderColour(0xA0A0A0B0);
        for (PositionedStack stack : ingreds) {
            if (stack.relx == slot.xDisplayPosition && stack.rely == slot.yDisplayPosition)
                GuiContainerManager.drawItem(stack.relx, stack.rely, stack.item);
        }
        GuiContainerManager.setItemRenderColour(-1);

        GlStateManager.disableBlend();
        GlStateManager.enableLighting();
    }
}