Skip to content

Commit

Permalink
Seared Tank/Glass/Window now render their liquids in inventory! yay!
Browse files Browse the repository at this point in the history
  • Loading branch information
bonii-xx committed Sep 14, 2014
1 parent 593af6b commit 4e5011f
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 1 deletion.
7 changes: 7 additions & 0 deletions src/main/java/tconstruct/smeltery/SmelteryProxyClient.java
Expand Up @@ -5,8 +5,11 @@
import mantle.lib.client.MantleClientRegistry;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.*;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.RenderBlockFluid;
import tconstruct.armor.TinkerArmor;
Expand Down Expand Up @@ -43,6 +46,10 @@ void registerRenderer ()
RenderingRegistry.registerBlockHandler(new RenderBlockFluid());
RenderingRegistry.registerBlockHandler(new BlockRenderCastingChannel());

IItemRenderer tankItemRenderer = new TankItemRenderer();
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(TinkerSmeltery.lavaTank), tankItemRenderer);
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(TinkerSmeltery.lavaTankNether), tankItemRenderer);

if (!PHConstruct.newSmeltery)
{
RenderingRegistry.registerBlockHandler(new SmelteryRender());
Expand Down
47 changes: 47 additions & 0 deletions src/main/java/tconstruct/smeltery/model/TankItemRenderer.java
@@ -0,0 +1,47 @@
package tconstruct.smeltery.model;

import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
import tconstruct.util.ItemHelper;

public class TankItemRenderer implements IItemRenderer {
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return type == ItemRenderType.INVENTORY || type == ItemRenderType.ENTITY;
}

@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return true;
}

@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
// should be impossible to happen, but rather be safe

RenderBlocks renderblocks = (RenderBlocks) data[0];
Block block = Block.getBlockFromItem(item.getItem());
int meta = item.getItemDamage();

if(item.hasTagCompound() && item.getTagCompound().hasKey("Fluid"))
{
FluidStack liquid = FluidStack.loadFluidStackFromNBT(item.getTagCompound().getCompoundTag("Fluid"));
if(liquid != null && liquid.getFluid().getBlock() != null)
{
float height = (float)liquid.amount / 4000f - 0.01f;
renderblocks.setRenderBounds(0.01, 0.01, 0.01, 0.99, height, 0.99);
GL11.glEnable(GL11.GL_BLEND);
ItemHelper.renderStandardInvBlock(renderblocks, liquid.getFluid().getBlock(), 0);
}
}

renderblocks.setRenderBounds(0, 0, 0, 1, 1, 1);
//ItemHelper.renderStandardInvBlock(renderblocks, block, meta);
RenderingRegistry.instance().renderInventoryBlock(renderblocks, block, meta, TankRender.tankModelID);
}
}
3 changes: 2 additions & 1 deletion src/main/java/tconstruct/smeltery/model/TankRender.java
Expand Up @@ -22,6 +22,7 @@ public void renderInventoryBlock (Block block, int metadata, int modelID, Render
if (modelID == tankModelID)
{
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
// the thingie on top of lava tanks
if (metadata == 0)
{
renderer.setRenderBounds(0.1875, 0, 0.1875, 0.8125, 0.125, 0.8125);
Expand All @@ -46,7 +47,7 @@ public boolean renderWorldBlock (IBlockAccess world, int x, int y, int z, Block
Fluid fluid = liquid.getFluid();
BlockSkinRenderHelper.renderLiquidBlock(fluid.getStillIcon(), fluid.getStillIcon(), x, y, z, renderer, world, true);

renderer.setRenderBounds(00, 0.001, 0.001, 0.999, logic.getFluidAmountScaled(), 0.999);
renderer.setRenderBounds(0, 0.001, 0.001, 0.999, logic.getFluidAmountScaled(), 0.999);
}
}
//Block
Expand Down

0 comments on commit 4e5011f

Please sign in to comment.