Hunk of stuff in various states of things
This commit is contained in:
parent
7c07144237
commit
051fc7f929
|
@ -2,33 +2,29 @@ package com.pahimar.ee3.client.gui.inventory;
|
|||
|
||||
import com.pahimar.ee3.inventory.ContainerAlchemicalTome;
|
||||
import com.pahimar.ee3.reference.Textures;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import com.pahimar.repackage.cofh.lib.gui.GuiBase;
|
||||
import com.pahimar.repackage.cofh.lib.gui.element.ElementButton;
|
||||
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.InventoryBasic;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class GuiAlchemicalTome extends GuiBase
|
||||
{
|
||||
private InventoryPlayer inventoryPlayer;
|
||||
public static InventoryBasic tempInventory = new InventoryBasic("tmp", true, 81);
|
||||
private static final int LEFT_CLICK = 0;
|
||||
|
||||
private ElementButton prevPageButton;
|
||||
private ElementButton nextPageButton;
|
||||
|
||||
private ElementButton commonAlchemyRibbon;
|
||||
private ElementButton forbiddenAlchemyRibbon;
|
||||
private ElementButton alkahestryRibbon;
|
||||
|
||||
public GuiAlchemicalTome(EntityPlayer entityPlayer)
|
||||
{
|
||||
super(new ContainerAlchemicalTome(entityPlayer.inventory), Textures.Gui.ALCHEMICAL_TOME);
|
||||
this.inventoryPlayer = entityPlayer.inventory;
|
||||
entityPlayer.openContainer = this.inventorySlots;
|
||||
LogHelper.info(this.inventorySlots instanceof ContainerAlchemicalTome);
|
||||
ContainerAlchemicalTome containerAlchemicalTome = (ContainerAlchemicalTome) this.inventorySlots;
|
||||
LogHelper.info(containerAlchemicalTome.getInventorySize());
|
||||
xSize = 256;
|
||||
ySize = 226;
|
||||
}
|
||||
|
@ -40,19 +36,9 @@ public class GuiAlchemicalTome extends GuiBase
|
|||
|
||||
prevPageButton = new ElementButton(this, 15, 177, "Prev", 0, 0, 20, 0, 40, 0, 20, 10, 60, 10, "textures/gui/elements/arrowLeft.png");
|
||||
nextPageButton = new ElementButton(this, 223, 177, "Next", 0, 0, 22, 0, 44, 0, 22, 10, 66, 10, "textures/gui/elements/arrowRight.png");
|
||||
commonAlchemyRibbon = new ElementButton(this, 140, 187, "Common Alchemy", 0, 0, 0, 0, 0, 0, 20, 40, 20, 40, "textures/gui/elements/ribbonVerticalRed.png");
|
||||
alkahestryRibbon = new ElementButton(this, 190, 187, "Alkahestry", 0, 0, 0, 0, 0, 0, 20, 40, 20, 40, "textures/gui/elements/ribbonVerticalGreen.png");
|
||||
forbiddenAlchemyRibbon = new ElementButton(this, 165, 187, "Forbidden Alchemy", 0, 0, 0, 0, 0, 0, 20, 40, 20, 40, "textures/gui/elements/ribbonVerticalPurple.png");
|
||||
|
||||
commonAlchemyRibbon.setToolTip("Common Alchemy");
|
||||
alkahestryRibbon.setToolTip("Alkahestry");
|
||||
forbiddenAlchemyRibbon.setToolTip("Forbidden Alchemy");
|
||||
|
||||
addElement(prevPageButton);
|
||||
addElement(nextPageButton);
|
||||
addElement(commonAlchemyRibbon);
|
||||
addElement(alkahestryRibbon);
|
||||
addElement(forbiddenAlchemyRibbon);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -75,4 +61,26 @@ public class GuiAlchemicalTome extends GuiBase
|
|||
drawTabs(partialTicks, false);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateElementInformation()
|
||||
{
|
||||
if (((ContainerAlchemicalTome) this.inventorySlots).getInventorySize() < 80)
|
||||
{
|
||||
prevPageButton.setDisabled();
|
||||
nextPageButton.setDisabled();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleMouseClick(Slot slot, int p_146984_2_, int p_146984_3_, int p_146984_4_)
|
||||
{
|
||||
// NOOP
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleElementButtonClick(String buttonName, int mouseButton)
|
||||
{
|
||||
LogHelper.info(String.format("%s %s", buttonName, mouseButton));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.pahimar.ee3.client.handler;
|
|||
import com.pahimar.ee3.api.EnergyValue;
|
||||
import com.pahimar.ee3.exchange.EnergyValueRegistry;
|
||||
import com.pahimar.ee3.exchange.WrappedStack;
|
||||
import com.pahimar.ee3.inventory.ContainerAlchemicalTome;
|
||||
import com.pahimar.ee3.util.IOwnable;
|
||||
import com.pahimar.ee3.util.ItemHelper;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
|
@ -28,7 +29,7 @@ public class ItemTooltipEventHandler
|
|||
@SubscribeEvent
|
||||
public void handleItemTooltipEvent(ItemTooltipEvent event)
|
||||
{
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT))
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || event.entityPlayer.openContainer instanceof ContainerAlchemicalTome)
|
||||
{
|
||||
WrappedStack stack = new WrappedStack(event.itemStack);
|
||||
|
||||
|
@ -37,12 +38,12 @@ public class ItemTooltipEventHandler
|
|||
EnergyValue energyValue = EnergyValueRegistry.getInstance().getEnergyValue(stack);
|
||||
if (stack.getStackSize() > 1)
|
||||
{
|
||||
event.toolTip.add("Exchange Energy (Item): " + String.format("%s", energyValueDecimalFormat.format(energyValue.getEnergyValue())));
|
||||
event.toolTip.add("Exchange Energy (Stack): " + String.format("%s", energyValueDecimalFormat.format(stack.getStackSize() * energyValue.getEnergyValue())));
|
||||
event.toolTip.add(String.format("Exchange Energy (Item): %s", energyValueDecimalFormat.format(energyValue.getEnergyValue())));
|
||||
event.toolTip.add(String.format("Exchange Energy (Stack of %s): %s", event.itemStack.stackSize, energyValueDecimalFormat.format(energyValue.getEnergyValue())));
|
||||
}
|
||||
else
|
||||
{
|
||||
event.toolTip.add("Exchange Energy: " + String.format("%s", energyValueDecimalFormat.format(stack.getStackSize() * energyValue.getEnergyValue())));
|
||||
event.toolTip.add(String.format("Exchange Energy: %s", energyValueDecimalFormat.format(stack.getStackSize() * energyValue.getEnergyValue())));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -36,6 +36,8 @@ public class EnergyValueRegistry implements INBTTaggable, JsonSerializer<EnergyV
|
|||
private ImmutableSortedMap<WrappedStack, EnergyValue> stackMappings;
|
||||
private ImmutableSortedMap<EnergyValue, List<WrappedStack>> valueMappings;
|
||||
|
||||
// TODO Determine some set of itemstacks that have EMC values
|
||||
|
||||
private EnergyValueRegistry()
|
||||
{
|
||||
}
|
||||
|
|
|
@ -1,17 +1,58 @@
|
|||
package com.pahimar.ee3.inventory;
|
||||
|
||||
import com.pahimar.ee3.knowledge.TransmutationKnowledgeRegistry;
|
||||
import com.pahimar.ee3.util.ItemHelper;
|
||||
import com.pahimar.repackage.cofh.lib.gui.slot.SlotViewOnly;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerAlchemicalTome extends Container
|
||||
import java.util.TreeSet;
|
||||
|
||||
public class ContainerAlchemicalTome extends ContainerEE
|
||||
{
|
||||
private final InventoryTransmutationKnowledge inventoryTransmutationKnowledge;
|
||||
private int pageOffset;
|
||||
|
||||
private final static int MAX_ROW_INDEX = 8;
|
||||
private final static int MAX_COLUMN_INDEX = 5;
|
||||
|
||||
public ContainerAlchemicalTome(InventoryPlayer inventoryPlayer)
|
||||
{
|
||||
TreeSet<ItemStack> knownTransmutations = new TreeSet<ItemStack>(ItemHelper.displayNameComparator);
|
||||
knownTransmutations.addAll(TransmutationKnowledgeRegistry.getInstance().getPlayersKnownTransmutations(inventoryPlayer.player.getUniqueID()));
|
||||
|
||||
inventoryTransmutationKnowledge = new InventoryTransmutationKnowledge(knownTransmutations);
|
||||
pageOffset = 0;
|
||||
|
||||
int i = 0;
|
||||
for (int rowIndex = 0; rowIndex < MAX_ROW_INDEX; ++rowIndex)
|
||||
{
|
||||
for (int columnIndex = 0; columnIndex < MAX_COLUMN_INDEX; ++columnIndex)
|
||||
{
|
||||
this.addSlotToContainer(new SlotViewOnly(inventoryTransmutationKnowledge, i, 18 + columnIndex * 20, 18 + rowIndex * 19));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
i = 40;
|
||||
for (int rowIndex = 0; rowIndex < MAX_ROW_INDEX; ++rowIndex)
|
||||
{
|
||||
for (int columnIndex = 0; columnIndex < MAX_COLUMN_INDEX; ++columnIndex)
|
||||
{
|
||||
this.addSlotToContainer(new SlotViewOnly(inventoryTransmutationKnowledge, i, 140 + columnIndex * 20, 18 + rowIndex * 19));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canInteractWith(EntityPlayer p_75145_1_)
|
||||
public boolean canInteractWith(EntityPlayer entityPlayer)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getInventorySize()
|
||||
{
|
||||
return inventoryTransmutationKnowledge.getSizeInventory();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,133 @@
|
|||
package com.pahimar.ee3.inventory;
|
||||
|
||||
import com.pahimar.ee3.reference.Names;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class InventoryTransmutationKnowledge implements IInventory
|
||||
{
|
||||
public ItemStack[] inventory = new ItemStack[0];
|
||||
|
||||
public InventoryTransmutationKnowledge(Set<ItemStack> knownTransmutations)
|
||||
{
|
||||
if (knownTransmutations != null)
|
||||
{
|
||||
inventory = knownTransmutations.toArray(inventory);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSizeInventory()
|
||||
{
|
||||
return inventory.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int slotIndex)
|
||||
{
|
||||
if (slotIndex < getSizeInventory())
|
||||
{
|
||||
return inventory[slotIndex];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int slotIndex, int decrementAmount)
|
||||
{
|
||||
ItemStack itemStack = getStackInSlot(slotIndex);
|
||||
if (itemStack != null)
|
||||
{
|
||||
if (itemStack.stackSize <= decrementAmount)
|
||||
{
|
||||
setInventorySlotContents(slotIndex, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
itemStack = itemStack.splitStack(decrementAmount);
|
||||
if (itemStack.stackSize == 0)
|
||||
{
|
||||
setInventorySlotContents(slotIndex, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlotOnClosing(int slotIndex)
|
||||
{
|
||||
if (getStackInSlot(slotIndex) != null)
|
||||
{
|
||||
ItemStack itemStack = inventory[slotIndex];
|
||||
inventory[slotIndex] = null;
|
||||
return itemStack;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int slotIndex, ItemStack itemStack)
|
||||
{
|
||||
if (slotIndex < inventory.length)
|
||||
{
|
||||
inventory[slotIndex] = itemStack;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInventoryName()
|
||||
{
|
||||
return Names.Containers.ALCHEMICAL_TOME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCustomInventoryName()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit()
|
||||
{
|
||||
return 64;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void markDirty()
|
||||
{
|
||||
// NOOP
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUseableByPlayer(EntityPlayer entityPlayer)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openInventory()
|
||||
{
|
||||
// NOOP
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeInventory()
|
||||
{
|
||||
// NOOP
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slotIndex, ItemStack itemStack)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package com.pahimar.ee3.network.message;
|
||||
|
||||
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;
|
||||
|
||||
public class MessageGuiElementClicked implements IMessage, IMessageHandler<MessageGuiElementClicked, IMessage>
|
||||
{
|
||||
public int guiId;
|
||||
public String elementName;
|
||||
public int buttonPressed;
|
||||
|
||||
public MessageGuiElementClicked()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public MessageGuiElementClicked(int guiId, String elementName, int buttonPressed)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf)
|
||||
{
|
||||
buf.writeInt(guiId);
|
||||
buf.writeInt(elementName.length());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMessage onMessage(MessageGuiElementClicked message, MessageContext ctx)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue