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:oreRubble.name=%v Rubble
item.resonantinduction:bucketMixture.name=%v Bucket item.resonantinduction:bucketMixture.name=%v Bucket
item.resonantinduction:bucketMolten.name=%v Bucket item.resonantinduction:bucketMolten.name=%v Bucket
item.resonantinduction:bucketMolten.name=%v Bucket
#Misc #Misc
misc.ingot=Ingot misc.ingot=Ingot

View file

@ -1,13 +1,20 @@
package resonantinduction.archaic.process.mixing package resonantinduction.archaic.process.mixing
import java.util
import net.minecraft.block.Block import net.minecraft.block.Block
import net.minecraft.entity.Entity 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.ItemStack
import net.minecraft.world.World import net.minecraft.world.World
import org.lwjgl.input.Keyboard
import resonant.lib.prefab.tile.item.ItemBlockSaved import resonant.lib.prefab.tile.item.ItemBlockSaved
import resonant.lib.render.EnumColor
import resonant.lib.transform.vector.{IVector3, Vector3} import resonant.lib.transform.vector.{IVector3, Vector3}
import resonant.lib.utility.nbt.NBTUtility 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 * The ItemBlock for the glass jar
@ -17,6 +24,22 @@ class ItemGlassJar(block: Block) extends ItemBlockSaved(block)
{ {
var lastLook: Vector3 = null 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 = override def onUpdate(stack: ItemStack, world: World, entity: Entity, p_77663_4_ : Int, p_77663_5_ : Boolean): Unit =
{ {
val player = entity.asInstanceOf[EntityPlayer] 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.item.ItemStack
import net.minecraft.nbt.NBTTagCompound import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.ResourceLocation import net.minecraft.util.ResourceLocation
import net.minecraftforge.client.IItemRenderer.ItemRenderType
import net.minecraftforge.client.model.AdvancedModelLoader import net.minecraftforge.client.model.AdvancedModelLoader
import org.lwjgl.opengl.GL11 import org.lwjgl.opengl.GL11
import resonant.api.items.ISimpleItemRenderer
import resonant.lib.factory.resources.item.TItemResource import resonant.lib.factory.resources.item.TItemResource
import resonant.lib.network.discriminator.PacketType import resonant.lib.network.discriminator.PacketType
import resonant.lib.network.handle.{TPacketReceiver, TPacketSender} 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.region.Cuboid
import resonant.lib.transform.vector.Vector3 import resonant.lib.transform.vector.Vector3
import resonant.lib.utility.inventory.InventoryUtility import resonant.lib.utility.inventory.InventoryUtility
import resonant.lib.utility.nbt.NBTUtility
import resonant.lib.wrapper.ByteBufWrapper._ import resonant.lib.wrapper.ByteBufWrapper._
import resonantinduction.core.Reference import resonantinduction.core.Reference
import resonantinduction.core.resource.Alloy import resonantinduction.core.resource.Alloy
@ -38,7 +41,7 @@ object TileGlassJar
val dustMaterialTexture = new ResourceLocation(Reference.domain, Reference.blockTextureDirectory + "material_sand.png") 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 alloy = new Alloy(8)
var mixed = false var mixed = false
@ -87,6 +90,11 @@ class TileGlassJar extends SpatialTile(Material.wood) with TPacketReceiver with
InventoryUtility.dropItemStack(world, center, stack) InventoryUtility.dropItemStack(world, center, stack)
} }
override def renderInventoryItem(`type`: ItemRenderType, itemStack: ItemStack, data: AnyRef*): Unit =
{
renderInventory(itemStack)
}
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
override def renderInventory(itemStack: ItemStack): Unit = override def renderInventory(itemStack: ItemStack): Unit =
{ {
@ -118,10 +126,7 @@ class TileGlassJar extends SpatialTile(Material.wood) with TPacketReceiver with
{ {
val alloy: Alloy = val alloy: Alloy =
if (itemStack != null) if (itemStack != null)
if (itemStack.getTagCompound != null) new Alloy(NBTUtility.getNBTTagCompound(itemStack))
new Alloy(itemStack.getTagCompound)
else
null
else else
this.alloy this.alloy

View file

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