Added implicit ItemBlockCrate conversion

This commit is contained in:
Calclavia 2014-07-22 22:12:14 -04:00
parent 4978a7b9ba
commit 3a6eb9e9b1

View file

@ -1,51 +1,60 @@
package resonantinduction.archaic.crate package resonantinduction.archaic.crate
import java.util.List import java.util.List
import net.minecraft.entity.Entity
import net.minecraft.block.Block import net.minecraft.block.Block
import net.minecraft.item.ItemBlock import net.minecraft.entity.Entity
import net.minecraft.entity.player.EntityPlayer import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack import net.minecraft.item.{ItemBlock, ItemStack}
import net.minecraft.nbt.NBTTagCompound import net.minecraft.nbt.NBTTagCompound
import net.minecraft.potion.Potion import net.minecraft.potion.{Potion, PotionEffect}
import net.minecraft.potion.PotionEffect
import net.minecraft.world.World import net.minecraft.world.World
import resonant.lib.utility.LanguageUtility import resonant.lib.utility.LanguageUtility
import scala.util.control.Breaks._
object ItemBlockCrate { import scala.util.control.Breaks._
def setContainingItemStack(itemStack: ItemStack, containingStack: ItemStack) { import resonant.lib.wrapper.WrapList._
if (itemStack.stackTagCompound == null) { object ItemBlockCrate
{
def setContainingItemStack(itemStack: ItemStack, containingStack: ItemStack)
{
if (itemStack.stackTagCompound == null)
{
itemStack.setTagCompound(new NBTTagCompound) itemStack.setTagCompound(new NBTTagCompound)
} }
if (containingStack != null) { if (containingStack != null)
{
val itemTagCompound: NBTTagCompound = new NBTTagCompound val itemTagCompound: NBTTagCompound = new NBTTagCompound
containingStack.stackSize = Math.abs(containingStack.stackSize) containingStack.stackSize = Math.abs(containingStack.stackSize)
containingStack.writeToNBT(itemTagCompound) containingStack.writeToNBT(itemTagCompound)
itemStack.getTagCompound.setTag("Item", itemTagCompound) itemStack.getTagCompound.setTag("Item", itemTagCompound)
itemStack.getTagCompound.setInteger("Count", containingStack.stackSize) itemStack.getTagCompound.setInteger("Count", containingStack.stackSize)
} }
else { else
{
itemStack.getTagCompound.setTag("Item", new NBTTagCompound) itemStack.getTagCompound.setTag("Item", new NBTTagCompound)
itemStack.getTagCompound.setInteger("Count", 0) itemStack.getTagCompound.setInteger("Count", 0)
} }
} }
def getContainingItemStack(itemStack: ItemStack): ItemStack = { def getContainingItemStack(itemStack: ItemStack): ItemStack =
if (itemStack.stackTagCompound == null) { {
if (itemStack.stackTagCompound == null)
{
itemStack.setTagCompound(new NBTTagCompound) itemStack.setTagCompound(new NBTTagCompound)
return null return null
} }
val itemTagCompound: NBTTagCompound = itemStack.getTagCompound.getCompoundTag("Item") val itemTagCompound: NBTTagCompound = itemStack.getTagCompound.getCompoundTag("Item")
val containingStack: ItemStack = ItemStack.loadItemStackFromNBT(itemTagCompound) val containingStack: ItemStack = ItemStack.loadItemStackFromNBT(itemTagCompound)
if (containingStack != null) { if (containingStack != null)
{
containingStack.stackSize = itemStack.getTagCompound.getInteger("Count") containingStack.stackSize = itemStack.getTagCompound.getInteger("Count")
} }
return containingStack return containingStack
} }
} }
class ItemBlockCrate(block: Block) extends ItemBlock(block: Block) { class ItemBlockCrate(block: Block) extends ItemBlock(block: Block)
{
this.setHasSubtypes(true) this.setHasSubtypes(true)
override def getUnlocalizedName(itemStack: ItemStack): String = override def getUnlocalizedName(itemStack: ItemStack): String =
@ -60,15 +69,16 @@ class ItemBlockCrate(block: Block) extends ItemBlock(block: Block) {
if (containingStack != null) if (containingStack != null)
{ {
val s = LanguageUtility.getLocal("crate.tooltip.amount") + " " + containingStack.stackSize val s = LanguageUtility.getLocal("crate.tooltip.amount") + " " + containingStack.stackSize
list.add(containingStack.getDisplayName.asInstanceOf[_]) list.add(containingStack.getDisplayName)
list.add(s.asInstanceOf[_]) list.add(s)
} }
} }
override def getItemStackLimit(stack: ItemStack): Int = override def getItemStackLimit(stack: ItemStack): Int =
{ {
val containingStack: ItemStack = ItemBlockCrate.getContainingItemStack(stack) val containingStack: ItemStack = ItemBlockCrate.getContainingItemStack(stack)
if (containingStack != null) { if (containingStack != null)
{
return 1 return 1
} }
return this.maxStackSize return this.maxStackSize
@ -103,7 +113,7 @@ class ItemBlockCrate(block: Block) extends ItemBlock(block: Block) {
{ {
val tileEntity: TileCrate = world.getTileEntity(x, y, z).asInstanceOf[TileCrate] val tileEntity: TileCrate = world.getTileEntity(x, y, z).asInstanceOf[TileCrate]
var count: Int = containingItem.stackSize var count: Int = containingItem.stackSize
for(slot <- tileEntity.getInventory.getSizeInventory) for (slot <- tileEntity.getInventory.getSizeInventory)
{ {
val stackSize: Int = Math.min(64, count) val stackSize: Int = Math.min(64, count)
tileEntity.getInventory.setInventorySlotContents(slot, new ItemStack(containingItem.getItem, stackSize, containingItem.getItemDamage)) tileEntity.getInventory.setInventorySlotContents(slot, new ItemStack(containingItem.getItem, stackSize, containingItem.getItemDamage))