From db0708fcc42e7dcffa1045fe8d6664199792d09c Mon Sep 17 00:00:00 2001 From: Calclavia Date: Mon, 12 Jan 2015 10:24:51 +0800 Subject: [PATCH] Added glass jar ItemBlock --- .../archaic/process/mixing/ItemGlassJar.scala | 45 +++++++++++++++++++ .../archaic/process/mixing/TileGlassJar.scala | 3 +- 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 src/main/scala/resonantinduction/archaic/process/mixing/ItemGlassJar.scala diff --git a/src/main/scala/resonantinduction/archaic/process/mixing/ItemGlassJar.scala b/src/main/scala/resonantinduction/archaic/process/mixing/ItemGlassJar.scala new file mode 100644 index 000000000..a6c393c59 --- /dev/null +++ b/src/main/scala/resonantinduction/archaic/process/mixing/ItemGlassJar.scala @@ -0,0 +1,45 @@ +package resonantinduction.archaic.process.mixing + +import net.minecraft.block.Block +import net.minecraft.entity.Entity +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack +import net.minecraft.world.World +import resonant.lib.prefab.tile.item.ItemBlockSaved +import resonant.lib.transform.vector.{IVector3, Vector3} +import resonant.lib.utility.nbt.NBTUtility + +/** + * The ItemBlock for the glass jar + * @author Calclavia + */ +class ItemGlassJar(block: Block) extends ItemBlockSaved(block) +{ + var lastLook: Vector3 = null + + override def onUpdate(stack: ItemStack, world: World, entity: Entity, p_77663_4_ : Int, p_77663_5_ : Boolean): Unit = + { + val player = entity.asInstanceOf[EntityPlayer] + + if (!world.isRemote) + { + val currLook = new Vector3(player.getLookVec).asInstanceOf[IVector3] + + if (lastLook == null) + { + lastLook = currLook.asInstanceOf[Vector3] + } + + if (lastLook.distance(currLook) > 1.0D) + { + if (world.rand.nextFloat() < 0.05) + { + //Set mixed + NBTUtility.getNBTTagCompound(stack).setBoolean("mixed", true) + } + } + + lastLook = currLook.asInstanceOf[Vector3] + } + } +} \ No newline at end of file diff --git a/src/main/scala/resonantinduction/archaic/process/mixing/TileGlassJar.scala b/src/main/scala/resonantinduction/archaic/process/mixing/TileGlassJar.scala index 28a49dbb8..66338f84d 100644 --- a/src/main/scala/resonantinduction/archaic/process/mixing/TileGlassJar.scala +++ b/src/main/scala/resonantinduction/archaic/process/mixing/TileGlassJar.scala @@ -14,7 +14,6 @@ import org.lwjgl.opengl.GL11 import resonant.lib.factory.resources.item.TItemResource import resonant.lib.network.discriminator.PacketType import resonant.lib.network.handle.{TPacketReceiver, TPacketSender} -import resonant.lib.prefab.tile.item.ItemBlockSaved import resonant.lib.prefab.tile.spatial.SpatialTile import resonant.lib.render.RenderUtility import resonant.lib.render.model.ModelCube @@ -45,7 +44,7 @@ class TileGlassJar extends SpatialTile(Material.wood) with TPacketReceiver with bounds = new Cuboid(0.2, 0, 0.2, 0.8, 1, 0.8) normalRender = false isOpaqueCube = false - itemBlock = classOf[ItemBlockSaved] + itemBlock = classOf[ItemGlassJar] def percentage(material: String): Float = mixture(material) / mixtureSize.toFloat