From ff5e7de1be42e6994e1c095e307ea9cc312b5b16 Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 1 Jun 2023 12:29:16 -0400 Subject: [PATCH 1/4] Save NPC Quick Tags properly on Close --- .../java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java | 4 ++++ .../java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java | 8 +------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java index ad5cc9795..c6d0d6e1d 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java +++ b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java @@ -172,6 +172,10 @@ public class GuiNpcMobSpawnerAdd extends GuiNPCInterface implements GuiYesNoCall @Override public void subGuiClosed(SubGuiInterface subgui) { + if(subgui instanceof SubGuiClonerNPCTags){ + close(); + return; + } initGui(); } diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java b/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java index 3a7b608dd..52e69763d 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java @@ -86,6 +86,7 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc tagNames.clear(); } if (guibutton.id == 66) { + save(); close(); } initGui(); @@ -154,11 +155,4 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc } return list; } - - @Override - public void close() { - save(); - super.close(); - } - } From bf78c1be0fceaa3b4c4117cd232051e2e506d421 Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 1 Jun 2023 12:29:28 -0400 Subject: [PATCH 2/4] Display Selected Wand Tags in Cloner --- .../client/gui/SubGuiClonerQuickTags.java | 41 ++++++++++++++----- .../assets/customnpcs/lang/en_US.lang | 2 +- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiClonerQuickTags.java b/src/main/java/noppes/npcs/client/gui/SubGuiClonerQuickTags.java index fc9331318..b9e99a88e 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiClonerQuickTags.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiClonerQuickTags.java @@ -1,14 +1,9 @@ package noppes.npcs.client.gui; import net.minecraft.client.gui.GuiButton; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.util.StatCollector; -import noppes.npcs.client.Client; import noppes.npcs.client.gui.util.*; -import noppes.npcs.constants.EnumPacketServer; -import noppes.npcs.controllers.data.Tag; -import noppes.npcs.controllers.data.TagMap; +import org.lwjgl.Sys; import java.util.*; @@ -16,6 +11,7 @@ public class SubGuiClonerQuickTags extends SubGuiInterface implements IScrollDat { public GuiNpcMobSpawnerAdd parent; public GuiCustomScroll quickScroll = new GuiCustomScroll(this,0); + public GuiCustomScroll selectedScroll = new GuiCustomScroll(this,5); private static String quickSearch = ""; public SubGuiClonerQuickTags(GuiNpcMobSpawnerAdd par){ @@ -36,35 +32,60 @@ public class SubGuiClonerQuickTags extends SubGuiInterface implements IScrollDat quickScroll.setSelectedList(GuiNpcMobSpawnerAdd.addTags); this.addScroll(quickScroll); - addLabel(new GuiNpcLabel(1, StatCollector.translateToLocal("cloner.wandtags"), guiLeft + 7, guiTop + 7)); + addLabel(new GuiNpcLabel(1, StatCollector.translateToLocal("cloner.wandTags"), guiLeft + 7, guiTop + 7)); addScroll(quickScroll); addTextField(new GuiNpcTextField(2, this, fontRendererObj, guiLeft + 4, guiTop + 190, 140, 20, quickSearch)); addButton(new GuiNpcButton(10, guiLeft + 150, guiTop + 20, 120, 20, "gui.selectAll")); addButton(new GuiNpcButton(11, guiLeft + 150, guiTop + 43, 120, 20, "gui.deselectAll")); - addButton(new GuiNpcButton(66, guiLeft + 240, guiTop + 175, 60, 20, "gui.done")); + selectedScroll.clear(); + selectedScroll.setSize(145, 103); + selectedScroll.guiLeft = guiLeft + 150; + selectedScroll.guiTop = guiTop + 82; + selectedScroll.setUnselectable(); + this.addScroll(selectedScroll); - getSelected(); + addLabel(new GuiNpcLabel(3, StatCollector.translateToLocal("tags.selectedTags"), guiLeft + 153, guiTop + 68)); + addScroll(selectedScroll); + + addButton(new GuiNpcButton(66, guiLeft + 240, guiTop + 190, 60, 20, "gui.done")); + + setSelected(); + refreshSelected(); } protected void actionPerformed(GuiButton guibutton){ if (guibutton.id == 10) { GuiNpcMobSpawnerAdd.addTags = new HashSet<>(parent.allTags); quickScroll.setSelectedList(GuiNpcMobSpawnerAdd.addTags); + refreshSelected(); } if (guibutton.id == 11) { GuiNpcMobSpawnerAdd.addTags = new HashSet<>(); quickScroll.setSelectedList(GuiNpcMobSpawnerAdd.addTags); + refreshSelected(); } if (guibutton.id == 66) { close(); } } - public void getSelected(){ + @Override + public void mouseClicked(int i, int j, int k) + { + super.mouseClicked(i, j, k); + refreshSelected(); + } + + public void setSelected(){ quickScroll.setList(getQuickTags()); } + public void refreshSelected(){ + List sortedList = new ArrayList<>(new TreeSet<>(GuiNpcMobSpawnerAdd.addTags)); + selectedScroll.setList(sortedList); + } + @Override public void keyTyped(char c, int i) { diff --git a/src/main/resources/assets/customnpcs/lang/en_US.lang b/src/main/resources/assets/customnpcs/lang/en_US.lang index 4e3e8a6ff..bd2a7017d 100644 --- a/src/main/resources/assets/customnpcs/lang/en_US.lang +++ b/src/main/resources/assets/customnpcs/lang/en_US.lang @@ -410,13 +410,13 @@ cloner.tagFilters=Tag Filters cloner.tagVisibility=Tag Visibility cloner.wandTags=Wand Tags cloner.npcTags=NPC Tags +cloner.selectedTags=Selected Tags cloner.order=Sort Order cloner.ascending=Ascending cloner.descending=Descending cloner.type=Sort Type cloner.name=Name cloner.date=Date -cloner.wandtags=Wand Tags cloner.wandtagsapplied=Wand Tags will be applied tags.allTags=All Tags From f213cab2610167c9289a97bb1dd86c72e186f4e7 Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 1 Jun 2023 16:10:38 -0400 Subject: [PATCH 3/4] Add Search to Manage Banks --- .../npcs/client/gui/SubGuiClonerNPCTags.java | 2 +- .../client/gui/global/GuiNPCManageBanks.java | 34 +++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java b/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java index 52e69763d..b1c0634c8 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiClonerNPCTags.java @@ -30,8 +30,8 @@ public class SubGuiClonerNPCTags extends SubGuiInterface implements IGuiData,ISc setBackground("menubg.png"); xSize = 305; ySize = 220; - closeOnEsc = false; this.npc = npc; + closeOnEsc = false; } public void initGui() diff --git a/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageBanks.java b/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageBanks.java index c66fbc557..261480fad 100644 --- a/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageBanks.java +++ b/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageBanks.java @@ -10,7 +10,9 @@ import noppes.npcs.containers.ContainerManageBanks; import noppes.npcs.controllers.data.Bank; import noppes.npcs.entity.EntityNPCInterface; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Vector; public class GuiNPCManageBanks extends GuiContainerNPCInterface2 implements IScrollData,ICustomScrollListener,ITextfieldListener, IGuiData @@ -20,6 +22,7 @@ public class GuiNPCManageBanks extends GuiContainerNPCInterface2 implements IScr private ContainerManageBanks container; private Bank bank = new Bank(); private String selected = null; + private String search = ""; public GuiNPCManageBanks(EntityNPCInterface npc,ContainerManageBanks container) { @@ -61,6 +64,8 @@ public class GuiNPCManageBanks extends GuiContainerNPCInterface2 implements IScr addTextField(new GuiNpcTextField(2,this, this.fontRendererObj, guiLeft+10, guiTop + 110, 16, 16, "")); getTextField(2).integersOnly = true; getTextField(2).setMaxStringLength(1); + + addTextField(new GuiNpcTextField(33, this, fontRendererObj, guiLeft + 174, guiTop + 8 + 3 + 180, 160, 20, search)); } public void drawScreen(int x, int y, float f) @@ -137,12 +142,37 @@ public class GuiNPCManageBanks extends GuiContainerNPCInterface2 implements IScr } setSelected(bank.name); } - + + public void keyTyped(char c, int i) + { + super.keyTyped(c, i); + if(getTextField(33) != null){ + if(getTextField(33).isFocused()){ + if(search.equals(getTextField(33).getText())) + return; + search = getTextField(33).getText().toLowerCase(); + scroll.setList(getSearchList()); + } + } + } + + private List getSearchList(){ + if(search.isEmpty()){ + return new ArrayList(this.data.keySet()); + } + List list = new ArrayList(); + for(String name : this.data.keySet()){ + if(name.toLowerCase().contains(search)) + list.add(name); + } + return list; + } + @Override public void setData(Vector list, HashMap data) { String name = scroll.getSelected(); this.data = data; - scroll.setList(list); + scroll.setList(getSearchList()); if(name != null) scroll.setSelected(name); From 25230ba93bde0cea72a63e25c182c38089d87f6c Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 1 Jun 2023 17:14:50 -0400 Subject: [PATCH 4/4] Make Louis Mad --- .../renderer/customitem/CustomItemRenderer.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java b/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java index d59adc714..e6b84ba02 100644 --- a/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java @@ -44,15 +44,11 @@ public class CustomItemRenderer implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { - ScriptCustomItem scriptCustomItem = ItemScripted.GetWrapper(itemStack); - BufferedImage bufferedImage = ClientCacheHandler.getImageData(scriptCustomItem.texture).getBufferedImage(); - if (bufferedImage != null && (scriptCustomItem.width != bufferedImage.getWidth() || scriptCustomItem.height != bufferedImage.getHeight())) { - scriptCustomItem.width = bufferedImage.getWidth(); - scriptCustomItem.height = bufferedImage.getHeight(); - scriptCustomItem.saveItemData(); - } - if(scriptCustomItem.width < 1 || scriptCustomItem.height < 1){ + // FIX THIS LOUIS!! + ScriptCustomItem scriptCustomItem = ItemScripted.GetWrapper(itemStack); + ImageData imageData = Client.getImageData(scriptCustomItem.texture); + if (!imageData.imageLoaded()) { return; }