package advancedsystemsmanager.compatibility.thaumcraft.menus; import advancedsystemsmanager.client.gui.GuiManager; import advancedsystemsmanager.compatibility.thaumcraft.TCCompat; import advancedsystemsmanager.flow.FlowComponent; import advancedsystemsmanager.flow.menus.MenuStuff; import advancedsystemsmanager.compatibility.thaumcraft.setting.AspectSetting; import advancedsystemsmanager.flow.setting.Setting; import advancedsystemsmanager.network.ASMPacket; import advancedsystemsmanager.reference.Names; import thaumcraft.api.aspects.Aspect; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.regex.Pattern; public class MenuAspect extends MenuStuff<Aspect> { public MenuAspect(FlowComponent parent) { this(parent, true); } public MenuAspect(FlowComponent parent, boolean whitelist) { super(parent); setFirstRadioButtonSelected(whitelist); } @Override public Setting<Aspect> getSetting(int id) { return new AspectSetting(id); } @Override public List<Aspect> updateSearch(String search, boolean showAll) { List<Aspect> aspects = new ArrayList<Aspect>(); aspects.addAll(Aspect.getPrimalAspects()); aspects.addAll(Aspect.getCompoundAspects()); if (!showAll) { Iterator<Aspect> itr = aspects.iterator(); Pattern pattern = Pattern.compile(search, Pattern.CASE_INSENSITIVE); while (itr.hasNext()) { Aspect aspect = itr.next(); if (!pattern.matcher(aspect.getName()).find()) itr.remove(); } } return aspects; } @Override public void drawResultObject(GuiManager gui, Aspect obj, int x, int y) { TCCompat.drawAspect(gui, obj, x, y); } @Override public List<String> getResultObjectMouseOver(Aspect obj) { ArrayList<String> ret = new ArrayList<String>(); ret.add(obj.getName()); return ret; } @Override public void updateTextBoxes() { } @Override public void drawSettingObject(GuiManager gui, Setting<Aspect> setting, int x, int y) { drawResultObject(gui, setting.getContent(), x, y); } @Override public List<String> getSettingObjectMouseOver(Setting<Aspect> setting) { return getResultObjectMouseOver(setting.getContent()); } @Override protected boolean readSpecificData(ASMPacket packet, int action, Setting<Aspect> setting) { return false; } @Override public void drawInfoMenuContent(GuiManager gui, int mX, int mY) { } @Override public String getName() { return Names.ASPECTS_MENU; } }