From bd06adddc2abcd115dba679e1332f7328740bbd9 Mon Sep 17 00:00:00 2001 From: Pahimar Date: Thu, 2 Apr 2015 01:26:01 -0400 Subject: [PATCH] Stuff that isn't complete --- .../pahimar/ee3/block/BlockCalcinator.java | 16 +- .../gui/inventory/GuiTransmutationTablet.java | 16 +- .../inventory/ContainerAlchemicalTome.java | 17 +- .../pahimar/ee3/inventory/ContainerEE.java | 5 - .../ContainerTransmutationTablet.java | 285 +++++++++++++----- .../inventory/ITextFieldElementHandler.java | 6 - .../InventoryTransmutationTablet.java | 49 ++- .../element/IElementButtonHandler.java | 6 + .../element/IElementSliderHandler.java | 6 + .../element/IElementTextFieldHandler.java | 6 + .../pahimar/ee3/network/PacketHandler.java | 2 + .../message/MessageGuiElementClicked.java | 6 +- .../MessageGuiElementTextFieldUpdate.java | 6 +- .../message/MessageSliderElementUpdated.java | 69 +++++ .../MessageTransmutationKnowledgeUpdate.java | 80 +++++ .../com/pahimar/ee3/reference/Textures.java | 1 + .../TileEntityTransmutationTablet.java | 27 +- .../com/pahimar/ee3/util/FilterUtils.java | 85 ++++-- .../cofh/lib/gui/element/ElementSlider.java | 5 + .../textures/gui/elements/buttonSortOrder.png | Bin 0 -> 749 bytes .../textures/gui/researchStation-glyph1.png | Bin 0 -> 3286 bytes .../textures/gui/researchStation-glyph2.png | Bin 0 -> 5635 bytes .../xcf/gui/elements/buttonSortOrder.xcf | Bin 0 -> 5261 bytes .../xcf/gui/researchStation-glyph1.xcf | Bin 0 -> 103619 bytes .../xcf/gui/researchStation-glyph2.xcf | Bin 0 -> 31647 bytes 25 files changed, 534 insertions(+), 159 deletions(-) delete mode 100644 src/main/java/com/pahimar/ee3/inventory/ITextFieldElementHandler.java create mode 100644 src/main/java/com/pahimar/ee3/inventory/element/IElementButtonHandler.java create mode 100644 src/main/java/com/pahimar/ee3/inventory/element/IElementSliderHandler.java create mode 100644 src/main/java/com/pahimar/ee3/inventory/element/IElementTextFieldHandler.java create mode 100644 src/main/java/com/pahimar/ee3/network/message/MessageSliderElementUpdated.java create mode 100644 src/main/java/com/pahimar/ee3/network/message/MessageTransmutationKnowledgeUpdate.java create mode 100644 src/main/resources/assets/ee3/textures/gui/elements/buttonSortOrder.png create mode 100644 src/main/resources/assets/ee3/textures/gui/researchStation-glyph1.png create mode 100644 src/main/resources/assets/ee3/textures/gui/researchStation-glyph2.png create mode 100644 src/main/resources/assets/ee3/textures/xcf/gui/elements/buttonSortOrder.xcf create mode 100644 src/main/resources/assets/ee3/textures/xcf/gui/researchStation-glyph1.xcf create mode 100644 src/main/resources/assets/ee3/textures/xcf/gui/researchStation-glyph2.xcf diff --git a/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java b/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java index c74a8479..e0ea778c 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java +++ b/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java @@ -63,6 +63,14 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider } } + @Override + public boolean onBlockEventReceived(World world, int x, int y, int z, int eventId, int eventData) + { + super.onBlockEventReceived(world, x, y, z, eventId, eventData); + TileEntity tileentity = world.getTileEntity(x, y, z); + return tileentity != null && tileentity.receiveClientEvent(eventId, eventData); + } + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) { @@ -84,14 +92,6 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider } } - @Override - public boolean onBlockEventReceived(World world, int x, int y, int z, int eventId, int eventData) - { - super.onBlockEventReceived(world, x, y, z, eventId, eventData); - TileEntity tileentity = world.getTileEntity(x, y, z); - return tileentity != null && tileentity.receiveClientEvent(eventId, eventData); - } - @Override public int getLightValue(IBlockAccess world, int x, int y, int z) { 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 c1014d9c..6befc447 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 @@ -2,11 +2,14 @@ package com.pahimar.ee3.client.gui.inventory; import com.pahimar.ee3.client.gui.element.ElementSearchField; import com.pahimar.ee3.inventory.ContainerTransmutationTablet; +import com.pahimar.ee3.network.PacketHandler; +import com.pahimar.ee3.network.message.MessageSliderElementUpdated; import com.pahimar.ee3.reference.Colors; import com.pahimar.ee3.reference.Textures; import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet; import com.pahimar.repackage.cofh.lib.gui.GuiBase; import com.pahimar.repackage.cofh.lib.gui.GuiColor; +import com.pahimar.repackage.cofh.lib.gui.element.ElementButton; import com.pahimar.repackage.cofh.lib.gui.element.ElementSlider; import com.pahimar.repackage.cofh.lib.gui.element.ElementTextField; import cpw.mods.fml.relauncher.Side; @@ -21,6 +24,7 @@ public class GuiTransmutationTablet extends GuiBase private TileEntityTransmutationTablet tileEntityTransmutationTablet; private ElementTextField searchTextField; + private ElementButton sortOrderButton; private ElementSlider slider; private static DecimalFormat energyValueDecimalFormat = new DecimalFormat("###,###,###,###,###.###"); @@ -44,9 +48,10 @@ public class GuiTransmutationTablet extends GuiBase searchTextField = new ElementSearchField(this, 173, 18, "searchField", 78, 10); searchTextField.backgroundColor = new GuiColor(0, 0, 0, 0).getColor(); searchTextField.borderColor = new GuiColor(0, 0, 0, 0).getColor(); - searchTextField.setFocused(true); - slider = new ElementSlider(this, 239, 36, 12, 74, 187, 0) + sortOrderButton = new ElementButton(this, 151, 36, "sortOrder", 0, 0, 18, 0, 36, 0, 18, 18, 54, 18, Textures.Gui.Elements.BUTTON_SORT_ORDER); + + slider = new ElementSlider(this, 239, 36, 12, 201, 187, 0) { @Override protected void dragSlider(int x, int y) @@ -61,6 +66,12 @@ public class GuiTransmutationTablet extends GuiBase } } + @Override + public void onStopDragging() + { + PacketHandler.INSTANCE.sendToServer(new MessageSliderElementUpdated(this)); + } + @Override public int getSliderY() { @@ -71,6 +82,7 @@ public class GuiTransmutationTablet extends GuiBase slider.borderColor = new GuiColor(0, 0, 0, 0).getColor(); slider.setSliderSize(12, 15); + addElement(sortOrderButton); addElement(searchTextField); addElement(slider); } diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java index 9e1e0706..7ffad521 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java @@ -1,5 +1,7 @@ package com.pahimar.ee3.inventory; +import com.pahimar.ee3.inventory.element.IElementButtonHandler; +import com.pahimar.ee3.inventory.element.IElementTextFieldHandler; import com.pahimar.ee3.item.ItemAlchemicalTome; import com.pahimar.ee3.knowledge.TransmutationKnowledgeRegistry; import com.pahimar.ee3.util.FilterUtils; @@ -16,7 +18,7 @@ import java.util.List; import java.util.TreeSet; import java.util.UUID; -public class ContainerAlchemicalTome extends ContainerEE implements ITextFieldElementHandler +public class ContainerAlchemicalTome extends ContainerEE implements IElementButtonHandler, IElementTextFieldHandler { private final InventoryAlchemicalTome inventoryAlchemicalTome; private final ItemStack alchemicalTomeItemStack; @@ -112,6 +114,8 @@ public class ContainerAlchemicalTome extends ContainerEE implements ITextFieldEl icrafting.sendProgressBarUpdate(this, 0, this.pageOffset); icrafting.sendProgressBarUpdate(this, 1, this.maxPageOffset); } + + requiresUpdate = false; } } @@ -149,14 +153,14 @@ public class ContainerAlchemicalTome extends ContainerEE implements ITextFieldEl } @Override - public void handleElementButtonClick(String buttonName, int mouseButton) + public void handleElementButtonClick(String elementName, int mouseButton) { - if (buttonName.equalsIgnoreCase("prev") && mouseButton == 0 && this.pageOffset > 0) + if (elementName.equalsIgnoreCase("prev") && mouseButton == 0 && this.pageOffset > 0) { this.pageOffset--; updateInventory(); } - else if (buttonName.equalsIgnoreCase("next") && mouseButton == 0 && this.pageOffset < this.maxPageOffset) + else if (elementName.equalsIgnoreCase("next") && mouseButton == 0 && this.pageOffset < this.maxPageOffset) { this.pageOffset++; updateInventory(); @@ -164,9 +168,9 @@ public class ContainerAlchemicalTome extends ContainerEE implements ITextFieldEl } @Override - public void handleElementTextFieldUpdate(String buttonName, String updatedText) + public void handleElementTextFieldUpdate(String elementName, String updatedText) { - if (buttonName.equalsIgnoreCase("searchField")) + if (elementName.equalsIgnoreCase("searchField")) { this.searchTerm = updatedText; pageOffset = 0; @@ -180,7 +184,6 @@ public class ContainerAlchemicalTome extends ContainerEE implements ITextFieldEl boolean shouldUpdateInventory = false; ItemStack[] newInventory = new ItemStack[80]; List filteredList = new ArrayList(FilterUtils.filterByNameContains(inventoryAlchemicalTome.getKnownTransmutations(), searchTerm, ItemHelper.displayNameComparator)); - FilterUtils.filterOutListItemsWithInvalidIcons(filteredList, ItemHelper.displayNameComparator); maxPageOffset = filteredList.size() / 80; if (pageOffset > maxPageOffset) diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java b/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java index c247b9db..2d175260 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java @@ -87,9 +87,4 @@ public abstract class ContainerEE extends Container return slotFound; } - - public void handleElementButtonClick(String buttonName, int mouseButton) - { - // NOOP - } } diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java index 7264e0db..7df03012 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java @@ -1,40 +1,65 @@ package com.pahimar.ee3.inventory; -import com.pahimar.ee3.api.EnergyValue; import com.pahimar.ee3.exchange.EnergyValueRegistry; +import com.pahimar.ee3.inventory.element.IElementSliderHandler; +import com.pahimar.ee3.inventory.element.IElementTextFieldHandler; import com.pahimar.ee3.item.ItemAlchemicalTome; import com.pahimar.ee3.item.ItemMiniumStone; import com.pahimar.ee3.item.ItemPhilosophersStone; import com.pahimar.ee3.knowledge.AbilityRegistry; +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.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; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class ContainerTransmutationTablet extends ContainerEE implements ITextFieldElementHandler +import java.util.*; + +public class ContainerTransmutationTablet extends ContainerEE implements IElementTextFieldHandler, IElementSliderHandler { + private InventoryTransmutationTablet inventoryTransmutationTablet; private TileEntityTransmutationTablet tileEntityTransmutationTablet; - private EnergyValue energyValue; + private float energyValue; private String searchTerm; + private boolean requiresUpdate = false; public ContainerTransmutationTablet(InventoryPlayer inventoryPlayer, TileEntityTransmutationTablet tileEntityTransmutationTablet) { this.tileEntityTransmutationTablet = tileEntityTransmutationTablet; - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_1, 62, 24)); - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_2, 35, 35)); - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_3, 26, 61)); - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_4, 35, 87)); - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_5, 62, 99)); - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_6, 89, 87)); - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_7, 98, 61)); - this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_8, 89, 35)); + TreeSet knownTransmutations = new TreeSet(ItemHelper.displayNameComparator); + if (tileEntityTransmutationTablet.getStackInSlot(TileEntityTransmutationTablet.ALCHEMICAL_TOME_INDEX) != null) + { + ItemStack itemStack = tileEntityTransmutationTablet.getStackInSlot(TileEntityTransmutationTablet.ALCHEMICAL_TOME_INDEX); + if (itemStack.getItem() instanceof ItemAlchemicalTome && ItemHelper.hasOwnerUUID(itemStack)) + { + knownTransmutations.addAll(TransmutationKnowledgeRegistry.getInstance().getPlayersKnownTransmutations(ItemHelper.getOwnerUUID(itemStack))); + } + } + inventoryTransmutationTablet = new InventoryTransmutationTablet(knownTransmutations); + + this.energyValue = tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue(); + + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_1, 62, 24)); + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_2, 35, 35)); + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_3, 26, 61)); + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_4, 35, 87)); + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_5, 62, 99)); + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_6, 89, 87)); + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_7, 98, 61)); + this.addSlotToContainer(new SlotTabletInput(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_8, 89, 35)); this.addSlotToContainer(new Slot(tileEntityTransmutationTablet, TileEntityTransmutationTablet.STONE_INDEX, 62, 61) { @Override @@ -49,70 +74,13 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi return itemStack.getItem() instanceof ItemMiniumStone || itemStack.getItem() instanceof ItemPhilosophersStone; } }); - this.addSlotToContainer(new Slot(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ALCHEMICAL_TOME_INDEX, 152, 15) - { - @Override - public int getSlotStackLimit() - { - return 1; - } - - @Override - public boolean isItemValid(ItemStack itemStack) - { - return itemStack.getItem() instanceof ItemAlchemicalTome; - } - - @Override - public void onPickupFromSlot(EntityPlayer entityPlayer, ItemStack itemStack) - { - super.onPickupFromSlot(entityPlayer, itemStack); - - if (!((TileEntityTransmutationTablet) this.inventory).getWorldObj().isRemote) - { - LogHelper.info("onPickup: " + ItemHelper.toString(itemStack)); - this.inventory.setInventorySlotContents(15, null); - } - } - - @Override - public void putStack(ItemStack itemStack) - { - super.putStack(itemStack); - - if (!((TileEntityTransmutationTablet) this.inventory).getWorldObj().isRemote) - { - LogHelper.info("putStack: " + ItemHelper.toString(itemStack)); - this.inventory.setInventorySlotContents(15, itemStack); - } - } - }); + this.addSlotToContainer(new SlotAlchemicalTome(this, tileEntityTransmutationTablet, TileEntityTransmutationTablet.ALCHEMICAL_TOME_INDEX, 152, 15)); for (int i = 0; i < 10; i++) { for (int j = 0; j < 3; j++) { - this.addSlotToContainer(new Slot(tileEntityTransmutationTablet, 10 + (j + i * 3), 175 + j * 20, 39 + i * 20) - { - @Override - public boolean canTakeStack(EntityPlayer entityPlayer) - { - return super.canTakeStack(entityPlayer); - } - - @Override - public void onPickupFromSlot(EntityPlayer entityPlayer, ItemStack itemStack) - { - super.onPickupFromSlot(entityPlayer, itemStack); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean func_111238_b() - { - return this.getHasStack(); - } - }); + this.addSlotToContainer(new SlotTabletOutput(this, inventoryTransmutationTablet, i * 3 + j, 175 + j * 20, 38 + i * 20)); } } @@ -130,28 +98,98 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi { this.addSlotToContainer(new Slot(inventoryPlayer, actionBarSlotIndex, 8 + actionBarSlotIndex * 18, 222)); } + + this.updateInventory(); } @Override public void detectAndSendChanges() { super.detectAndSendChanges(); - this.energyValue = this.tileEntityTransmutationTablet.getStoredEnergyValue(); + + for (Object crafter : this.crafters) + { + ICrafting iCrafting = (ICrafting) crafter; + + if (this.energyValue != this.tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue()) + { + this.energyValue = this.tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue(); + this.updateInventory(); + int energyValueAsInt = Float.floatToRawIntBits(this.tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue()); + iCrafting.sendProgressBarUpdate(this, 0, energyValueAsInt & 0xffff); + iCrafting.sendProgressBarUpdate(this, 1, energyValueAsInt >>> 16); + } + } + } + + @SideOnly(Side.CLIENT) + public void updateProgressBar(int valueType, int updatedValue) + { + if (valueType == 0) + { + int energyValueAsInt = Float.floatToRawIntBits(energyValue); + energyValueAsInt = (energyValueAsInt & 0xffff0000) | updatedValue; + energyValue = Float.intBitsToFloat(energyValueAsInt); + } + else if (valueType == 1) + { + int energyValueAsInt = Float.floatToRawIntBits(energyValue); + energyValueAsInt = (energyValueAsInt & 0xffff) | (updatedValue << 16); + energyValue = Float.intBitsToFloat(energyValueAsInt); + } + + if (valueType == 0 || valueType == 1) + { + this.updateInventory(); + } } @Override - public void handleElementTextFieldUpdate(String buttonName, String updatedText) + public void handleElementTextFieldUpdate(String elementName, String updatedText) { - if (buttonName.equalsIgnoreCase("searchField")) + if (elementName.equalsIgnoreCase("searchField")) { this.searchTerm = updatedText; updateInventory(); } } + @Override + public void handleElementSliderUpdate(String elementName, int elementValue) + { + LogHelper.info(elementValue); + } + + public void handleTransmutationKnowledgeUpdate(TransmutationKnowledge transmutationKnowledge) + { + if (transmutationKnowledge != null) + { + this.inventoryTransmutationTablet = new InventoryTransmutationTablet(transmutationKnowledge.getKnownTransmutations()); + this.updateInventory(); + } + } + private void updateInventory() { + ItemStack[] newInventory = new ItemStack[30]; + Set filteredSet = FilterUtils.filterByNameContains(this.inventoryTransmutationTablet.getKnownTransmutations(), searchTerm); + List filteredList = new ArrayList(FilterUtils.filterByEnergyValue(filteredSet, energyValue)); + Collections.sort(filteredList, ItemHelper.displayNameComparator); + + if (filteredList.size() <= 30) + { + newInventory = filteredList.toArray(newInventory); + } + else + { + newInventory = filteredList.subList(0, 30).toArray(newInventory); + } + + for (int i = 0; i < 30; i++) + { + this.getSlot(i + 10).putStack(newInventory[i]); + } } @Override @@ -215,11 +253,67 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi return itemStack; } - private class SlotTabletOutput extends Slot + private class SlotAlchemicalTome extends Slot { - public SlotTabletOutput(IInventory iInventory, int slotIndex, int x, int y) + private ContainerTransmutationTablet containerTransmutationTablet; + private TileEntityTransmutationTablet tileEntityTransmutationTablet; + + public SlotAlchemicalTome(ContainerTransmutationTablet containerTransmutationTablet, IInventory iInventory, int slotIndex, int x, int y) { super(iInventory, slotIndex, x, y); + this.containerTransmutationTablet = containerTransmutationTablet; + this.tileEntityTransmutationTablet = containerTransmutationTablet.tileEntityTransmutationTablet; + } + + @Override + public int getSlotStackLimit() + { + return 1; + } + + @Override + public boolean isItemValid(ItemStack itemStack) + { + return itemStack.getItem() instanceof ItemAlchemicalTome; + } + + @Override + public void onPickupFromSlot(EntityPlayer entityPlayer, ItemStack itemStack) + { + super.onPickupFromSlot(entityPlayer, itemStack); + + Set knownTransmutations = TransmutationKnowledgeRegistry.getInstance().getPlayersKnownTransmutations(ItemHelper.getOwnerUUID(itemStack)); + this.containerTransmutationTablet.inventoryTransmutationTablet = new InventoryTransmutationTablet(knownTransmutations); + this.containerTransmutationTablet.updateInventory(); + + if (!this.tileEntityTransmutationTablet.getWorldObj().isRemote && itemStack != null && itemStack.getItem() instanceof ItemAlchemicalTome && ItemHelper.hasOwnerUUID(itemStack)) + { + PacketHandler.INSTANCE.sendToAllAround(new MessageTransmutationKnowledgeUpdate(knownTransmutations), new NetworkRegistry.TargetPoint(this.tileEntityTransmutationTablet.getWorldObj().provider.dimensionId, (double) this.tileEntityTransmutationTablet.xCoord, (double) this.tileEntityTransmutationTablet.yCoord, (double) this.tileEntityTransmutationTablet.zCoord, 5d)); + } + } + + @Override + public void putStack(ItemStack itemStack) + { + super.putStack(itemStack); + if (!this.tileEntityTransmutationTablet.getWorldObj().isRemote && itemStack != null && itemStack.getItem() instanceof ItemAlchemicalTome && ItemHelper.hasOwnerUUID(itemStack)) + { + Set knownTransmutations = TransmutationKnowledgeRegistry.getInstance().getPlayersKnownTransmutations(ItemHelper.getOwnerUUID(itemStack)); + this.containerTransmutationTablet.inventoryTransmutationTablet = new InventoryTransmutationTablet(knownTransmutations); + this.containerTransmutationTablet.updateInventory(); + PacketHandler.INSTANCE.sendToAllAround(new MessageTransmutationKnowledgeUpdate(knownTransmutations), new NetworkRegistry.TargetPoint(this.tileEntityTransmutationTablet.getWorldObj().provider.dimensionId, (double) this.tileEntityTransmutationTablet.xCoord, (double) this.tileEntityTransmutationTablet.yCoord, (double) this.tileEntityTransmutationTablet.zCoord, 5d)); + } + } + } + + private class SlotTabletOutput extends Slot + { + private ContainerTransmutationTablet containerTransmutationTablet; + + public SlotTabletOutput(ContainerTransmutationTablet containerTransmutationTablet, IInventory iInventory, int slotIndex, int x, int y) + { + super(iInventory, slotIndex, x, y); + this.containerTransmutationTablet = containerTransmutationTablet; } @Override @@ -227,13 +321,36 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi { return false; } + + @Override + public boolean canTakeStack(EntityPlayer entityPlayer) + { + return false; + } + + @Override + public void onPickupFromSlot(EntityPlayer entityPlayer, ItemStack itemStack) + { + super.onPickupFromSlot(entityPlayer, itemStack); + this.containerTransmutationTablet.inventoryTransmutationTablet.setInventorySlotContents(this.getSlotIndex(), new ItemStack(itemStack.getItem(), 1, itemStack.getItemDamage())); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean func_111238_b() + { + return this.getHasStack(); + } } private class SlotTabletInput extends Slot { - public SlotTabletInput(IInventory iInventory, int slotIndex, int x, int y) + private ContainerTransmutationTablet containerTransmutationTablet; + + public SlotTabletInput(ContainerTransmutationTablet containerTransmutationTablet, IInventory iInventory, int slotIndex, int x, int y) { super(iInventory, slotIndex, x, y); + this.containerTransmutationTablet = containerTransmutationTablet; } @Override @@ -241,5 +358,21 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi { return EnergyValueRegistry.getInstance().hasEnergyValue(itemStack) && AbilityRegistry.getInstance().isRecoverable(itemStack); } + + @Override + public void onPickupFromSlot(EntityPlayer entityPlayer, ItemStack itemStack) + { + super.onPickupFromSlot(entityPlayer, itemStack); + this.containerTransmutationTablet.tileEntityTransmutationTablet.updateEnergyValueFromInventory(); + this.containerTransmutationTablet.updateInventory(); + } + + @Override + public void putStack(ItemStack itemStack) + { + super.putStack(itemStack); + this.containerTransmutationTablet.tileEntityTransmutationTablet.updateEnergyValueFromInventory(); + this.containerTransmutationTablet.updateInventory(); + } } } diff --git a/src/main/java/com/pahimar/ee3/inventory/ITextFieldElementHandler.java b/src/main/java/com/pahimar/ee3/inventory/ITextFieldElementHandler.java deleted file mode 100644 index d9f40815..00000000 --- a/src/main/java/com/pahimar/ee3/inventory/ITextFieldElementHandler.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pahimar.ee3.inventory; - -public interface ITextFieldElementHandler -{ - public abstract void handleElementTextFieldUpdate(String buttonName, String updatedText); -} diff --git a/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java b/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java index 297a624a..a3bcb957 100644 --- a/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java @@ -6,26 +6,45 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import java.util.Set; -import java.util.TreeSet; +import java.util.*; public class InventoryTransmutationTablet implements IInventory { private ItemStack[] inventory; private Set knownTransmutations; - public InventoryTransmutationTablet(Set knownTransmutations) + public InventoryTransmutationTablet() + { + this(null); + } + + public InventoryTransmutationTablet(Collection knownTransmutations) { inventory = new ItemStack[30]; + + this.knownTransmutations = new TreeSet(ItemHelper.baseComparator); if (knownTransmutations != null) { - this.knownTransmutations = knownTransmutations; + this.knownTransmutations.addAll(knownTransmutations); + } + + List knownTransmutationsList = new ArrayList(this.knownTransmutations); + if (knownTransmutationsList.size() <= 30) + { + inventory = knownTransmutationsList.toArray(inventory); } else { - this.knownTransmutations = new TreeSet(ItemHelper.baseComparator); + inventory = knownTransmutationsList.subList(0, 30).toArray(inventory); + } + + for (int i = 0; i < inventory.length; i++) + { + if (inventory[i] instanceof ItemStack) + { + inventory[i].stackSize = 1; + } } - inventory = knownTransmutations.toArray(inventory); } @Override @@ -45,6 +64,10 @@ public class InventoryTransmutationTablet implements IInventory return null; } + /** + * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a + * new stack. + */ @Override public ItemStack decrStackSize(int slotIndex, int decrementAmount) { @@ -58,11 +81,14 @@ public class InventoryTransmutationTablet implements IInventory else { itemStack = itemStack.splitStack(decrementAmount); + if (itemStack.stackSize == 0) { setInventorySlotContents(slotIndex, null); } } + + setInventorySlotContents(slotIndex, itemStack); } return itemStack; @@ -88,7 +114,16 @@ public class InventoryTransmutationTablet implements IInventory { if (slotIndex < inventory.length) { - inventory[slotIndex] = itemStack; + if (itemStack != null) + { + ItemStack copiedItemStack = itemStack.copy(); + copiedItemStack.stackSize = 1; + inventory[slotIndex] = copiedItemStack; + } + else + { + inventory[slotIndex] = itemStack; + } } } diff --git a/src/main/java/com/pahimar/ee3/inventory/element/IElementButtonHandler.java b/src/main/java/com/pahimar/ee3/inventory/element/IElementButtonHandler.java new file mode 100644 index 00000000..daacaa9f --- /dev/null +++ b/src/main/java/com/pahimar/ee3/inventory/element/IElementButtonHandler.java @@ -0,0 +1,6 @@ +package com.pahimar.ee3.inventory.element; + +public interface IElementButtonHandler +{ + public abstract void handleElementButtonClick(String elementName, int mouseButton); +} diff --git a/src/main/java/com/pahimar/ee3/inventory/element/IElementSliderHandler.java b/src/main/java/com/pahimar/ee3/inventory/element/IElementSliderHandler.java new file mode 100644 index 00000000..e57aa4cd --- /dev/null +++ b/src/main/java/com/pahimar/ee3/inventory/element/IElementSliderHandler.java @@ -0,0 +1,6 @@ +package com.pahimar.ee3.inventory.element; + +public interface IElementSliderHandler +{ + public abstract void handleElementSliderUpdate(String elementName, int elementValue); +} diff --git a/src/main/java/com/pahimar/ee3/inventory/element/IElementTextFieldHandler.java b/src/main/java/com/pahimar/ee3/inventory/element/IElementTextFieldHandler.java new file mode 100644 index 00000000..679bce9e --- /dev/null +++ b/src/main/java/com/pahimar/ee3/inventory/element/IElementTextFieldHandler.java @@ -0,0 +1,6 @@ +package com.pahimar.ee3.inventory.element; + +public interface IElementTextFieldHandler +{ + public abstract void handleElementTextFieldUpdate(String elementName, String updatedText); +} diff --git a/src/main/java/com/pahimar/ee3/network/PacketHandler.java b/src/main/java/com/pahimar/ee3/network/PacketHandler.java index 2d437e26..8e350370 100644 --- a/src/main/java/com/pahimar/ee3/network/PacketHandler.java +++ b/src/main/java/com/pahimar/ee3/network/PacketHandler.java @@ -27,5 +27,7 @@ public class PacketHandler INSTANCE.registerMessage(MessageTileEntityAlchemyArray.class, MessageTileEntityAlchemyArray.class, 12, Side.CLIENT); INSTANCE.registerMessage(MessageTileEntityTransmutationTablet.class, MessageTileEntityTransmutationTablet.class, 13, Side.CLIENT); INSTANCE.registerMessage(MessageSingleParticleEvent.class, MessageSingleParticleEvent.class, 14, Side.CLIENT); + INSTANCE.registerMessage(MessageSliderElementUpdated.class, MessageSliderElementUpdated.class, 15, Side.SERVER); + INSTANCE.registerMessage(MessageTransmutationKnowledgeUpdate.class, MessageTransmutationKnowledgeUpdate.class, 16, Side.CLIENT); } } diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageGuiElementClicked.java b/src/main/java/com/pahimar/ee3/network/message/MessageGuiElementClicked.java index f799a572..fed8b603 100644 --- a/src/main/java/com/pahimar/ee3/network/message/MessageGuiElementClicked.java +++ b/src/main/java/com/pahimar/ee3/network/message/MessageGuiElementClicked.java @@ -1,6 +1,6 @@ package com.pahimar.ee3.network.message; -import com.pahimar.ee3.inventory.ContainerEE; +import com.pahimar.ee3.inventory.element.IElementButtonHandler; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -46,9 +46,9 @@ public class MessageGuiElementClicked implements IMessage, IMessageHandler +{ + public String elementName; + public int elementValue; + + public MessageSliderElementUpdated() + { + } + + public MessageSliderElementUpdated(ElementSlider elementSlider) + { + this(elementSlider.getName(), elementSlider.getValue()); + } + + public MessageSliderElementUpdated(String elementName, int elementValue) + { + this.elementName = elementName; + this.elementValue = elementValue; + } + + @Override + public void fromBytes(ByteBuf buf) + { + int elementNameLength = buf.readInt(); + this.elementName = new String(buf.readBytes(elementNameLength).array()); + this.elementValue = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) + { + if (elementName != null) + { + buf.writeInt(elementName.length()); + buf.writeBytes(elementName.getBytes()); + } + else + { + buf.writeInt(0); + } + buf.writeInt(elementValue); + } + + @Override + public IMessage onMessage(MessageSliderElementUpdated message, MessageContext ctx) + { + EntityPlayer entityPlayer = ctx.getServerHandler().playerEntity; + + if (entityPlayer != null) + { + if (entityPlayer.openContainer instanceof IElementSliderHandler) + { + ((IElementSliderHandler) entityPlayer.openContainer).handleElementSliderUpdate(message.elementName, message.elementValue); + } + } + + return null; + } +} diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageTransmutationKnowledgeUpdate.java b/src/main/java/com/pahimar/ee3/network/message/MessageTransmutationKnowledgeUpdate.java new file mode 100644 index 00000000..73af9f1b --- /dev/null +++ b/src/main/java/com/pahimar/ee3/network/message/MessageTransmutationKnowledgeUpdate.java @@ -0,0 +1,80 @@ +package com.pahimar.ee3.network.message; + +import com.pahimar.ee3.inventory.ContainerTransmutationTablet; +import com.pahimar.ee3.knowledge.TransmutationKnowledge; +import com.pahimar.ee3.util.CompressionHelper; +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +import java.util.Collection; + +public class MessageTransmutationKnowledgeUpdate implements IMessage, IMessageHandler +{ + public TransmutationKnowledge transmutationKnowledge; + + public MessageTransmutationKnowledgeUpdate() + { + } + + public MessageTransmutationKnowledgeUpdate(Collection knownTransmutationsCollection) + { + this.transmutationKnowledge = new TransmutationKnowledge(knownTransmutationsCollection); + } + + @Override + public void fromBytes(ByteBuf buf) + { + byte[] compressedString = null; + int readableBytes = buf.readInt(); + + if (readableBytes > 0) + { + compressedString = buf.readBytes(readableBytes).array(); + } + + if (compressedString != null) + { + String uncompressedString = CompressionHelper.decompressStringFromByteArray(compressedString); + this.transmutationKnowledge = TransmutationKnowledge.createFromJson(uncompressedString); + } + } + + @Override + public void toBytes(ByteBuf buf) + { + byte[] compressedString = null; + + if (transmutationKnowledge != null) + { + compressedString = CompressionHelper.compressStringToByteArray(transmutationKnowledge.toJson()); + } + + if (compressedString != null) + { + buf.writeInt(compressedString.length); + buf.writeBytes(compressedString); + } + else + { + buf.writeInt(0); + } + } + + @Override + public IMessage onMessage(MessageTransmutationKnowledgeUpdate message, MessageContext ctx) + { + EntityPlayer entityPlayer = FMLClientHandler.instance().getClientPlayerEntity(); + + if (entityPlayer != null && entityPlayer.openContainer instanceof ContainerTransmutationTablet) + { + ((ContainerTransmutationTablet) entityPlayer.openContainer).handleTransmutationKnowledgeUpdate(message.transmutationKnowledge); + } + + return null; + } +} diff --git a/src/main/java/com/pahimar/ee3/reference/Textures.java b/src/main/java/com/pahimar/ee3/reference/Textures.java index 8a7f5f2a..78fb892e 100644 --- a/src/main/java/com/pahimar/ee3/reference/Textures.java +++ b/src/main/java/com/pahimar/ee3/reference/Textures.java @@ -60,6 +60,7 @@ public final class Textures public static final ResourceLocation BUTTON_ENABLED = ResourceLocationHelper.getResourceLocation(ELEMENT_TEXTURE_LOCATION + "buttonEnabled.png"); public static final ResourceLocation BUTTON_DISABLED = ResourceLocationHelper.getResourceLocation(ELEMENT_TEXTURE_LOCATION + "buttonDisabled.png"); public static final ResourceLocation BUTTON_HOVER = ResourceLocationHelper.getResourceLocation(ELEMENT_TEXTURE_LOCATION + "buttonHover.png"); + public static final ResourceLocation BUTTON_SORT_ORDER = ResourceLocationHelper.getResourceLocation(ELEMENT_TEXTURE_LOCATION + "buttonSortOrder.png"); } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java index ac38a386..0d659db8 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java @@ -23,7 +23,7 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTransmutationTablet extends TileEntityEE implements ISidedInventory { - public static final int INVENTORY_SIZE = 40; + public static final int INVENTORY_SIZE = 10; public static final int ITEM_INPUT_1 = 0; public static final int ITEM_INPUT_2 = 1; public static final int ITEM_INPUT_3 = 2; @@ -36,6 +36,7 @@ public class TileEntityTransmutationTablet extends TileEntityEE implements ISide public static final int ALCHEMICAL_TOME_INDEX = 9; private EnergyValue storedEnergyValue; + private EnergyValue availableEnergyValue; private ForgeDirection rotation; private ItemStack[] inventory; @@ -57,6 +58,19 @@ public class TileEntityTransmutationTablet extends TileEntityEE implements ISide this.storedEnergyValue = storedEnergyValue; } + public void updateEnergyValueFromInventory() + { + float newEnergyValue = 0f; + for (int i = 0; i <= STONE_INDEX; i++) + { + if (inventory[i] != null && EnergyValueRegistry.getInstance().hasEnergyValue(inventory[i])) + { + newEnergyValue += EnergyValueRegistry.getInstance().getEnergyValue(inventory[i]).getEnergyValue() * inventory[i].stackSize; + } + } + this.storedEnergyValue = new EnergyValue(newEnergyValue); + } + public ForgeDirection getRotation() { return rotation; @@ -90,6 +104,7 @@ public class TileEntityTransmutationTablet extends TileEntityEE implements ISide public void updateEntity() { super.updateEntity(); + updateEnergyValueFromInventory(); } @Override @@ -213,15 +228,7 @@ public class TileEntityTransmutationTablet extends TileEntityEE implements ISide itemStack.stackSize = getInventoryStackLimit(); } - float newEnergyValue = 0f; - for (int i = 0; i <= STONE_INDEX; i++) - { - if (inventory[i] != null && EnergyValueRegistry.getInstance().hasEnergyValue(inventory[i])) - { - newEnergyValue += EnergyValueRegistry.getInstance().getEnergyValue(inventory[i]).getEnergyValue() * inventory[i].stackSize; - } - } - this.storedEnergyValue = new EnergyValue(newEnergyValue); + updateEnergyValueFromInventory(); } } diff --git a/src/main/java/com/pahimar/ee3/util/FilterUtils.java b/src/main/java/com/pahimar/ee3/util/FilterUtils.java index bbab3e28..6db1d0ea 100644 --- a/src/main/java/com/pahimar/ee3/util/FilterUtils.java +++ b/src/main/java/com/pahimar/ee3/util/FilterUtils.java @@ -1,5 +1,7 @@ package com.pahimar.ee3.util; +import com.pahimar.ee3.api.EnergyValue; +import com.pahimar.ee3.api.EnergyValueRegistryProxy; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -56,16 +58,11 @@ public class FilterUtils return nameSortedSet; } - public static Set filterByNameContains(Set unfilteredItemStackSet, String filterString) + public static Set filterByNameContains(Collection unfilteredCollection, String filterString) { - return filterByNameContains(unfilteredItemStackSet, filterString, ItemHelper.baseComparator); - } + Set nameSortedSet = new HashSet(); - public static Set filterByNameContains(Set unfilteredItemStackSet, String filterString, Comparator comparator) - { - Set nameSortedSet = new TreeSet(comparator); - - for (ItemStack itemStack : unfilteredItemStackSet) + for (ItemStack itemStack : unfilteredCollection) { String itemDisplayName = itemStack.getDisplayName().toLowerCase(); @@ -85,49 +82,73 @@ public class FilterUtils return nameSortedSet; } - public static void filterOutListItemsWithInvalidIcons(List unfilteredCollection) + public static Set filterByNameContains(Collection unfilteredCollection, String filterString, Comparator comparator) { - filterOutListItemsWithInvalidIcons(unfilteredCollection, ItemHelper.baseComparator); - } - - public static Set filterOutItemsWithInvalidIcons(Set unfilteredCollection, Comparator comparator) - { - List itemsToRemove = new ArrayList(); - Set filteredSet = new TreeSet(comparator); + Set nameSortedSet = new TreeSet(comparator); for (ItemStack itemStack : unfilteredCollection) { - try + String itemDisplayName = itemStack.getDisplayName().toLowerCase(); + + if (filterString != null) { - itemStack.getItem().getIconIndex(itemStack); - filteredSet.add(itemStack); + if (itemDisplayName.contains(filterString.toLowerCase())) + { + nameSortedSet.add(itemStack); + } } - catch (ArrayIndexOutOfBoundsException e) + else { - itemsToRemove.add(itemStack); + nameSortedSet.add(itemStack); } } - return filteredSet; + return nameSortedSet; } - public static void filterOutListItemsWithInvalidIcons(List unfilteredCollection, Comparator comparator) + public static Set filterByEnergyValue(Collection unfilteredCollection, EnergyValue energyValue) { - List itemsToRemove = new ArrayList(); + return filterByEnergyValue(unfilteredCollection, energyValue.getEnergyValue()); + } + + public static Set filterByEnergyValue(Collection unfilteredCollection, EnergyValue energyValue, Comparator comparator) + { + return filterByEnergyValue(unfilteredCollection, energyValue.getEnergyValue(), comparator); + } + + public static Set filterByEnergyValue(Collection unfilteredCollection, float energyValue) + { + Set sortedSet = new HashSet(); for (ItemStack itemStack : unfilteredCollection) { - try + if (energyValue > 0f && EnergyValueRegistryProxy.hasEnergyValue(itemStack)) { - itemStack.getItem().getIconIndex(itemStack); - } - catch (ArrayIndexOutOfBoundsException e) - { - itemsToRemove.add(itemStack); + if (EnergyValueRegistryProxy.getEnergyValue(itemStack).getEnergyValue() <= energyValue) + { + sortedSet.add(itemStack); + } } } - unfilteredCollection.removeAll(itemsToRemove); - Collections.sort(unfilteredCollection, comparator); + return sortedSet; + } + + public static Set filterByEnergyValue(Collection unfilteredCollection, float energyValue, Comparator comparator) + { + Set sortedSet = new TreeSet(comparator); + + for (ItemStack itemStack : unfilteredCollection) + { + if (energyValue > 0f && EnergyValueRegistryProxy.hasEnergyValue(itemStack)) + { + if (EnergyValueRegistryProxy.getEnergyValue(itemStack).getEnergyValue() <= energyValue) + { + sortedSet.add(itemStack); + } + } + } + + return sortedSet; } } diff --git a/src/main/java/com/pahimar/repackage/cofh/lib/gui/element/ElementSlider.java b/src/main/java/com/pahimar/repackage/cofh/lib/gui/element/ElementSlider.java index b6abdb0e..89f17da5 100644 --- a/src/main/java/com/pahimar/repackage/cofh/lib/gui/element/ElementSlider.java +++ b/src/main/java/com/pahimar/repackage/cofh/lib/gui/element/ElementSlider.java @@ -49,6 +49,11 @@ public abstract class ElementSlider extends ElementBase return this; } + public int getValue() + { + return this._value; + } + public ElementSlider setValue(int value) { value = Math.max(_valueMin, Math.min(_valueMax, value)); diff --git a/src/main/resources/assets/ee3/textures/gui/elements/buttonSortOrder.png b/src/main/resources/assets/ee3/textures/gui/elements/buttonSortOrder.png new file mode 100644 index 0000000000000000000000000000000000000000..679b8456cbeda9cced766637c56c84524d35c9ec GIT binary patch literal 749 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 Y^zxaR{VNX3GsFiN>Y3`+YNO-+197TFvj6}9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ee3/textures/xcf/gui/elements/buttonSortOrder.xcf b/src/main/resources/assets/ee3/textures/xcf/gui/elements/buttonSortOrder.xcf new file mode 100644 index 0000000000000000000000000000000000000000..fcafb714dcd3f45ea3c77f0a945ad90e19f020d4 GIT binary patch literal 5261 zcmeHKO>7%g5PoaNY2DaO2x&zq5*x>&4#?CFKk6ZkXhY)-+B}6%_*Sqc#dmX%M z$>vA#fjbBxkptqurKsFEaE1#K5xE70su$F=k)T9%ns|5l=IuT!#*VmDE;Jo!c4y|j zdGGm~c{A&RQCgL2sxIqBQDdN2!Q&)=o&ZY{9%L8=$4H5W@HkG=lO!yBGV}#8w&>Obp`^OIdcksL58jXyj*3r1XMXE|x2Dioep8 zLQau0FJ?IP5wgM13|w=4T*bJ2xInHoYgJJVvmj^1UNF}C83S9oY8tj|nCf-SBLA|k zTbkWDAbIzid`q`0;SiAYEn|`A89VkqVP>P0P$#ovBqGA@RNJKfIndvHD zFsE2rI&V}o)i%neT(m3j`)4NpOA@_PwQNJL%SBDM;hihj(xq}D;)&Ba z+I0hGL*DU&5l{hzzX}8qZvYg=t`y zFiD$%`dvb@1r)gx2;$txpUAy#+b|UlHs(1EuW_>BJazbUxZ$ofA`NGEkp+o(<03}ae3P(6KPLSJzwk;-@~8l#4*Ml}-(&Zwp6_(3^**V)qL548 z9*TI=^(2p1d3F=yyqND`ipPFISK#fTMeV_JA)k4)H&fdx00NAEX$0d&jmkM-O#MkP zX1AnUywbn&J;AvCF0-f!0LC9?S?n&sco!Xlh34-t{RVm5pzaa5{2SX`g4$X_Yw?_| z*8n3(6xcqEAxqx&W(JG(H9<3@LOWfl5#Yw^F#dAL1PeK zeEbXl(jtXoP&q_R;jqRK!Po<843`!kHwHHP5k(dx;*E&ocUOmpsYk zZNc?WgzkInck~BHT;&gk_k{!cZR!&T^u3PW@>rAHsqA%@rceGycc=EfjknPaI2=GP zzPzn>qx15uZhd&SThD9@9q7dtw{jiy+Pj-?_5MqUAN-dIwq@Dlm1oCZZykGgB+t6lK`W2dmgOT$wpZ)v8IQwRk2O1T zbro5~s$wV-%n8gnf&pL-U=e`<%pgbt1Obu&5eX0=2!H^IM1r|eS4--!-vim|)~(P^8YUV z!Rz0^&nx(e!_QZ)U(@gXcZ9HikAJ@ypPiWS+MQdRTlgi0^Zd{84k7QnL;elk`2zVo z^XueB>@&bI|BAeN{k?aY-}>3>`^?v_zk_v{H)E^a#P`yew_>j;6)lyCF-qv_kMTpu zmxc-n`RbQH`S-hbQr?Zf`PcVSI4SA(Qc`bz?{EL`=GWf2bvrSczVZ9ytvBBM=G$+) z`Su&%yondz_}1Is{6j)sZ6f6J!1c--Z@u|O|0l2CeB+IN=8B?^KPIF#t{JWqm#C z8(&XJyZic^-}=_KUVr1Q*WY^UHGJc>^qgeQt?bv5(|->bzIZc+0gg6{q@@^Nv~($N`3v!ufIW;zj^c9pz-bRrN!Ukq@?{_O3K6U{8z;A z?brYB06&K${`(Do=rzCb=J!)>XV8uR;QKcz57Xk)Q!>(S$N$M!DfT=6 z4D4UM`T8ds2z37;EfKbL>*1$pV`Tnw5Pd@CFF^6%#?+t5pp$|2jBbNU#F!|XMSyRfAg1rcJphn^gsIj&w_vEYrl9e zR~if#0%!92&s+|E`I*y-Pll&Tqb>=~?w1p9-+nFiYGLa9;EvGH?Q2_ z-{z!q;*-*E{vi2wN?K}48l2l5eD{hz3PpbH>WiNWFZS;LkAG1)T%mjRA7lJwzGD3J zy-ydqospJ#{Tmba4MP5FzkiCO`(G0BABGV_Klt>$|Fs@r^A8C5)wWOH``2$0^5xeF zQBqlaITkb%lWyIOf9-BsBIOFDjv-%5=j1$$znPx$F!9dsfAMPxcW+a>xcRl%Kd+_T zefQSQH@^Nx?7v^|0&yw!-|qwT-CqFu$>%r!-(OJB>~sX|#N@j--~41PyqWWh-n@SA zwT$FM&dtQ++xOzrDSS#oLOSC8XQBU}Z(Y6f^Ptxvp#QK-pZR4Uuf_NQkH~MqSH|B; zyM6C(IkCv_)?Yr%Nxk>x*He@4;?r2hMF0I9eqO;3G8p7xSFb5Jd;J>!5URrTJM=$l z-k-ewrO&+n<{L<|I+_{13wfO%^R=(`(owwi+%h{w}Q{V zI7FCMDSqaE{N@{vmR!(kyeo;wwepy{jbz@5lueF`evfVxGz_3Wd zjXIU(`h17Jvg^ay*vCQ34Ma?9!)s~a1eTif`8 z?w-DWAqxb914CGPZcYwDw9`rzi!G>ES2ZlQaPL71JZySac5Z$FH!CN*tfIaVJm9tS z`Q1I;{e%6iNYp#P3fak-IXNSLIk^N5u&e4-W>v>(*u=yb1u2gxhJwP(oa~CKn))VC zz-#4qcK7u64G2Y&-hQBAr`frM1;x^mDo*8EiLJlJ-hJ@!L2@#{IUt~ro0*+cQC-v6 z)C4B-JG;93nSRyKaCcA7K)+BVmdwv9mKT?oSJbf$XtZk^I><38IhlQwo|%gsaI$hB z#5xF}85^MM4-JYK(es`@UWWj`&MhdGndJ)=Fn|LZ&6;jqclW^qHjd?zHmVAF6h(1) zbxmzEkJ2FM?&}{M8Wu^VW4zW5{^SfhCtqA#QnD*6R|vH1y6)ivHYGU~d&tVolkChKD_>YtEvr--fHT;^`npcXQUqy$hbAQ^C6$y` zRf7T^pVHse1C8djHL=ohs=%}CJPQ^=2{kO>U&P?`ESsFlzRG@Z?|xDlQ+7gG*x1T% z>)>~F_tZ8t);Bh>phI#6wITHi$k(hvfB@e#BxC#7e{Rmb2M@~1Dyph$K>)uq zro;oaby%N=^#hX>!2-w!0`=+|;IVoArom`}3PFgjT&P1~F%Z;NLjwFRKGq)`tgDAj z^TuTq94fR#ZHUp>*0frR0PrTGDJ3O6Ju{01{rSZu6)`1hY!P%p0=@l%wM~sYhQ}q% z>=ATP8-Nfg3GCF& z{DJ~jtb`86IKYB|dV|r-vM~+f+>3vhS6Wz6QB_4{(AM1}=;((6Vh1b>`02TMxdPgw zhW>$p%vzYeVgYNmBqt#rX2m}!EGjK4p&Gz6YFay}8B^<#@_2AYlaq6ka!>#bjwvv! zU1uo)1{1rYdBkD^3HKfp7MGM!J7gM<;Rt$q`uc|8Mx>(>s325mLBS}Fp~5QcKnnwa z3R5PUST)PA0Zta1_<$`cE-tTv6q}pj4g33h=^iA~F&QI!ISwOQP{w^QwgXwe|H9$>{j_*v#zQ`~vj=kO2fpSJzYGWAapMGdOqd zvRMU11&|;l0L9@8u#c+hdUyoD%Vy@G!qkMoJ*oh(05F14X`m0RM$3u6eUB~3FDWgr zfC|T!r|txSrJ2_Z1p@W#{NkeGT7R&-7QBN?eF=47x7e%%U^^}-set^h$QJ;z8S z3Qu)(&CJhJ1lQ}Yt!XwOJp*`2)nUuV{u6sIm(6EO%PZl?p~203L8o9?R9goHZfxo5 z>FJlV*nTVwG8!(~(5`7=!}_bB0t|NcPQtx>wxEaw4N&5y<~DvuSMRV08Za^{0S9J! zgzP+wm}(%a)q(;&EP8nbQDw_&V;u=>ULKp5&&IY;U)KWP-P6}48WxF0ph06Z@Ii~Q zI0`Qg0YU)OBSCs*%hndVwH<#iH=kR?7DEEHjm?cbZf95jph$#31o@9nUikpJ0qmKD z{B-)5OXxFOtXo^Q?QKUqVo`2!X?aOCqG1bslv?5B_}rXAv7}TjQ7-}(t|Ksm0+pGy zvS0yJLJ#<&V)ju5TUW<67O^+j5BmlsjD(S1#+ILB7g?Iis8`^Go^NOumcT?r0=ffj z32ocxZgQv7J9XJGHPpvlPpR)Uvs$rG-Vk-biI=w{34Z9NUf^*2Ly; zOG?Ws(m0v*P5fq{J47@QipFG;j+v>sDfyyeehIEevpze|%j>=Tvn?mk)L1-2IM1*>4^po zR=e%QE(|bCY~2brW+KC_pGE(K7yzCsf#41FYCVnT6-_hMQI6NX02?387fwX#k(`Yi8w`>;MmfdOJ z-Zbbf@NY#Wz~Qd0Vw-rp94<|?5TP17J9zCq{oM#r5-B(e_d+d*(KDuHv&BqlaBOcI zbVfKR7D`-J!Lk)i&FvjsEZfhPSMgBtbao7Ye$g0W%%o&&RlB~iiM$L3Y1)e0I4idftGOJFgqfioNO0#L8iif>F}5oB0+Ah)5qz3n`VTyZJQNg z3Fr(i&o0X?DMoCrY-mJE+1U*gT;|Ke{UCi(Ha_0h-!lxokVq%TG;4ZfS2VN%$CiD2 z+pYyq^}8M~TtR+S6)hD}>9+EF1l>Z3Xj}x>irj2YAwifQ9iLm%tgq?Umtmh~@X@;E zbQtuTI)lgKW=qNo5MSvY1pHRG)gIxnWK1+Jq3N|kp;{J6C#R5{uWNPdip3Sx7Q7lv z8oBz$rW^2u`DInyiqe|K))rnHWZyaPxF66`sNNiMyTxThm~rj;sz#68U~zdB3BJ{i zprFwk^={X$H$M-NvAV9Vx~Y+Fpr^kJ+2yE6IyHtGL9wh5Nf~Jf``3X0y;6-0z^yyB z*MUH1aPRK=nLAw4dN<*2;{E#%lVFszhR-d^$S&lTRg_gB@vU!YMZrh}s6d4yV$rB{ zbWk`V6OE1%L~gl4p;W&6ZahwS9z09}Jcl+B3JNoFxwLSotFLcr;t|qD;roPWfJmg$ z(GjtP5a}pE{-{up6>|G-LgL*ASU!ov$;iygEhtLoc^p;gip}N=p7XD zDd2=mCXx^-nODf=%P7MMiNAX<5eU#hNYB9fxrG@SncT|ivKpE>(sGwC=ppDK014pX zsko#DRlulRPG|~?9FTwm35iLdA%#Ox6mT*!xFyxq71#qXpoA23b&|op_Ab&(P{B@3 z$wp_feX@k)W0@$)y~M=(=z=6Ar)6ZIjRJ6#9@TZVwe<~vZ%5`2w;+UoNk17QfRE`1 z7_g*dls_dPAdyLA9&RNiKLP>SdHL80x3sjTz6Lx50l~{Izr`s& zKn@G99aOJ^1oSXSa$2mD^9UO#Ev=}nryF2+KWPUKdeDYAY3HLRM@Qhg0#qz1fPqoI zPs_l&iHYc5T~a;B$$gZOSpdIKQ3omb=q3bR-Mzhi!^0zVPg3kcHZwgdC&>9I3mMgq ziFy?Xl9(hZ8X;igqqOvbA}DB8eSJeSU;aiphzs@@y38*dLFwVU?ZWmw3@7v z1oAM6kVol+WM(JcFDNQ1tEjAQXhP-N#Rkr7$~kue#WnnD>VS11W~z^LNX z>#Kyqr=$^*o|%2`L1JN1Nm*rOZ9T7{xuvzeoq{*j03Nv;k&#I3b|Zb{?yc=;$e8h5Ml*NdP0|%0Df``%`mxqNkKP{-LI~$k+t=Q*gdwNotco3 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 CilBc0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ee3/textures/xcf/gui/researchStation-glyph2.xcf b/src/main/resources/assets/ee3/textures/xcf/gui/researchStation-glyph2.xcf new file mode 100644 index 0000000000000000000000000000000000000000..ab02bb4bcd8ed0753ab1898e2de053b64dfe87de GIT binary patch literal 31647 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