Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.happykiller.weightlimit.player.inventory.container;
- import com.happykiller.weightlimit.items.ItemBackpack;
- import com.happykiller.weightlimit.player.inventory.InventoryWeightLimit;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.InventoryPlayer;
- import net.minecraft.inventory.Container;
- import net.minecraft.inventory.Slot;
- import net.minecraft.item.ItemArmor;
- import net.minecraft.item.ItemStack;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- public class ContainerWeightedPlayer extends Container {
- private static final int ARMOR_START = InventoryWeightLimit.INV_SIZE, ARMOR_END = ARMOR_START + 3,
- INV_START = ARMOR_END + 1, INV_END = INV_START + 26,
- HOTBAR_START = INV_END + 1, HOTBAR_END = HOTBAR_START + 8;
- private final EntityPlayer thePlayer;
- public ContainerWeightedPlayer(EntityPlayer player, InventoryPlayer invPlayer, InventoryWeightLimit invW) {
- thePlayer = player;
- int i;
- int j;
- this.addSlotToContainer(new SlotWeightLimit(invW, 0, 80, 8));
- for (i = 0; i < 4; ++i) {
- final int k = i;
- this.addSlotToContainer(new Slot(invPlayer, invPlayer.getSizeInventory() - 1 - i, 8, 8 + i * 18) {
- public int getSlotStackLimit() {
- return 1;
- }
- public boolean isItemValid(ItemStack stack) {
- if (stack == null) return false;
- return stack.getItem().isValidArmor(stack, k, thePlayer);
- }
- @SideOnly(Side.CLIENT)
- public String getSlotTexture() {
- return ItemArmor.EMPTY_SLOT_NAMES[k];
- }
- });
- }
- for (i = 0; i < 3; ++i) {
- for (j = 0; j < 9; ++j) {
- this.addSlotToContainer(new Slot(invPlayer, j + (i + 1) * 9, 8 + j * 18, 84 + i * 18));
- }
- }
- for (i = 0; i < 9; ++i) {
- this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
- }
- }
- public boolean canInteractWith(EntityPlayer playerIn) {
- return true;
- }
- public ItemStack transferStackInSlot(EntityPlayer player, int i) {
- ItemStack stack = null;
- Slot slot = (Slot)this.inventorySlots.get(i);
- if(slot != null && slot.getHasStack()) {
- ItemStack stack1 = slot.getStack();
- stack = stack1.copy();
- if(i < INV_START) {
- if(!this.mergeItemStack(stack1, INV_START, HOTBAR_END + 1, true)) {
- return null;
- }
- slot.onSlotChange(stack1, stack);
- }else {
- if(stack1.getItem() instanceof ItemBackpack) {
- if(!this.mergeItemStack(stack1, 0, InventoryWeightLimit.INV_SIZE, false)) {
- return null;
- }
- }else if(stack1.getItem() instanceof ItemArmor) {
- int type = ((ItemArmor)stack1.getItem()).armorType;
- if(!this.mergeItemStack(stack1, ARMOR_START + type, ARMOR_START + type + 1, false)) {
- return null;
- }
- }else if(i >= INV_START && i < HOTBAR_START) {
- if(!this.mergeItemStack(stack1, HOTBAR_START, HOTBAR_START + 1, false)) {
- return null;
- }
- }else if(i >= HOTBAR_START && i < HOTBAR_END + 1) {
- if(!this.mergeItemStack(stack1, INV_START, INV_END + 1, false)) {
- return null;
- }
- }
- }
- if(stack1.stackSize == 0) {
- slot.putStack((ItemStack)null);
- }else {
- slot.onSlotChanged();
- }
- if(stack1.stackSize == stack.stackSize) {
- return null;
- }
- slot.onPickupFromSlot(thePlayer, stack1); //TODO If problems are caused, change to player.
- }
- return stack;
- }
- }
Add Comment
Please, Sign In to add comment