package noppes.npcs.client.gui.util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiSlot; import net.minecraft.client.renderer.Tessellator; import java.util.*; public class GuiNPCStringSlot extends GuiSlot { private List list; /* synthetic field */ public String selected; public HashSet selectedList; private boolean multiSelect; private GuiNPCInterface parent; public int size; public GuiNPCStringSlot(Collection list,GuiNPCInterface parent,boolean multiSelect, int size) { super(Minecraft.getMinecraft(), parent.width, parent.height, 32, parent.height - 64, size); selectedList = new HashSet(); this.parent = parent; this.list = new ArrayList(list); Collections.sort(this.list,String.CASE_INSENSITIVE_ORDER); this.multiSelect = multiSelect; this.size = size; } public void setList(List list){ Collections.sort(list,String.CASE_INSENSITIVE_ORDER); this.list = list; selected = ""; } @Override protected int getSize() { return list.size(); } private long prevTime = 0; @Override protected void elementClicked(int i, boolean flag, int j, int k) { // GuiSelectWorld.onElementSelected(parentWorldGui, i); // boolean flag1 = GuiSelectWorld.getSelectedWorld(parentWorldGui) >= 0 && GuiSelectWorld.getSelectedWorld(parentWorldGui) < getSize(); // GuiSelectWorld.getSelectButton(parentWorldGui).enabled = flag1; // GuiSelectWorld.getRenameButton(parentWorldGui).enabled = flag1; // GuiSelectWorld.getDeleteButton(parentWorldGui).enabled = flag1; // if(flag && flag1) // { // parentWorldGui.selectWorld(i); // } long time = System.currentTimeMillis(); if(selected != null && selected.equals(list.get(i)) && time - prevTime < 400 ) parent.doubleClicked(); selected = list.get(i); if(selectedList.contains(selected)) selectedList.remove(selected); else selectedList.add(selected); parent.elementClicked(); prevTime = time; } @Override protected boolean isSelected(int i) { if(!multiSelect){ if(selected == null) return false; return selected.equals(list.get(i)); } else{ return selectedList.contains(list.get(i)); } } @Override protected int getContentHeight() { return list.size() * size; } @Override protected void drawBackground() { parent.drawDefaultBackground(); } @Override protected void drawSlot(int i, int j, int k, int l, Tessellator tessellator, int var6, int var7) { String s = list.get(i); //if(!parent.drawSlot(i, j, k, l, tessellator, s)) parent.drawString(parent.getFontRenderer(), s, j + 50, k + 3, 0xFFFFFF); } public void clear() { list.clear(); } }