mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-12 16:57:32 -04:00
Added some special code for mods using InventoryPlayer.currentItem
instead of InventoryPlayer.getCurrentItem
.
Such as OpenBlocks' /dev/null. Oh well, it *almost* worked out of the box, just placing didn't.
This commit is contained in:
parent
806ed9ab85
commit
94ae4e43a5
@ -142,13 +142,21 @@ class Inventory(val agent: internal.Agent) extends InventoryPlayer(null) {
|
||||
|
||||
override def getSizeInventory = agent.mainInventory.getSizeInventory
|
||||
|
||||
override def getStackInSlot(slot: Int) = agent.mainInventory.getStackInSlot(slot)
|
||||
override def getStackInSlot(slot: Int) =
|
||||
if (slot < 0) agent.equipmentInventory.getStackInSlot(~slot)
|
||||
else agent.mainInventory.getStackInSlot(slot)
|
||||
|
||||
override def decrStackSize(slot: Int, amount: Int) = agent.mainInventory.decrStackSize(slot, amount)
|
||||
override def decrStackSize(slot: Int, amount: Int) =
|
||||
if (slot < 0) agent.equipmentInventory.decrStackSize(~slot, amount)
|
||||
else agent.mainInventory.decrStackSize(slot, amount)
|
||||
|
||||
override def getStackInSlotOnClosing(slot: Int) = agent.mainInventory.getStackInSlotOnClosing(slot)
|
||||
override def getStackInSlotOnClosing(slot: Int) =
|
||||
if (slot < 0) agent.equipmentInventory.getStackInSlotOnClosing(~slot)
|
||||
else agent.mainInventory.getStackInSlotOnClosing(slot)
|
||||
|
||||
override def setInventorySlotContents(slot: Int, stack: ItemStack) = agent.mainInventory.setInventorySlotContents(slot, stack)
|
||||
override def setInventorySlotContents(slot: Int, stack: ItemStack) =
|
||||
if (slot < 0) agent.equipmentInventory.setInventorySlotContents(~slot, stack)
|
||||
else agent.mainInventory.setInventorySlotContents(slot, stack)
|
||||
|
||||
override def getInventoryName = agent.mainInventory.getInventoryName
|
||||
|
||||
@ -158,5 +166,7 @@ class Inventory(val agent: internal.Agent) extends InventoryPlayer(null) {
|
||||
|
||||
override def isUseableByPlayer(player: EntityPlayer) = agent.mainInventory.isUseableByPlayer(player)
|
||||
|
||||
override def isItemValidForSlot(slot: Int, stack: ItemStack) = agent.mainInventory.isItemValidForSlot(slot, stack)
|
||||
override def isItemValidForSlot(slot: Int, stack: ItemStack) =
|
||||
if (slot < 0) agent.equipmentInventory.isItemValidForSlot(~slot, stack)
|
||||
else agent.mainInventory.isItemValidForSlot(slot, stack)
|
||||
}
|
||||
|
@ -404,10 +404,12 @@ class Player(val agent: internal.Agent) extends FakePlayer(agent.world.asInstanc
|
||||
val itemsBefore = adjacentItems
|
||||
val stack = inventory.getStackInSlot(slot)
|
||||
val oldStack = if (stack != null) stack.copy() else null
|
||||
this.inventory.currentItem = if (inventory == agent.mainInventory) slot else ~slot
|
||||
try {
|
||||
f(stack)
|
||||
}
|
||||
finally {
|
||||
this.inventory.currentItem = 0
|
||||
val newStack = inventory.getStackInSlot(slot)
|
||||
if (newStack != null) {
|
||||
if (newStack.stackSize <= 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user