Expose IItemHandler on vanilla entities

This commit is contained in:
Vincent Lee committed 2016-03-21 09:24:36 -05:00
1 parent 558348125d
commit 30db41be9a
8 files changed
+164 -9

No files matched your search

@@ -20,6 +20,11 @@ public class ItemStackHandler implements IItemHandler, IItemHandlerModifiable, I
stacks = new ItemStack[size];
}
public ItemStackHandler(ItemStack[] stacks)
{
this.stacks = stacks;
}
public void setSize(int size)
{
stacks = new ItemStack[size];
@@ -7,7 +7,7 @@ import net.minecraft.item.ItemStack;
public class PlayerArmorInvWrapper extends InvWrapper
{
public final InventoryPlayer inventoryPlayer;
public final int offset;
private final int offset;
public PlayerArmorInvWrapper(InventoryPlayer inv)
{
@@ -6,6 +6,6 @@ public class PlayerInvWrapper extends CombinedInvWrapper
{
public PlayerInvWrapper(InventoryPlayer inv)
{
super(new PlayerMainInvWrapper(inv), new PlayerArmorInvWrapper(inv));
super(new PlayerMainInvWrapper(inv), new PlayerArmorInvWrapper(inv), new PlayerOffhandInvWrapper(inv));
}
}
@@ -10,7 +10,6 @@ import net.minecraft.item.ItemStack;
*/
public class PlayerMainInvWrapper extends InvWrapper
{
public final InventoryPlayer inventoryPlayer;
public PlayerMainInvWrapper(InventoryPlayer inv)
@@ -29,7 +28,7 @@ public class PlayerMainInvWrapper extends InvWrapper
@Override
public void setStackInSlot(int slot, ItemStack stack)
{
// prevent setting of armor inventory
// prevent setting of armor and offhand
if (slot > getSlots())
{
return;
@@ -40,7 +39,7 @@ public class PlayerMainInvWrapper extends InvWrapper
@Override
public ItemStack getStackInSlot(int slot)
{
// prevent getting of armor inventory
// prevent getting of armor and offhand
if (slot > getSlots())
{
return null;
@@ -51,7 +50,7 @@ public class PlayerMainInvWrapper extends InvWrapper
@Override
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate)
{
// prevent inserting into armor inventory
// prevent inserting into armor and offhand
if (slot > getSlots())
{
return stack;
@@ -79,7 +78,7 @@ public class PlayerMainInvWrapper extends InvWrapper
@Override
public ItemStack extractItem(int slot, int amount, boolean simulate)
{
// prevent extraction from armor inventory
// prevent extraction from armor and offhand
if (slot > getSlots())
{
return null;
@@ -0,0 +1,49 @@
package net.minecraftforge.items.wrapper;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
public class PlayerOffhandInvWrapper extends InvWrapper
{
public final InventoryPlayer inventoryPlayer;
private final int offset;
public PlayerOffhandInvWrapper(InventoryPlayer inv)
{
super(inv);
inventoryPlayer = inv;
offset = inventoryPlayer.mainInventory.length + inventoryPlayer.armorInventory.length;
}
@Override
public int getSlots()
{
return inventoryPlayer.offHandInventory.length;
}
@Override
public ItemStack getStackInSlot(int slot)
{
return super.getStackInSlot(slot + offset);
}
@Override
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate)
{
return super.insertItem(slot + offset, stack, simulate);
}
@Override
public void setStackInSlot(int slot, ItemStack stack)
{
super.setStackInSlot(slot + offset, stack);
}
@Override
public ItemStack extractItem(int slot, int amount, boolean simulate)
{
return super.extractItem(slot + offset, amount, simulate);
}
}