mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-12 16:27:47 +00:00
Expose IItemHandler on vanilla entities
This commit is contained in:
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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user