Buses now render properly in Item Frames.
Fixed Issue with Storage Monitor Renders. Fixed a render glitch on formation/annihilation entity form.
This commit is contained in:
@@ -1,18 +1,35 @@
|
||||
package appeng.client;
|
||||
|
||||
import static net.minecraftforge.client.IItemRenderer.ItemRenderType.ENTITY;
|
||||
import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.BLOCK_3D;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.particle.EntityFX;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.ForgeHooksClient;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.TESRWrapper;
|
||||
@@ -32,6 +49,89 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
public class ClientHelper extends ServerHelper
|
||||
{
|
||||
|
||||
private static RenderItem itemRenderer = new RenderItem();
|
||||
private static RenderBlocks blockRenderer = new RenderBlocks();
|
||||
|
||||
@Override
|
||||
public void doRenderItem(ItemStack itemstack, TileEntity par1EntityItemFrame)
|
||||
{
|
||||
if ( itemstack != null )
|
||||
{
|
||||
EntityItem entityitem = new EntityItem( par1EntityItemFrame.getWorldObj(), 0.0D, 0.0D, 0.0D, itemstack );
|
||||
entityitem.getEntityItem().stackSize = 1;
|
||||
|
||||
// set all this stuff and then do shit? meh?
|
||||
entityitem.hoverStart = 0;
|
||||
entityitem.age = 0;
|
||||
entityitem.rotationYaw = 0;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef( 0, -0.04F, 0 );
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
// GL11.glDisable( GL11.GL_CULL_FACE );
|
||||
|
||||
if ( itemstack.isItemEnchanted() )
|
||||
{
|
||||
GL11.glTranslatef( 0.0f, -0.05f, -0.25f );
|
||||
GL11.glScalef( 1.0f / 1.5f, 1.0f / 1.5f, 1.0f / 1.5f );
|
||||
// GL11.glTranslated( -8.0, -12.2, -10.6 );
|
||||
GL11.glScalef( 1.0f, -1.0f, 0.005f );
|
||||
// GL11.glScalef( 1.0f , -1.0f, 1.0f );
|
||||
|
||||
Block block = Block.getBlockFromItem( itemstack.getItem() );
|
||||
if ( (itemstack.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d( block.getRenderType() )) )
|
||||
{
|
||||
GL11.glRotatef( 25.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( 15.0f, 0.0f, 1.0f, 0.0f );
|
||||
GL11.glRotatef( 30.0f, 0.0f, 1.0f, 0.0f );
|
||||
}
|
||||
|
||||
IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer( itemstack, ENTITY );
|
||||
if ( customRenderer != null && !(itemstack.getItem() instanceof ItemBlock) )
|
||||
{
|
||||
if ( customRenderer.shouldUseRenderHelper( ENTITY, itemstack, BLOCK_3D ) )
|
||||
{
|
||||
GL11.glTranslatef( 0, -0.04F, 0 );
|
||||
GL11.glScalef( 0.7f, 0.7f, 0.7f );
|
||||
GL11.glRotatef( 35, 1, 0, 0 );
|
||||
GL11.glRotatef( 45, 0, 1, 0 );
|
||||
GL11.glRotatef( -90, 0, 1, 0 );
|
||||
}
|
||||
}
|
||||
else if ( itemstack.getItem() instanceof ItemBlock )
|
||||
{
|
||||
GL11.glTranslatef( 0, -0.04F, 0 );
|
||||
GL11.glScalef( 1.1f, 1.1f, 1.1f );
|
||||
GL11.glRotatef( -90, 0, 1, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glTranslatef( 0, -0.14F, 0 );
|
||||
GL11.glScalef( 0.8f, 0.8f, 0.8f );
|
||||
}
|
||||
|
||||
RenderItem.renderInFrame = true;
|
||||
RenderManager.instance.renderEntityWithPosYaw( entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F );
|
||||
RenderItem.renderInFrame = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glScalef( 1.0f / 42.0f, 1.0f / 42.0f, 1.0f / 42.0f );
|
||||
GL11.glTranslated( -8.0, -10.2, -10.4 );
|
||||
GL11.glScalef( 1.0f, 1.0f, 0.005f );
|
||||
|
||||
RenderItem.renderInFrame = false;
|
||||
FontRenderer fr = Minecraft.getMinecraft().fontRenderer;
|
||||
if ( !ForgeHooksClient.renderInventoryItem( blockRenderer, Minecraft.getMinecraft().renderEngine, itemstack, true, 0, (float) 0, (float) 0 ) )
|
||||
{
|
||||
itemRenderer.renderItemIntoGUI( fr, Minecraft.getMinecraft().renderEngine, itemstack, 0, 0, false );
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user