package net.minecraft.client.resources;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiListExtended;
import net.minecraft.client.gui.GuiScreenResourcePacks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;

@SideOnly(Side.CLIENT)
public abstract class ResourcePackListEntry implements GuiListExtended.IGuiListEntry
{
	private static final ResourceLocation field_148316_c = new ResourceLocation("textures/gui/resource_packs.png");
	protected final Minecraft field_148317_a;
	protected final GuiScreenResourcePacks field_148315_b;
	private static final String __OBFID = "CL_00000821";

	public ResourcePackListEntry(GuiScreenResourcePacks p_i45051_1_)
	{
		this.field_148315_b = p_i45051_1_;
		this.field_148317_a = Minecraft.getMinecraft();
	}

	public void drawEntry(int p_148279_1_, int p_148279_2_, int p_148279_3_, int p_148279_4_, int p_148279_5_, Tessellator p_148279_6_, int p_148279_7_, int p_148279_8_, boolean p_148279_9_)
	{
		this.func_148313_c();
		GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
		Gui.func_146110_a(p_148279_2_, p_148279_3_, 0.0F, 0.0F, 32, 32, 32.0F, 32.0F);
		int i2;

		if ((this.field_148317_a.gameSettings.touchscreen || p_148279_9_) && this.func_148310_d())
		{
			this.field_148317_a.getTextureManager().bindTexture(field_148316_c);
			Gui.drawRect(p_148279_2_, p_148279_3_, p_148279_2_ + 32, p_148279_3_ + 32, -1601138544);
			GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
			int l1 = p_148279_7_ - p_148279_2_;
			i2 = p_148279_8_ - p_148279_3_;

			if (this.func_148309_e())
			{
				if (l1 < 32)
				{
					Gui.func_146110_a(p_148279_2_, p_148279_3_, 0.0F, 32.0F, 32, 32, 256.0F, 256.0F);
				}
				else
				{
					Gui.func_146110_a(p_148279_2_, p_148279_3_, 0.0F, 0.0F, 32, 32, 256.0F, 256.0F);
				}
			}
			else
			{
				if (this.func_148308_f())
				{
					if (l1 < 16)
					{
						Gui.func_146110_a(p_148279_2_, p_148279_3_, 32.0F, 32.0F, 32, 32, 256.0F, 256.0F);
					}
					else
					{
						Gui.func_146110_a(p_148279_2_, p_148279_3_, 32.0F, 0.0F, 32, 32, 256.0F, 256.0F);
					}
				}

				if (this.func_148314_g())
				{
					if (l1 < 32 && l1 > 16 && i2 < 16)
					{
						Gui.func_146110_a(p_148279_2_, p_148279_3_, 96.0F, 32.0F, 32, 32, 256.0F, 256.0F);
					}
					else
					{
						Gui.func_146110_a(p_148279_2_, p_148279_3_, 96.0F, 0.0F, 32, 32, 256.0F, 256.0F);
					}
				}

				if (this.func_148307_h())
				{
					if (l1 < 32 && l1 > 16 && i2 > 16)
					{
						Gui.func_146110_a(p_148279_2_, p_148279_3_, 64.0F, 32.0F, 32, 32, 256.0F, 256.0F);
					}
					else
					{
						Gui.func_146110_a(p_148279_2_, p_148279_3_, 64.0F, 0.0F, 32, 32, 256.0F, 256.0F);
					}
				}
			}
		}

		String s = this.func_148312_b();
		i2 = this.field_148317_a.fontRenderer.getStringWidth(s);

		if (i2 > 157)
		{
			s = this.field_148317_a.fontRenderer.trimStringToWidth(s, 157 - this.field_148317_a.fontRenderer.getStringWidth("...")) + "...";
		}

		this.field_148317_a.fontRenderer.drawStringWithShadow(s, p_148279_2_ + 32 + 2, p_148279_3_ + 1, 16777215);
		List list = this.field_148317_a.fontRenderer.listFormattedStringToWidth(this.func_148311_a(), 157);

		for (int j2 = 0; j2 < 2 && j2 < list.size(); ++j2)
		{
			this.field_148317_a.fontRenderer.drawStringWithShadow((String)list.get(j2), p_148279_2_ + 32 + 2, p_148279_3_ + 12 + 10 * j2, 8421504);
		}
	}

	protected abstract String func_148311_a();

	protected abstract String func_148312_b();

	protected abstract void func_148313_c();

	protected boolean func_148310_d()
	{
		return true;
	}

	protected boolean func_148309_e()
	{
		return !this.field_148315_b.func_146961_a(this);
	}

	protected boolean func_148308_f()
	{
		return this.field_148315_b.func_146961_a(this);
	}

	protected boolean func_148314_g()
	{
		List list = this.field_148315_b.func_146962_b(this);
		int i = list.indexOf(this);
		return i > 0 && ((ResourcePackListEntry)list.get(i - 1)).func_148310_d();
	}

	protected boolean func_148307_h()
	{
		List list = this.field_148315_b.func_146962_b(this);
		int i = list.indexOf(this);
		return i >= 0 && i < list.size() - 1 && ((ResourcePackListEntry)list.get(i + 1)).func_148310_d();
	}

	public boolean mousePressed(int p_148278_1_, int p_148278_2_, int p_148278_3_, int p_148278_4_, int p_148278_5_, int p_148278_6_)
	{
		if (this.func_148310_d() && p_148278_5_ <= 32)
		{
			if (this.func_148309_e())
			{
				this.field_148315_b.func_146962_b(this).remove(this);
				this.field_148315_b.func_146963_h().add(0, this);
				return true;
			}

			if (p_148278_5_ < 16 && this.func_148308_f())
			{
				this.field_148315_b.func_146962_b(this).remove(this);
				this.field_148315_b.func_146964_g().add(0, this);
				return true;
			}

			List list;
			int k1;

			if (p_148278_5_ > 16 && p_148278_6_ < 16 && this.func_148314_g())
			{
				list = this.field_148315_b.func_146962_b(this);
				k1 = list.indexOf(this);
				list.remove(this);
				list.add(k1 - 1, this);
				return true;
			}

			if (p_148278_5_ > 16 && p_148278_6_ > 16 && this.func_148307_h())
			{
				list = this.field_148315_b.func_146962_b(this);
				k1 = list.indexOf(this);
				list.remove(this);
				list.add(k1 + 1, this);
				return true;
			}
		}

		return false;
	}

	public void mouseReleased(int p_148277_1_, int p_148277_2_, int p_148277_3_, int p_148277_4_, int p_148277_5_, int p_148277_6_) {}
}