package advancedsystemsmanager.compatibility.thaumcraft;
import advancedsystemsmanager.api.ISystemType;
import advancedsystemsmanager.client.gui.GuiBase;
import advancedsystemsmanager.client.gui.GuiManager;
import advancedsystemsmanager.compatibility.CompatBase;
import advancedsystemsmanager.compatibility.ModCompat;
import advancedsystemsmanager.compatibility.thaumcraft.commands.CommandAspectInput;
import advancedsystemsmanager.compatibility.thaumcraft.commands.CommandAspectOutput;
import advancedsystemsmanager.reference.Names;
import advancedsystemsmanager.registry.CommandRegistry;
import advancedsystemsmanager.registry.SystemTypeRegistry;
import advancedsystemsmanager.tileentities.manager.TileEntityManager;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.IAspectContainer;
import java.awt.*;
public class TCCompat extends CompatBase
{
public static ISystemType ASPECT_CONTAINER;
@Override
protected void init()
{
ASPECT_CONTAINER = SystemTypeRegistry.register(new SystemTypeRegistry.SystemType<IAspectContainer>(Names.TYPE_ASPECT, false)
{
@Override
public boolean isInstance(TileEntityManager manager, TileEntity tileEntity)
{
return tileEntity instanceof IAspectContainer;
}
});
CommandRegistry.registerCommand(new CommandAspectInput());
CommandRegistry.registerCommand(new CommandAspectOutput());
}
@Override
protected void postInit()
{
ModCompat.registerLabel(IAspectContainer.class);
}
public static void drawAspect(GuiManager gui, Aspect aspect, int x, int y)
{
GL11.glPushMatrix();
GL11.glAlphaFunc(GL11.GL_GREATER, 1 / 255F);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glPushMatrix();
GuiBase.bindTexture(aspect.getImage());
Color color = new Color(aspect.getColor());
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.setColorRGBA(color.getRed(), color.getGreen(), color.getBlue(), 230);
tessellator.addVertexWithUV(x + 1, y + 15, gui.getZLevel(), 0, 1);
tessellator.addVertexWithUV(x + 15, y + 15, gui.getZLevel(), 1, 1);
tessellator.addVertexWithUV(x + 15, y + 1, gui.getZLevel(), 1, 0);
tessellator.addVertexWithUV(x + 1, y + 1, gui.getZLevel(), 0, 0);
tessellator.draw();
GuiBase.bindTexture(gui.getComponentResource());
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_BLEND);
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
GL11.glPopMatrix();
}
}