package net.minecraft.client.gui;
import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.util.IntHashMap;
public class GuiPageButtonList extends GuiListExtended
{
private final List field_178074_u = Lists.newArrayList();
private final IntHashMap field_178073_v = new IntHashMap();
private final List field_178072_w = Lists.newArrayList();
private final GuiPageButtonList.GuiListEntry[][] field_178078_x;
private int field_178077_y;
private GuiPageButtonList.GuiResponder field_178076_z;
private Gui field_178075_A;
private static final String __OBFID = "CL_00001950";
public GuiPageButtonList(Minecraft mcIn, int p_i45536_2_, int p_i45536_3_, int p_i45536_4_, int p_i45536_5_, int p_i45536_6_, GuiPageButtonList.GuiResponder p_i45536_7_, GuiPageButtonList.GuiListEntry[] ... p_i45536_8_)
{
super(mcIn, p_i45536_2_, p_i45536_3_, p_i45536_4_, p_i45536_5_, p_i45536_6_);
this.field_178076_z = p_i45536_7_;
this.field_178078_x = p_i45536_8_;
this.field_148163_i = false;
this.func_178069_s();
this.func_178055_t();
}
private void func_178069_s()
{
GuiPageButtonList.GuiListEntry[][] var1 = this.field_178078_x;
int var2 = var1.length;
for (int var3 = 0; var3 < var2; ++var3)
{
GuiPageButtonList.GuiListEntry[] var4 = var1[var3];
for (int var5 = 0; var5 < var4.length; var5 += 2)
{
GuiPageButtonList.GuiListEntry var6 = var4[var5];
GuiPageButtonList.GuiListEntry var7 = var5 < var4.length - 1 ? var4[var5 + 1] : null;
Gui var8 = this.func_178058_a(var6, 0, var7 == null);
Gui var9 = this.func_178058_a(var7, 160, var6 == null);
GuiPageButtonList.GuiEntry var10 = new GuiPageButtonList.GuiEntry(var8, var9);
this.field_178074_u.add(var10);
if (var6 != null && var8 != null)
{
this.field_178073_v.addKey(var6.func_178935_b(), var8);
if (var8 instanceof GuiTextField)
{
this.field_178072_w.add((GuiTextField)var8);
}
}
if (var7 != null && var9 != null)
{
this.field_178073_v.addKey(var7.func_178935_b(), var9);
if (var9 instanceof GuiTextField)
{
this.field_178072_w.add((GuiTextField)var9);
}
}
}
}
}
private void func_178055_t()
{
this.field_178074_u.clear();
for (int var1 = 0; var1 < this.field_178078_x[this.field_178077_y].length; var1 += 2)
{
GuiPageButtonList.GuiListEntry var2 = this.field_178078_x[this.field_178077_y][var1];
GuiPageButtonList.GuiListEntry var3 = var1 < this.field_178078_x[this.field_178077_y].length - 1 ? this.field_178078_x[this.field_178077_y][var1 + 1] : null;
Gui var4 = (Gui)this.field_178073_v.lookup(var2.func_178935_b());
Gui var5 = var3 != null ? (Gui)this.field_178073_v.lookup(var3.func_178935_b()) : null;
GuiPageButtonList.GuiEntry var6 = new GuiPageButtonList.GuiEntry(var4, var5);
this.field_178074_u.add(var6);
}
}
public int func_178059_e()
{
return this.field_178077_y;
}
public int func_178057_f()
{
return this.field_178078_x.length;
}
public Gui func_178056_g()
{
return this.field_178075_A;
}
public void func_178071_h()
{
if (this.field_178077_y > 0)
{
int var1 = this.field_178077_y--;
this.func_178055_t();
this.func_178060_e(var1, this.field_178077_y);
this.amountScrolled = 0.0F;
}
}
public void func_178064_i()
{
if (this.field_178077_y < this.field_178078_x.length - 1)
{
int var1 = this.field_178077_y++;
this.func_178055_t();
this.func_178060_e(var1, this.field_178077_y);
this.amountScrolled = 0.0F;
}
}
public Gui func_178061_c(int p_178061_1_)
{
return (Gui)this.field_178073_v.lookup(p_178061_1_);
}
private void func_178060_e(int p_178060_1_, int p_178060_2_)
{
GuiPageButtonList.GuiListEntry[] var3 = this.field_178078_x[p_178060_1_];
int var4 = var3.length;
int var5;
GuiPageButtonList.GuiListEntry var6;
for (var5 = 0; var5 < var4; ++var5)
{
var6 = var3[var5];
if (var6 != null)
{
this.func_178066_a((Gui)this.field_178073_v.lookup(var6.func_178935_b()), false);
}
}
var3 = this.field_178078_x[p_178060_2_];
var4 = var3.length;
for (var5 = 0; var5 < var4; ++var5)
{
var6 = var3[var5];
if (var6 != null)
{
this.func_178066_a((Gui)this.field_178073_v.lookup(var6.func_178935_b()), true);
}
}
}
private void func_178066_a(Gui p_178066_1_, boolean p_178066_2_)
{
if (p_178066_1_ instanceof GuiButton)
{
((GuiButton)p_178066_1_).visible = p_178066_2_;
}
else if (p_178066_1_ instanceof GuiTextField)
{
((GuiTextField)p_178066_1_).setVisible(p_178066_2_);
}
else if (p_178066_1_ instanceof GuiLabel)
{
((GuiLabel)p_178066_1_).visible = p_178066_2_;
}
}
private Gui func_178058_a(GuiPageButtonList.GuiListEntry p_178058_1_, int p_178058_2_, boolean p_178058_3_)
{
return (Gui)(p_178058_1_ instanceof GuiPageButtonList.GuiSlideEntry ? this.func_178067_a(this.width / 2 - 155 + p_178058_2_, 0, (GuiPageButtonList.GuiSlideEntry)p_178058_1_) : (p_178058_1_ instanceof GuiPageButtonList.GuiButtonEntry ? this.func_178065_a(this.width / 2 - 155 + p_178058_2_, 0, (GuiPageButtonList.GuiButtonEntry)p_178058_1_) : (p_178058_1_ instanceof GuiPageButtonList.EditBoxEntry ? this.func_178068_a(this.width / 2 - 155 + p_178058_2_, 0, (GuiPageButtonList.EditBoxEntry)p_178058_1_) : (p_178058_1_ instanceof GuiPageButtonList.GuiLabelEntry ? this.func_178063_a(this.width / 2 - 155 + p_178058_2_, 0, (GuiPageButtonList.GuiLabelEntry)p_178058_1_, p_178058_3_) : null))));
}
public boolean func_148179_a(int p_148179_1_, int p_148179_2_, int p_148179_3_)
{
boolean var4 = super.func_148179_a(p_148179_1_, p_148179_2_, p_148179_3_);
int var5 = this.getSlotIndexFromScreenCoords(p_148179_1_, p_148179_2_);
if (var5 >= 0)
{
GuiPageButtonList.GuiEntry var6 = this.func_178070_d(var5);
if (this.field_178075_A != var6.field_178028_d && this.field_178075_A != null && this.field_178075_A instanceof GuiTextField)
{
((GuiTextField)this.field_178075_A).setFocused(false);
}
this.field_178075_A = var6.field_178028_d;
}
return var4;
}
private GuiSlider func_178067_a(int p_178067_1_, int p_178067_2_, GuiPageButtonList.GuiSlideEntry p_178067_3_)
{
GuiSlider var4 = new GuiSlider(this.field_178076_z, p_178067_3_.func_178935_b(), p_178067_1_, p_178067_2_, p_178067_3_.func_178936_c(), p_178067_3_.func_178943_e(), p_178067_3_.func_178944_f(), p_178067_3_.func_178942_g(), p_178067_3_.func_178945_a());
var4.visible = p_178067_3_.func_178934_d();
return var4;
}
private GuiListButton func_178065_a(int p_178065_1_, int p_178065_2_, GuiPageButtonList.GuiButtonEntry p_178065_3_)
{
GuiListButton var4 = new GuiListButton(this.field_178076_z, p_178065_3_.func_178935_b(), p_178065_1_, p_178065_2_, p_178065_3_.func_178936_c(), p_178065_3_.func_178940_a());
var4.visible = p_178065_3_.func_178934_d();
return var4;
}
private GuiTextField func_178068_a(int p_178068_1_, int p_178068_2_, GuiPageButtonList.EditBoxEntry p_178068_3_)
{
GuiTextField var4 = new GuiTextField(p_178068_3_.func_178935_b(), this.mc.fontRendererObj, p_178068_1_, p_178068_2_, 150, 20);
var4.setText(p_178068_3_.func_178936_c());
var4.func_175207_a(this.field_178076_z);
var4.setVisible(p_178068_3_.func_178934_d());
var4.func_175205_a(p_178068_3_.func_178950_a());
return var4;
}
private GuiLabel func_178063_a(int p_178063_1_, int p_178063_2_, GuiPageButtonList.GuiLabelEntry p_178063_3_, boolean p_178063_4_)
{
GuiLabel var5;
if (p_178063_4_)
{
var5 = new GuiLabel(this.mc.fontRendererObj, p_178063_3_.func_178935_b(), p_178063_1_, p_178063_2_, this.width - p_178063_1_ * 2, 20, -1);
}
else
{
var5 = new GuiLabel(this.mc.fontRendererObj, p_178063_3_.func_178935_b(), p_178063_1_, p_178063_2_, 150, 20, -1);
}
var5.visible = p_178063_3_.func_178934_d();
var5.func_175202_a(p_178063_3_.func_178936_c());
var5.func_175203_a();
return var5;
}
public void func_178062_a(char p_178062_1_, int p_178062_2_)
{
if (this.field_178075_A instanceof GuiTextField)
{
GuiTextField var3 = (GuiTextField)this.field_178075_A;
int var6;
if (!GuiScreen.func_175279_e(p_178062_2_))
{
if (p_178062_2_ == 15)
{
var3.setFocused(false);
int var12 = this.field_178072_w.indexOf(this.field_178075_A);
if (GuiScreen.isShiftKeyDown())
{
if (var12 == 0)
{
var12 = this.field_178072_w.size() - 1;
}
else
{
--var12;
}
}
else if (var12 == this.field_178072_w.size() - 1)
{
var12 = 0;
}
else
{
++var12;
}
this.field_178075_A = (Gui)this.field_178072_w.get(var12);
var3 = (GuiTextField)this.field_178075_A;
var3.setFocused(true);
int var13 = var3.yPosition + this.slotHeight;
var6 = var3.yPosition;
if (var13 > this.bottom)
{
this.amountScrolled += (float)(var13 - this.bottom);
}
else if (var6 < this.top)
{
this.amountScrolled = (float)var6;
}
}
else
{
var3.textboxKeyTyped(p_178062_1_, p_178062_2_);
}
}
else
{
String var4 = GuiScreen.getClipboardString();
String[] var5 = var4.split(";");
var6 = this.field_178072_w.indexOf(this.field_178075_A);
int var7 = var6;
String[] var8 = var5;
int var9 = var5.length;
for (int var10 = 0; var10 < var9; ++var10)
{
String var11 = var8[var10];
((GuiTextField)this.field_178072_w.get(var7)).setText(var11);
if (var7 == this.field_178072_w.size() - 1)
{
var7 = 0;
}
else
{
++var7;
}
if (var7 == var6)
{
break;
}
}
}
}
}
public GuiPageButtonList.GuiEntry func_178070_d(int p_178070_1_)
{
return (GuiPageButtonList.GuiEntry)this.field_178074_u.get(p_178070_1_);
}
public int getSize()
{
return this.field_178074_u.size();
}
/**
* Gets the width of the list
*/
public int getListWidth()
{
return 400;
}
protected int getScrollBarX()
{
return super.getScrollBarX() + 32;
}
/**
* Gets the IGuiListEntry object for the given index
*/
public GuiListExtended.IGuiListEntry getListEntry(int p_148180_1_)
{
return this.func_178070_d(p_148180_1_);
}
public static class EditBoxEntry extends GuiPageButtonList.GuiListEntry
{
private final Predicate field_178951_a;
private static final String __OBFID = "CL_00001948";
public EditBoxEntry(int p_i45534_1_, String p_i45534_2_, boolean p_i45534_3_, Predicate p_i45534_4_)
{
super(p_i45534_1_, p_i45534_2_, p_i45534_3_);
this.field_178951_a = (Predicate)Objects.firstNonNull(p_i45534_4_, Predicates.alwaysTrue());
}
public Predicate func_178950_a()
{
return this.field_178951_a;
}
}
public static class GuiButtonEntry extends GuiPageButtonList.GuiListEntry
{
private final boolean field_178941_a;
private static final String __OBFID = "CL_00001949";
public GuiButtonEntry(int p_i45535_1_, String p_i45535_2_, boolean p_i45535_3_, boolean p_i45535_4_)
{
super(p_i45535_1_, p_i45535_2_, p_i45535_3_);
this.field_178941_a = p_i45535_4_;
}
public boolean func_178940_a()
{
return this.field_178941_a;
}
}
public static class GuiEntry implements GuiListExtended.IGuiListEntry
{
private final Minecraft field_178031_a = Minecraft.getMinecraft();
private final Gui field_178029_b;
private final Gui field_178030_c;
private Gui field_178028_d;
private static final String __OBFID = "CL_00001947";
public GuiEntry(Gui p_i45533_1_, Gui p_i45533_2_)
{
this.field_178029_b = p_i45533_1_;
this.field_178030_c = p_i45533_2_;
}
public Gui func_178022_a()
{
return this.field_178029_b;
}
public Gui func_178021_b()
{
return this.field_178030_c;
}
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
{
this.func_178017_a(this.field_178029_b, y, mouseX, mouseY, false);
this.func_178017_a(this.field_178030_c, y, mouseX, mouseY, false);
}
private void func_178017_a(Gui p_178017_1_, int p_178017_2_, int p_178017_3_, int p_178017_4_, boolean p_178017_5_)
{
if (p_178017_1_ != null)
{
if (p_178017_1_ instanceof GuiButton)
{
this.func_178024_a((GuiButton)p_178017_1_, p_178017_2_, p_178017_3_, p_178017_4_, p_178017_5_);
}
else if (p_178017_1_ instanceof GuiTextField)
{
this.func_178027_a((GuiTextField)p_178017_1_, p_178017_2_, p_178017_5_);
}
else if (p_178017_1_ instanceof GuiLabel)
{
this.func_178025_a((GuiLabel)p_178017_1_, p_178017_2_, p_178017_3_, p_178017_4_, p_178017_5_);
}
}
}
private void func_178024_a(GuiButton p_178024_1_, int p_178024_2_, int p_178024_3_, int p_178024_4_, boolean p_178024_5_)
{
p_178024_1_.yPosition = p_178024_2_;
if (!p_178024_5_)
{
p_178024_1_.drawButton(this.field_178031_a, p_178024_3_, p_178024_4_);
}
}
private void func_178027_a(GuiTextField p_178027_1_, int p_178027_2_, boolean p_178027_3_)
{
p_178027_1_.yPosition = p_178027_2_;
if (!p_178027_3_)
{
p_178027_1_.drawTextBox();
}
}
private void func_178025_a(GuiLabel p_178025_1_, int p_178025_2_, int p_178025_3_, int p_178025_4_, boolean p_178025_5_)
{
p_178025_1_.field_146174_h = p_178025_2_;
if (!p_178025_5_)
{
p_178025_1_.drawLabel(this.field_178031_a, p_178025_3_, p_178025_4_);
}
}
public void setSelected(int p_178011_1_, int p_178011_2_, int p_178011_3_)
{
this.func_178017_a(this.field_178029_b, p_178011_3_, 0, 0, true);
this.func_178017_a(this.field_178030_c, p_178011_3_, 0, 0, true);
}
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_)
{
boolean var7 = this.func_178026_a(this.field_178029_b, p_148278_2_, p_148278_3_, p_148278_4_);
boolean var8 = this.func_178026_a(this.field_178030_c, p_148278_2_, p_148278_3_, p_148278_4_);
return var7 || var8;
}
private boolean func_178026_a(Gui p_178026_1_, int p_178026_2_, int p_178026_3_, int p_178026_4_)
{
if (p_178026_1_ == null)
{
return false;
}
else if (p_178026_1_ instanceof GuiButton)
{
return this.func_178023_a((GuiButton)p_178026_1_, p_178026_2_, p_178026_3_, p_178026_4_);
}
else
{
if (p_178026_1_ instanceof GuiTextField)
{
this.func_178018_a((GuiTextField)p_178026_1_, p_178026_2_, p_178026_3_, p_178026_4_);
}
return false;
}
}
private boolean func_178023_a(GuiButton p_178023_1_, int p_178023_2_, int p_178023_3_, int p_178023_4_)
{
boolean var5 = p_178023_1_.mousePressed(this.field_178031_a, p_178023_2_, p_178023_3_);
if (var5)
{
this.field_178028_d = p_178023_1_;
}
return var5;
}
private void func_178018_a(GuiTextField p_178018_1_, int p_178018_2_, int p_178018_3_, int p_178018_4_)
{
p_178018_1_.mouseClicked(p_178018_2_, p_178018_3_, p_178018_4_);
if (p_178018_1_.isFocused())
{
this.field_178028_d = p_178018_1_;
}
}
public void mouseReleased(int slotIndex, int x, int y, int mouseEvent, int relativeX, int relativeY)
{
this.func_178016_b(this.field_178029_b, x, y, mouseEvent);
this.func_178016_b(this.field_178030_c, x, y, mouseEvent);
}
private void func_178016_b(Gui p_178016_1_, int p_178016_2_, int p_178016_3_, int p_178016_4_)
{
if (p_178016_1_ != null)
{
if (p_178016_1_ instanceof GuiButton)
{
this.func_178019_b((GuiButton)p_178016_1_, p_178016_2_, p_178016_3_, p_178016_4_);
}
}
}
private void func_178019_b(GuiButton p_178019_1_, int p_178019_2_, int p_178019_3_, int p_178019_4_)
{
p_178019_1_.mouseReleased(p_178019_2_, p_178019_3_);
}
}
public static class GuiLabelEntry extends GuiPageButtonList.GuiListEntry
{
private static final String __OBFID = "CL_00001946";
public GuiLabelEntry(int p_i45532_1_, String p_i45532_2_, boolean p_i45532_3_)
{
super(p_i45532_1_, p_i45532_2_, p_i45532_3_);
}
}
public static class GuiListEntry
{
private final int field_178939_a;
private final String field_178937_b;
private final boolean field_178938_c;
private static final String __OBFID = "CL_00001945";
public GuiListEntry(int p_i45531_1_, String p_i45531_2_, boolean p_i45531_3_)
{
this.field_178939_a = p_i45531_1_;
this.field_178937_b = p_i45531_2_;
this.field_178938_c = p_i45531_3_;
}
public int func_178935_b()
{
return this.field_178939_a;
}
public String func_178936_c()
{
return this.field_178937_b;
}
public boolean func_178934_d()
{
return this.field_178938_c;
}
}
public interface GuiResponder
{
void func_175321_a(int p_175321_1_, boolean p_175321_2_);
void func_175320_a(int p_175320_1_, float p_175320_2_);
void func_175319_a(int p_175319_1_, String p_175319_2_);
}
public static class GuiSlideEntry extends GuiPageButtonList.GuiListEntry
{
private final GuiSlider.FormatHelper field_178949_a;
private final float field_178947_b;
private final float field_178948_c;
private final float field_178946_d;
private static final String __OBFID = "CL_00001944";
public GuiSlideEntry(int p_i45530_1_, String p_i45530_2_, boolean p_i45530_3_, GuiSlider.FormatHelper p_i45530_4_, float p_i45530_5_, float p_i45530_6_, float p_i45530_7_)
{
super(p_i45530_1_, p_i45530_2_, p_i45530_3_);
this.field_178949_a = p_i45530_4_;
this.field_178947_b = p_i45530_5_;
this.field_178948_c = p_i45530_6_;
this.field_178946_d = p_i45530_7_;
}
public GuiSlider.FormatHelper func_178945_a()
{
return this.field_178949_a;
}
public float func_178943_e()
{
return this.field_178947_b;
}
public float func_178944_f()
{
return this.field_178948_c;
}
public float func_178942_g()
{
return this.field_178946_d;
}
}
}