mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-13 21:54:08 +00:00
Add Search to NPC Cloner Tags and Remove useless NPC parameter
This commit is contained in:
1 parent
aced231b55
commit
6914f670bd
2 files changed
+46
-19
No files matched your search
@@ -88,7 +88,7 @@ public class GuiNpcMobSpawnerAdd extends GuiNPCInterface implements GuiYesNoCall
|
||||
}
|
||||
if (id == 5) {
|
||||
if(toClone instanceof EntityNPCInterface){
|
||||
this.setSubGui(new SubGuiClonerNPCTags((EntityNPCInterface) toClone));
|
||||
this.setSubGui(new SubGuiClonerNPCTags());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,18 +12,18 @@ import noppes.npcs.entity.EntityNPCInterface;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
|
||||
public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,IScrollData,ICustomScrollListener {
|
||||
private final EntityNPCInterface npc;
|
||||
private GuiCustomScroll scrollTags;
|
||||
private GuiCustomScroll npcTags;
|
||||
private HashMap<String,Integer> data = new HashMap<>();
|
||||
private final ArrayList<String> allTags = new ArrayList<>();
|
||||
private final ArrayList<String> tagNames = new ArrayList<>();
|
||||
private String search = "";
|
||||
|
||||
public SubGuiClonerNPCTags(EntityNPCInterface npc)
|
||||
public SubGuiClonerNPCTags()
|
||||
{
|
||||
this.npc = npc;
|
||||
Client.sendData(EnumPacketServer.TagsGet);
|
||||
Client.sendData(EnumPacketServer.NpcTagsGet);
|
||||
setBackground("menubg.png");
|
||||
@@ -36,32 +36,34 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc
|
||||
{
|
||||
super.initGui();
|
||||
|
||||
addLabel(new GuiNpcLabel(1, StatCollector.translateToLocal("tags.allTags"), guiLeft + 5, guiTop + 11));
|
||||
addLabel(new GuiNpcLabel(1, StatCollector.translateToLocal("tags.allTags"), guiLeft + 10, guiTop + 11));
|
||||
if(scrollTags == null){
|
||||
scrollTags = new GuiCustomScroll(this,0);
|
||||
scrollTags.setSize(100, 180);
|
||||
scrollTags.setSize(110, 155);
|
||||
}
|
||||
scrollTags.guiLeft = guiLeft + 5;
|
||||
scrollTags.guiLeft = guiLeft + 10;
|
||||
scrollTags.guiTop = guiTop + 24;
|
||||
this.addScroll(scrollTags);
|
||||
addTextField(new GuiNpcTextField(4, this, fontRendererObj, guiLeft + 10, guiTop + 24 + 160, 110, 20, search));
|
||||
|
||||
addLabel(new GuiNpcLabel(2, StatCollector.translateToLocal("tags.selectedTags"), guiLeft + 190, guiTop + 11));
|
||||
addLabel(new GuiNpcLabel(2, StatCollector.translateToLocal("tags.selectedTags"), guiLeft + 185, guiTop + 11));
|
||||
if(npcTags == null){
|
||||
npcTags = new GuiCustomScroll(this,1);
|
||||
npcTags.setSize(100, 180);
|
||||
npcTags.setSize(110, 180);
|
||||
}
|
||||
npcTags.guiLeft = guiLeft + 190;
|
||||
npcTags.guiLeft = guiLeft + 185;
|
||||
npcTags.guiTop = guiTop + 24;
|
||||
npcTags.setList(tagNames);
|
||||
this.addScroll(npcTags);
|
||||
|
||||
addButton(new GuiNpcButton(10, guiLeft + 120, guiTop + 90, 55, 20, ">"));
|
||||
addButton(new GuiNpcButton(11, guiLeft + 120, guiTop + 112, 55, 20, "<"));
|
||||
addButton(new GuiNpcButton(66, guiLeft + 125, guiTop + 24, 55, 20, "gui.save"));
|
||||
|
||||
addButton(new GuiNpcButton(12, guiLeft + 120, guiTop + 140, 55, 20, ">>"));
|
||||
addButton(new GuiNpcButton(13, guiLeft + 120, guiTop + 162, 55, 20, "<<"));
|
||||
addButton(new GuiNpcButton(10, guiLeft + 125, guiTop + 90, 55, 20, ">"));
|
||||
addButton(new GuiNpcButton(11, guiLeft + 125, guiTop + 112, 55, 20, "<"));
|
||||
|
||||
addButton(new GuiNpcButton(12, guiLeft + 125, guiTop + 140, 55, 20, ">>"));
|
||||
addButton(new GuiNpcButton(13, guiLeft + 125, guiTop + 162, 55, 20, "<<"));
|
||||
|
||||
addButton(new GuiNpcButton(66, guiLeft + 120, guiTop + 50, 55, 20, "gui.save"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,7 +73,7 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc
|
||||
}
|
||||
if (guibutton.id == 12) {
|
||||
tagNames.clear();
|
||||
tagNames.addAll(data.keySet());
|
||||
tagNames.addAll(allTags);
|
||||
}
|
||||
if (guibutton.id == 11 && npcTags.hasSelected()) {
|
||||
tagNames.remove(npcTags.getSelected());
|
||||
@@ -88,8 +90,9 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc
|
||||
@Override
|
||||
public void setData(Vector<String> list, HashMap<String, Integer> data)
|
||||
{
|
||||
this.data = data;
|
||||
scrollTags.setList(list);
|
||||
allTags.addAll(data.keySet());
|
||||
allTags.sort(String.CASE_INSENSITIVE_ORDER);
|
||||
scrollTags.setList(allTags);
|
||||
initGui();
|
||||
}
|
||||
|
||||
@@ -118,6 +121,7 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc
|
||||
public void customScrollClicked(int i, int j, int k, GuiCustomScroll guiCustomScroll) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save() {
|
||||
NBTTagCompound tagCompound = new NBTTagCompound();
|
||||
NBTTagList tagList = new NBTTagList();
|
||||
@@ -128,6 +132,29 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc
|
||||
Client.sendData(EnumPacketServer.TagSet, tagCompound);
|
||||
}
|
||||
|
||||
public void keyTyped(char c, int i)
|
||||
{
|
||||
super.keyTyped(c, i);
|
||||
if(getTextField(4) != null){
|
||||
if(search.equals(getTextField(4).getText()))
|
||||
return;
|
||||
search = getTextField(4).getText().toLowerCase();
|
||||
scrollTags.setList(getSearchList());
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> getSearchList(){
|
||||
if(search.isEmpty()){
|
||||
return new ArrayList<String>(allTags);
|
||||
}
|
||||
List<String> list = new ArrayList<String>();
|
||||
for(String name : this.allTags){
|
||||
if(name.toLowerCase().contains(search))
|
||||
list.add(name);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
save();
|
||||
|
||||
Reference in new issue
Block a user