From 5dd7f5a8357161731775be1641bea54d12ed232e Mon Sep 17 00:00:00 2001 From: Pahimar Date: Sun, 5 Apr 2015 09:57:46 -0400 Subject: [PATCH] Working scroll bar! Oh and two new items :) --- .../gui/inventory/GuiTransmutationTablet.java | 18 ++++++++ .../java/com/pahimar/ee3/init/ModItems.java | 4 ++ .../ContainerTransmutationTablet.java | 42 ++++++++++++------ .../pahimar/ee3/item/ItemKnowledgeScroll.java | 12 +++++ .../com/pahimar/ee3/item/ItemPotionLethe.java | 12 +++++ .../pahimar/ee3/reference/Comparators.java | 10 +++++ .../java/com/pahimar/ee3/reference/Names.java | 2 + src/main/resources/assets/ee3/lang/en_US.lang | 2 + .../ee3/textures/items/knowledgeScroll.png | Bin 0 -> 17253 bytes .../assets/ee3/textures/items/potionLethe.png | Bin 0 -> 16913 bytes 10 files changed, 88 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/pahimar/ee3/item/ItemKnowledgeScroll.java create mode 100644 src/main/java/com/pahimar/ee3/item/ItemPotionLethe.java create mode 100644 src/main/java/com/pahimar/ee3/reference/Comparators.java create mode 100644 src/main/resources/assets/ee3/textures/items/knowledgeScroll.png create mode 100644 src/main/resources/assets/ee3/textures/items/potionLethe.png diff --git a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java index d60d6fd3..f6a8b27f 100644 --- a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java @@ -10,6 +10,7 @@ import com.pahimar.ee3.reference.Colors; import com.pahimar.ee3.reference.Messages; import com.pahimar.ee3.reference.Textures; import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet; +import com.pahimar.ee3.util.LogHelper; import com.pahimar.repackage.cofh.lib.gui.GuiBase; import com.pahimar.repackage.cofh.lib.gui.GuiColor; import com.pahimar.repackage.cofh.lib.gui.element.ElementSlider; @@ -30,6 +31,7 @@ public class GuiTransmutationTablet extends GuiBase private ElementTextField searchTextField; private ElementStatefulButton sortOrderButton; private ElementSlider slider; + protected int tickCount; private static DecimalFormat energyValueDecimalFormat = new DecimalFormat("###,###,###,###,###.###"); @@ -101,6 +103,14 @@ public class GuiTransmutationTablet extends GuiBase } } + @Override + public boolean onMouseWheel(int mouseX, int mouseY, int movement) + { + PacketHandler.INSTANCE.sendToServer(new MessageSliderElementUpdated(this)); + LogHelper.info(tickCount); + return super.onMouseWheel(mouseX, mouseY, movement); + } + @Override public void onStopDragging() { @@ -113,6 +123,7 @@ public class GuiTransmutationTablet extends GuiBase return _value; } }; + slider.setName("scrollBar"); slider.backgroundColor = new GuiColor(0, 0, 0, 0).getColor(); slider.borderColor = new GuiColor(0, 0, 0, 0).getColor(); slider.setSliderSize(12, 15); @@ -130,6 +141,13 @@ public class GuiTransmutationTablet extends GuiBase fontRendererObj.drawString(String.format("%s", energyValueDecimalFormat.format(tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue())), 8, 150, Integer.parseInt(Colors.PURE_WHITE, 16)); } + @Override + public void updateScreen() + { + super.updateScreen(); + tickCount++; + } + @Override public void handleElementButtonClick(String buttonName, int mouseButton) { diff --git a/src/main/java/com/pahimar/ee3/init/ModItems.java b/src/main/java/com/pahimar/ee3/init/ModItems.java index 243f9cc1..33cee3c2 100644 --- a/src/main/java/com/pahimar/ee3/init/ModItems.java +++ b/src/main/java/com/pahimar/ee3/init/ModItems.java @@ -22,6 +22,8 @@ public class ModItems public static final ItemEE matter = new ItemMatter(); public static final ItemEE gem = new ItemGem(); public static final ItemEE lootBall = new ItemLootBall(); + public static final ItemEE knowledgeScroll = new ItemKnowledgeScroll(); + public static final ItemEE potionLethe = new ItemPotionLethe(); public static final ItemToolEE shovelDarkMatter = new ItemDarkMatterShovel(); public static final ItemToolEE pickAxeDarkMatter = new ItemDarkMatterPickAxe(); @@ -51,6 +53,8 @@ public class ModItems GameRegistry.registerItem(matter, Names.Items.MATTER); GameRegistry.registerItem(gem, Names.Items.GEM); GameRegistry.registerItem(lootBall, Names.Items.LOOT_BALL); + GameRegistry.registerItem(knowledgeScroll, Names.Items.KNOWLEDGE_SCROLL); + GameRegistry.registerItem(potionLethe, Names.Items.POTION_LETHE); GameRegistry.registerItem(shovelDarkMatter, Names.Tools.DARK_MATTER_SHOVEL); GameRegistry.registerItem(pickAxeDarkMatter, Names.Tools.DARK_MATTER_PICKAXE); diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java index a9368c5f..df645372 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java @@ -12,10 +12,10 @@ import com.pahimar.ee3.knowledge.TransmutationKnowledge; import com.pahimar.ee3.knowledge.TransmutationKnowledgeRegistry; import com.pahimar.ee3.network.PacketHandler; import com.pahimar.ee3.network.message.MessageTransmutationKnowledgeUpdate; +import com.pahimar.ee3.reference.Comparators; import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet; import com.pahimar.ee3.util.FilterUtils; import com.pahimar.ee3.util.ItemHelper; -import com.pahimar.ee3.util.LogHelper; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -35,6 +35,7 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen private float energyValue; private String searchTerm; private int sortOrder; + private int scrollBarPosition; public ContainerTransmutationTablet(InventoryPlayer inventoryPlayer, TileEntityTransmutationTablet tileEntityTransmutationTablet) { @@ -52,6 +53,7 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen inventoryTransmutationTablet = new InventoryTransmutationTablet(knownTransmutations); this.sortOrder = 0; + this.scrollBarPosition = 0; this.energyValue = tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue(); this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_1, 62, 24)); @@ -143,8 +145,12 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen { sortOrder = updatedValue; } + else if (valueType == 3) + { + scrollBarPosition = updatedValue; + } - if (valueType == 0 || valueType == 1 || valueType == 2) + if (valueType >= 0 && valueType <= 3) { updateInventory(); } @@ -163,7 +169,11 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen @Override public void handleElementSliderUpdate(String elementName, int elementValue) { - LogHelper.info(elementValue); + if (elementName.equals("scrollBar")) + { + this.scrollBarPosition = elementValue; + updateInventory(); + } } public void handleTransmutationKnowledgeUpdate(TransmutationKnowledge transmutationKnowledge) @@ -182,26 +192,24 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen Set filteredSet = FilterUtils.filterByNameContains(this.inventoryTransmutationTablet.getKnownTransmutations(), searchTerm); List filteredList = new ArrayList(FilterUtils.filterByEnergyValue(filteredSet, energyValue)); - if (sortOrder == 0) + int adjustedStartIndex = (int) ((scrollBarPosition / 187f) * filteredList.size()); + + if (sortOrder >= 0 && sortOrder < Comparators.itemComparators.length) { - Collections.sort(filteredList, ItemHelper.displayNameComparator); - } - else if (sortOrder == 1) - { - Collections.sort(filteredList, ItemHelper.energyValueComparator); - } - else if (sortOrder == 2) - { - Collections.sort(filteredList, ItemHelper.idComparator); + Collections.sort(filteredList, Comparators.itemComparators[sortOrder]); } if (filteredList.size() <= 30) { newInventory = filteredList.toArray(newInventory); } + else if (adjustedStartIndex + 30 <= filteredList.size()) + { + newInventory = filteredList.subList(adjustedStartIndex, adjustedStartIndex + 30).toArray(newInventory); + } else { - newInventory = filteredList.subList(0, 30).toArray(newInventory); + newInventory = filteredList.subList(filteredList.size() - 30, filteredList.size()).toArray(newInventory); } for (int i = 0; i < 30; i++) @@ -307,6 +315,12 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen } } } + + for (Object crafter : this.crafters) + { + ICrafting iCrafting = (ICrafting) crafter; + iCrafting.sendProgressBarUpdate(this, 2, sortOrder); + } } private class SlotAlchemicalTome extends Slot diff --git a/src/main/java/com/pahimar/ee3/item/ItemKnowledgeScroll.java b/src/main/java/com/pahimar/ee3/item/ItemKnowledgeScroll.java new file mode 100644 index 00000000..e792c1cf --- /dev/null +++ b/src/main/java/com/pahimar/ee3/item/ItemKnowledgeScroll.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.item; + +import com.pahimar.ee3.reference.Names; + +public class ItemKnowledgeScroll extends ItemEE +{ + public ItemKnowledgeScroll() + { + super(); + this.setUnlocalizedName(Names.Items.KNOWLEDGE_SCROLL); + } +} diff --git a/src/main/java/com/pahimar/ee3/item/ItemPotionLethe.java b/src/main/java/com/pahimar/ee3/item/ItemPotionLethe.java new file mode 100644 index 00000000..3ea087e1 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/item/ItemPotionLethe.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.item; + +import com.pahimar.ee3.reference.Names; + +public class ItemPotionLethe extends ItemEE +{ + public ItemPotionLethe() + { + super(); + this.setUnlocalizedName(Names.Items.POTION_LETHE); + } +} diff --git a/src/main/java/com/pahimar/ee3/reference/Comparators.java b/src/main/java/com/pahimar/ee3/reference/Comparators.java new file mode 100644 index 00000000..d9d023bc --- /dev/null +++ b/src/main/java/com/pahimar/ee3/reference/Comparators.java @@ -0,0 +1,10 @@ +package com.pahimar.ee3.reference; + +import com.pahimar.ee3.util.ItemHelper; + +import java.util.Comparator; + +public class Comparators +{ + public static final Comparator[] itemComparators = {ItemHelper.displayNameComparator, ItemHelper.energyValueComparator, ItemHelper.idComparator}; +} diff --git a/src/main/java/com/pahimar/ee3/reference/Names.java b/src/main/java/com/pahimar/ee3/reference/Names.java index 80368c49..0882250d 100644 --- a/src/main/java/com/pahimar/ee3/reference/Names.java +++ b/src/main/java/com/pahimar/ee3/reference/Names.java @@ -51,6 +51,8 @@ public class Names public static final String[] MATTER_SUBTYPES = {"Proto", "Dark", "Corporeal", "Kinetic", "Temporal", "Essentia", "Amorphous", "Void", "Omni"}; public static final String GEM = "gem"; public static final String[] GEM_SUBTYPES = {"Black", "Blue", "Green", "Grey", "Purple", "Red", "Yellow"}; + public static final String KNOWLEDGE_SCROLL = "knowledgeScroll"; + public static final String POTION_LETHE = "potionLethe"; } public static final class Materials diff --git a/src/main/resources/assets/ee3/lang/en_US.lang b/src/main/resources/assets/ee3/lang/en_US.lang index 9319b810..0362fbad 100644 --- a/src/main/resources/assets/ee3/lang/en_US.lang +++ b/src/main/resources/assets/ee3/lang/en_US.lang @@ -57,6 +57,8 @@ item.ee3:gemPurple.name=Purple Gem [WIP] item.ee3:gemRed.name=Red Gem [WIP] item.ee3:gemYellow.name=Yellow Gem [WIP] item.ee3:lootBall.name=Loot Ball [WIP] +item.ee3:knowledgeScroll.name=Scroll of Transmutation Knowledge [WIP] +item.ee3:potionLethe.name=Lethe Potion [WIP] # Tools item.ee3:shovelDarkMatter.name=Dark Matter Shovel [WIP] diff --git a/src/main/resources/assets/ee3/textures/items/knowledgeScroll.png b/src/main/resources/assets/ee3/textures/items/knowledgeScroll.png new file mode 100644 index 0000000000000000000000000000000000000000..667b1ecbb121f6d4525d743f12b2cf15f7538557 GIT binary patch literal 17253 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 f#}6yjnE<<alR>HpkKrDCB literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ee3/textures/items/potionLethe.png b/src/main/resources/assets/ee3/textures/items/potionLethe.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffad1c6942e720f308c19a7ab4f47017e2c1d74 GIT binary patch literal 16913 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