From 66f2289f970dd67bfa544c3c4d6906d204141d09 Mon Sep 17 00:00:00 2001 From: Pahimar Date: Thu, 26 Mar 2015 18:12:22 -0400 Subject: [PATCH] Stuff that isn't complete --- .../ContainerTransmutationTablet.java | 92 ++++++++++--------- .../TileEntityTransmutationTablet.java | 2 +- 2 files changed, 49 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java index ff317bf2..7264e0db 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java @@ -6,24 +6,19 @@ 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.TransmutationKnowledgeRegistry; 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.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - public class ContainerTransmutationTablet extends ContainerEE implements ITextFieldElementHandler { - private InventoryTransmutationTablet inventoryTransmutationTablet; private TileEntityTransmutationTablet tileEntityTransmutationTablet; private EnergyValue energyValue; private String searchTerm; @@ -31,17 +26,6 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi public ContainerTransmutationTablet(InventoryPlayer inventoryPlayer, TileEntityTransmutationTablet tileEntityTransmutationTablet) { this.tileEntityTransmutationTablet = tileEntityTransmutationTablet; - 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.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_1, 62, 24)); this.addSlotToContainer(new SlotTabletInput(tileEntityTransmutationTablet, TileEntityTransmutationTablet.ITEM_INPUT_2, 35, 35)); @@ -78,13 +62,57 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi { 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); + } + } }); for (int i = 0; i < 10; i++) { for (int j = 0; j < 3; j++) { - this.addSlotToContainer(new SlotTabletOutput(inventoryTransmutationTablet, i * 4 + j + 10, 175 + j * 20, 38 + i * 20)); + 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(); + } + }); } } @@ -123,31 +151,7 @@ public class ContainerTransmutationTablet extends ContainerEE implements ITextFi private void updateInventory() { - boolean shouldUpdateInventory = false; - ItemStack[] newInventory = new ItemStack[inventoryTransmutationTablet.getSizeInventory()]; - Set sets = inventoryTransmutationTablet.getKnownTransmutations(); - List filteredList = new ArrayList(FilterUtils.filterByNameContains(sets, searchTerm, ItemHelper.displayNameComparator)); - FilterUtils.filterOutListItemsWithInvalidIcons(filteredList, ItemHelper.displayNameComparator); - if (filteredList.size() <= inventoryTransmutationTablet.getSizeInventory()) - { - newInventory = filteredList.toArray(newInventory); - shouldUpdateInventory = true; - } - else - { - newInventory = filteredList.subList(0, inventoryTransmutationTablet.getSizeInventory()).toArray(newInventory); - shouldUpdateInventory = true; - } - - if (shouldUpdateInventory) - { - for (int i = 0; i < 30; i++) - { - inventoryTransmutationTablet.setInventorySlotContents(i, newInventory[i]); - inventoryTransmutationTablet.markDirty(); - } - } } @Override diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java index b234f673..ac38a386 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 = 10; + public static final int INVENTORY_SIZE = 40; public static final int ITEM_INPUT_1 = 0; public static final int ITEM_INPUT_2 = 1; public static final int ITEM_INPUT_3 = 2;