From e11087bee6581a266d6f583a6b32ab0257e66122 Mon Sep 17 00:00:00 2001 From: 245tt Date: Mon, 22 Jan 2024 00:01:27 +0100 Subject: [PATCH 1/2] the --- .../java/com/hbm/inventory/gui/GUIAnvil.java | 44 ++++++++++++++++--- .../gui/GUIScreenTemplateFolder.java | 1 + 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index 6f8ef4a10..024905dd8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -44,6 +44,7 @@ public class GUIAnvil extends GuiContainer { int size; int selection; private GuiTextField search; + private InventoryPlayer playerInventory; public GUIAnvil(InventoryPlayer player, int tier) { super(new ContainerAnvil(player, tier)); @@ -51,7 +52,8 @@ public class GUIAnvil extends GuiContainer { this.tier = tier; this.xSize = 176; this.ySize = 222; - + + this.playerInventory = player; for(AnvilConstructionRecipe recipe : AnvilRecipes.getConstruction()) { if(recipe.isTierValid(this.tier)) this.originList.add(recipe); @@ -243,7 +245,7 @@ public class GUIAnvil extends GuiContainer { if(this.selection >= 0) { AnvilConstructionRecipe recipe = recipes.get(this.selection); - List list = recipeToList(recipe); + List list = recipeToList(recipe,playerInventory); int longest = 0; for(String s : list) { @@ -274,7 +276,7 @@ public class GUIAnvil extends GuiContainer { * @param recipe * @return */ - public List recipeToList(AnvilConstructionRecipe recipe) { + public List recipeToList(AnvilConstructionRecipe recipe,InventoryPlayer inventory) { List list = new ArrayList(); @@ -283,16 +285,44 @@ public class GUIAnvil extends GuiContainer { for(AStack stack : recipe.input) { if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); - list.add(">" + input.stackSize + "x " + input.getDisplayName()); - + boolean hasItem = false; + for (int i = 0; i < inventory.mainInventory.length; i++) { + ItemStack stackItem = inventory.mainInventory[i]; + if(stackItem == null) + { + continue; + } + if (stackItem.getItem() == input.getItem() && stackItem.stackSize >= stack.stacksize) { + hasItem = true; + } + } + if(hasItem) { + list.add(">" + input.stackSize + "x " + input.getDisplayName()); + }else { + list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName()); + } } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; ArrayList ores = OreDictionary.getOres(input.name); if(ores.size() > 0) { ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); - list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); - + boolean hasItem = false; + for (int i = 0; i < inventory.mainInventory.length; i++) { + ItemStack stackItem = inventory.mainInventory[i]; + if(stackItem == null) + { + continue; + } + if (stackItem.getItem() == inStack.getItem() && stackItem.stackSize >= stack.stacksize) { + hasItem = true; + } + } + if (hasItem) { + list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); + } else { + list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + inStack.getDisplayName()); + } } else { list.add("I AM ERROR"); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index a563eb732..06e2d2e70 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -186,6 +186,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { this.search.setDisabledTextColour(0xffffff); this.search.setEnableBackgroundDrawing(false); this.search.setMaxStringLength(100); + this.search.setFocused(true); } @Override From 3d345de4d53fd4d61c6331144dd33d090371b75b Mon Sep 17 00:00:00 2001 From: 245tt Date: Mon, 22 Jan 2024 10:08:41 +0100 Subject: [PATCH 2/2] the 2 --- src/main/java/com/hbm/inventory/gui/GUIAnvil.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index 024905dd8..253dad133 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -286,17 +286,19 @@ public class GUIAnvil extends GuiContainer { if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); boolean hasItem = false; + int amount =0; for (int i = 0; i < inventory.mainInventory.length; i++) { ItemStack stackItem = inventory.mainInventory[i]; if(stackItem == null) { continue; } - if (stackItem.getItem() == input.getItem() && stackItem.stackSize >= stack.stacksize) { + if (stackItem.getItem() == input.getItem() && input.getItemDamage() == stackItem.getItemDamage()) { hasItem = true; + amount +=stackItem.stackSize; } } - if(hasItem) { + if(hasItem && amount >= stack.stacksize) { list.add(">" + input.stackSize + "x " + input.getDisplayName()); }else { list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName()); @@ -308,17 +310,19 @@ public class GUIAnvil extends GuiContainer { if(ores.size() > 0) { ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); boolean hasItem = false; + int amount =0; for (int i = 0; i < inventory.mainInventory.length; i++) { ItemStack stackItem = inventory.mainInventory[i]; if(stackItem == null) { continue; } - if (stackItem.getItem() == inStack.getItem() && stackItem.stackSize >= stack.stacksize) { + if (stackItem.getItem() == inStack.getItem() && inStack.getItemDamage() == stackItem.getItemDamage()) { hasItem = true; + amount += stackItem.stackSize; } } - if (hasItem) { + if (hasItem && amount >= stack.stacksize) { list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); } else { list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + inStack.getDisplayName());