Some work on glass jar item rendering

This commit is contained in:
Calclavia 2015-01-13 16:43:24 +08:00
parent d3ebaac06d
commit 3c70f362a4
4 changed files with 38 additions and 6 deletions

View file

@ -23,6 +23,7 @@ item.resonantinduction:oreRefinedDust.name=%v Refined Dust
item.resonantinduction:oreRubble.name=%v Rubble
item.resonantinduction:bucketMixture.name=%v Bucket
item.resonantinduction:bucketMolten.name=%v Bucket
item.resonantinduction:bucketMolten.name=%v Bucket
#Misc
misc.ingot=Ingot

View file

@ -1,13 +1,20 @@
package resonantinduction.archaic.process.mixing
import java.util
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 org.lwjgl.input.Keyboard
import resonant.lib.prefab.tile.item.ItemBlockSaved
import resonant.lib.render.EnumColor
import resonant.lib.transform.vector.{IVector3, Vector3}
import resonant.lib.utility.nbt.NBTUtility
import resonant.lib.wrapper.StringWrapper._
import resonant.lib.wrapper.WrapList._
import resonantinduction.core.resource.Alloy
/**
* The ItemBlock for the glass jar
@ -17,6 +24,22 @@ class ItemGlassJar(block: Block) extends ItemBlockSaved(block)
{
var lastLook: Vector3 = null
override def addInformation(itemStack: ItemStack, player: EntityPlayer, list: util.List[_], par4: Boolean)
{
super.addInformation(itemStack, player, list, par4)
if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
{
list.add("tooltip.noShift".getLocal.replace("#0", EnumColor.AQUA.toString).replace("#1", EnumColor.GREY.toString))
}
else
{
val nbt = NBTUtility.getNBTTagCompound(itemStack)
val alloy = new Alloy(nbt)
alloy.content.map(c => EnumColor.ORANGE + c._1.capitalizeFirst + EnumColor.DARK_RED + " " + Math.round(alloy.percentage(c._1) * 100) + "%").foreach(m => list.add(m))
}
}
override def onUpdate(stack: ItemStack, world: World, entity: Entity, p_77663_4_ : Int, p_77663_5_ : Boolean): Unit =
{
val player = entity.asInstanceOf[EntityPlayer]

View file

@ -11,8 +11,10 @@ import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack
import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.ResourceLocation
import net.minecraftforge.client.IItemRenderer.ItemRenderType
import net.minecraftforge.client.model.AdvancedModelLoader
import org.lwjgl.opengl.GL11
import resonant.api.items.ISimpleItemRenderer
import resonant.lib.factory.resources.item.TItemResource
import resonant.lib.network.discriminator.PacketType
import resonant.lib.network.handle.{TPacketReceiver, TPacketSender}
@ -23,6 +25,7 @@ import resonant.lib.render.model.ModelCube
import resonant.lib.transform.region.Cuboid
import resonant.lib.transform.vector.Vector3
import resonant.lib.utility.inventory.InventoryUtility
import resonant.lib.utility.nbt.NBTUtility
import resonant.lib.wrapper.ByteBufWrapper._
import resonantinduction.core.Reference
import resonantinduction.core.resource.Alloy
@ -38,7 +41,7 @@ object TileGlassJar
val dustMaterialTexture = new ResourceLocation(Reference.domain, Reference.blockTextureDirectory + "material_sand.png")
}
class TileGlassJar extends SpatialTile(Material.wood) with TPacketReceiver with TPacketSender
class TileGlassJar extends SpatialTile(Material.wood) with TPacketReceiver with TPacketSender with ISimpleItemRenderer
{
var alloy = new Alloy(8)
var mixed = false
@ -87,6 +90,11 @@ class TileGlassJar extends SpatialTile(Material.wood) with TPacketReceiver with
InventoryUtility.dropItemStack(world, center, stack)
}
override def renderInventoryItem(`type`: ItemRenderType, itemStack: ItemStack, data: AnyRef*): Unit =
{
renderInventory(itemStack)
}
@SideOnly(Side.CLIENT)
override def renderInventory(itemStack: ItemStack): Unit =
{
@ -118,10 +126,7 @@ class TileGlassJar extends SpatialTile(Material.wood) with TPacketReceiver with
{
val alloy: Alloy =
if (itemStack != null)
if (itemStack.getTagCompound != null)
new Alloy(itemStack.getTagCompound)
else
null
new Alloy(NBTUtility.getNBTTagCompound(itemStack))
else
this.alloy

View file

@ -13,10 +13,12 @@ import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.Item
import net.minecraft.tileentity.TileEntity
import net.minecraft.world.World
import resonant.lib.render.wrapper.ItemRenderHandler
import resonant.lib.render.fx.FXElectricBolt2
import resonant.lib.render.wrapper.ItemRenderHandler
import resonant.lib.transform.vector.Vector3
import resonantinduction.archaic.ArchaicContent
import resonantinduction.archaic.firebox.{RenderHotPlate, TileHotPlate}
import resonantinduction.archaic.process.mixing.TileGlassJar
import resonantinduction.archaic.process.{RenderCastingMold, RenderMillstone, TileCastingMold, TileMillstone}
import resonantinduction.atomic.gate.RenderQuantumGlyph
import resonantinduction.atomic.machine.accelerator.{EntityParticle, GuiAccelerator, RenderParticle, TileAccelerator}
@ -50,6 +52,7 @@ import resonantinduction.mechanical.mech.turbine._
override def init()
{
//Mech content TODO no-load if mech content is not loaded
ItemRenderHandler.register(Item.getItemFromBlock(ArchaicContent.blockJar), new TileGlassJar)
ItemRenderHandler.register(MechanicalContent.itemGear, RenderGear)
ItemRenderHandler.register(MechanicalContent.itemGearShaft, RenderGearShaft)
ItemRenderHandler.register(MechanicalContent.itemPipe, RenderPipe)