Improved insertCurrentItem controls

This commit is contained in:
Calclavia 2015-01-14 19:52:31 +08:00
parent d97edd17bb
commit 43ff86eab2
20 changed files with 41 additions and 41 deletions

View file

@ -10,7 +10,7 @@ import net.minecraft.item.{Item, ItemStack}
import net.minecraft.nbt.{NBTTagCompound, NBTTagList}
import resonant.lib.utility.LanguageUtility
import resonant.lib.utility.nbt.NBTUtility
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
import scala.collection.JavaConversions._

View file

@ -12,7 +12,7 @@ import net.minecraftforge.fluids.{FluidContainerRegistry, FluidStack, IFluidCont
import resonant.lib.utility.LanguageUtility
import resonant.lib.utility.science.UnitDisplay
import resonant.lib.utility.science.UnitDisplay.Unit
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* @author Darkguardsman
@ -41,6 +41,15 @@ class ItemBlockTank(block: Block) extends ItemBlock(block: Block) with IFluidCon
}
}
def getFluid(container: ItemStack): FluidStack =
{
if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("fluid"))
{
return null
}
return FluidStack.loadFluidStackFromNBT(container.stackTagCompound.getCompoundTag("fluid"))
}
override def getItemStackLimit(stack: ItemStack): Int =
{
if (stack.getTagCompound != null && stack.getTagCompound.hasKey("fluid"))
@ -74,15 +83,6 @@ class ItemBlockTank(block: Block) extends ItemBlock(block: Block) with IFluidCon
return false
}
def getFluid(container: ItemStack): FluidStack =
{
if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("fluid"))
{
return null
}
return FluidStack.loadFluidStackFromNBT(container.stackTagCompound.getCompoundTag("fluid"))
}
def fill(container: ItemStack, resource: FluidStack, doFill: Boolean): Int =
{
if (resource == null)

View file

@ -27,7 +27,7 @@ import resonant.lib.prefab.tile.spatial.{SpatialBlock, SpatialTile}
import resonant.lib.transform.vector.Vector3
import resonant.lib.utility.FluidUtility
import resonant.lib.wrapper.ByteBufWrapper._
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* Meant to replace the furnace class.
@ -189,8 +189,6 @@ class TileFirebox extends SpatialTile(Material.rock) with IFluidHandler with TIn
}
}
def isBurning: Boolean = burnTime > 0
override def getSizeInventory = 1
def getMeltIronEnergy(volume: Float): Long =
@ -295,6 +293,8 @@ class TileFirebox extends SpatialTile(Material.rock) with IFluidHandler with TIn
return if (isBurning) (if (isElectric) SpatialBlock.icon.get("firebox_electric_side_on") else SpatialBlock.icon.get("firebox_side_on")) else (if (isElectric) SpatialBlock.icon.get("firebox_electric_side_off") else SpatialBlock.icon.get("firebox_side_off"))
}
def isBurning: Boolean = burnTime > 0
override def click(player: EntityPlayer)
{
if (server)

View file

@ -6,8 +6,8 @@ import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{Item, ItemStack}
import resonant.lib.render.EnumColor
import resonant.lib.utility.nbt.NBTUtility
import resonant.lib.wrapper.CollectionWrapper._
import resonant.lib.wrapper.StringWrapper._
import resonant.lib.wrapper.WrapList._
/**
* A trait applied to all items that can store alloys within them

View file

@ -11,7 +11,7 @@ import net.minecraft.item.{Item, ItemStack}
import net.minecraft.util.IIcon
import resonant.lib.prefab.tile.item.ItemBlockMetadata
import resonant.lib.prefab.tile.spatial.SpatialBlock
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* A block used to build machines or decoration.

View file

@ -13,7 +13,7 @@ import resonant.lib.mod.compat.energy.Compatibility
import resonant.lib.render.EnumColor
import resonant.lib.utility.LanguageUtility
import resonant.lib.utility.science.UnitDisplay
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
object ItemBlockBattery
{
@ -84,16 +84,6 @@ class ItemBlockBattery(block: Block) extends ItemBlock(block) with IEnergyItem
return energyToReceive
}
def discharge(itemStack: ItemStack, energy: Double, doTransfer: Boolean): Double =
{
val energyToExtract: Double = Math.min(Math.min(this.getEnergy(itemStack), energy), getTransferRate(itemStack))
if (doTransfer)
{
this.setEnergy(itemStack, this.getEnergy(itemStack) - energyToExtract)
}
return energyToExtract
}
def setEnergy(itemStack: ItemStack, joules: Double)
{
if (itemStack.getTagCompound == null)
@ -109,6 +99,16 @@ class ItemBlockBattery(block: Block) extends ItemBlock(block) with IEnergyItem
return this.getEnergyCapacity(itemStack) / 100
}
def discharge(itemStack: ItemStack, energy: Double, doTransfer: Boolean): Double =
{
val energyToExtract: Double = Math.min(Math.min(this.getEnergy(itemStack), energy), getTransferRate(itemStack))
if (doTransfer)
{
this.setEnergy(itemStack, this.getEnergy(itemStack) - energyToExtract)
}
return energyToExtract
}
def getVoltage(itemStack: ItemStack): Double =
{
return 240

View file

@ -9,7 +9,7 @@ import net.minecraft.entity.player.InventoryPlayer
import resonant.lib.prefab.gui.GuiContainerBase
import resonant.lib.render.EnumColor
import resonant.lib.utility.LanguageUtility
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* Multimeter GUI

View file

@ -16,7 +16,7 @@ import net.minecraft.world.World
import org.lwjgl.input.Keyboard
import resonant.lib.render.EnumColor
import resonant.lib.utility.LanguageUtility
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemMultimeter extends JItemMultiPart with IHighlight
{

View file

@ -20,7 +20,7 @@ import org.lwjgl.input.Keyboard
import resonant.lib.render.EnumColor
import resonant.lib.utility.LanguageUtility
import resonant.lib.utility.science.UnitDisplay
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemWire extends TItemMultiPart
{

View file

@ -13,7 +13,7 @@ import org.lwjgl.input.Keyboard
import resonant.lib.render.EnumColor
import resonant.lib.utility.LanguageUtility
import resonant.lib.utility.science.UnitDisplay
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemPipe extends TItemMultiPart
{

View file

@ -13,7 +13,7 @@ import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{Item, ItemStack}
import net.minecraft.tileentity.TileEntity
import net.minecraft.world.World
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemGear extends JItemMultiPart with IHighlight
{

View file

@ -10,7 +10,7 @@ import net.minecraft.creativetab.CreativeTabs
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{Item, ItemStack}
import net.minecraft.world.World
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemGearShaft extends Item with TItemMultiPart with IHighlight
{

View file

@ -16,7 +16,7 @@ import net.minecraftforge.common.util.ForgeDirection
import resonant.api.tile.INodeProvider
import resonant.lib.prefab.tile.item.ItemBlockMetadata
import resonant.lib.transform.vector.Vector3
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* The vertical water turbine collects flowing water flowing on X axis.

View file

@ -20,8 +20,8 @@ import resonant.lib.render.RenderUtility
import resonant.lib.transform.vector.Vector3
import resonant.lib.utility.MathUtility
import resonant.lib.utility.inventory.InventoryUtility
import resonant.lib.wrapper.CollectionWrapper._
import resonant.lib.wrapper.NBTWrapper._
import resonant.lib.wrapper.WrapList._
/**
* The vertical wind turbine collects airflow.

View file

@ -17,7 +17,7 @@ import resonant.lib.prefab.tile.spatial.SpatialBlock
import resonant.lib.render.{RenderBlockUtility, RenderUtility}
import resonant.lib.transform.vector.Vector3
import resonant.lib.world.WorldUtility
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* Electromagnet block

View file

@ -11,7 +11,7 @@ import net.minecraft.creativetab.CreativeTabs
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{Item, ItemStack}
import net.minecraft.world.World
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemQuantumGlyph extends Item with TItemMultiPart with IHighlight
{

View file

@ -9,7 +9,7 @@ import net.minecraft.creativetab.CreativeTabs
import net.minecraft.item.{Item, ItemStack}
import net.minecraft.util.IIcon
import net.minecraft.world.World
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemAntimatter extends ItemCell
{

View file

@ -14,7 +14,7 @@ import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids.FluidStack
import resonant.api.tile.{IReactor, IReactorComponent}
import resonant.lib.transform.vector.Vector3
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* Fissile fuel rod

View file

@ -8,7 +8,7 @@ import net.minecraft.item.{Item, ItemStack}
import org.lwjgl.input.Keyboard
import resonant.lib.render.EnumColor
import resonant.lib.utility.LanguageUtility
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
/**
* Uranium

View file

@ -12,7 +12,7 @@ import resonant.lib.prefab.tile.item.ItemBlockSaved
import resonant.lib.transform.vector.Vector3
import resonant.lib.utility.LanguageUtility
import resonant.lib.utility.nbt.NBTUtility
import resonant.lib.wrapper.WrapList._
import resonant.lib.wrapper.CollectionWrapper._
class ItemBlockThermometer(block: Block) extends ItemBlockSaved(block: Block)
{