// Path: src/main/java/universalcoins/tileentity/TileVendorFrame.java
// public class TileVendorFrame extends TileVendor {
// 
// 	String signText[] = { "", "", "", "" };
// 
// 	@Override
// 	public String getName() {
// 		return I18n.translateToLocal("tile.universalcoins.vendor_frame.name");
// 	}
// 
// 	public void updateSigns() {
// 
// 		if (!inventory.get(itemTradeSlot).isEmpty()) {
// 
// 			signText[0] = sellMode ? "&" + Integer.toHexString(textColor) + "Selling"
// 					: "&" + Integer.toHexString(textColor) + "Buying";
// 			// add out of stock notification if not infinite and no stock found
// 			if (!infiniteMode && sellMode && ooStockWarning) {
// 				signText[0] = "&" + Integer.toHexString(textColor) + (I18n.translateToLocal("sign.warning.stock"));
// 			}
// 			// add out of coins notification if buying and no funds available
// 			if (!sellMode && ooCoinsWarning && !infiniteMode) {
// 				signText[0] = "&" + Integer.toHexString(textColor) + (I18n.translateToLocal("sign.warning.coins"));
// 			}
// 			// add inventory full notification
// 			if (!sellMode && inventoryFullWarning) {
// 				signText[0] = "&" + Integer.toHexString(textColor)
// 						+ (I18n.translateToLocal("sign.warning.inventoryfull"));
// 			}
// 			if (inventory.get(itemTradeSlot).getCount() > 1) {
// 				signText[1] = "&" + Integer.toHexString(textColor) + inventory.get(itemTradeSlot).getCount() + " "
// 						+ inventory.get(itemTradeSlot).getDisplayName();
// 			} else {
// 				signText[1] = "&" + Integer.toHexString(textColor) + inventory.get(itemTradeSlot).getDisplayName();
// 			}
// 			if (inventory.get(itemTradeSlot).isItemEnchanted()) {
// 				signText[2] = "&" + Integer.toHexString(textColor);
// 				NBTTagList tagList = inventory.get(itemTradeSlot).getEnchantmentTagList();
// 				for (int i = 0; i < tagList.tagCount(); i++) {
// 					((NBTTagList) tagList).getCompoundTagAt(i);
// 				}
// 			} else
// 				signText[2] = "";
// 			if (inventory.get(itemTradeSlot).getItem() == UniversalCoins.Items.uc_package) {
// 				if (inventory.get(itemTradeSlot).getTagCompound() != null) {
// 					signText[2] = "&" + Integer.toHexString(textColor);
// 					NBTTagList tagList = inventory.get(itemTradeSlot).getTagCompound().getTagList("Inventory",
// 							Constants.NBT.TAG_COMPOUND);
// 					for (int i = 0; i < tagList.tagCount(); i++) {
// 						NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i);
// 						int itemCount = new ItemStack(tag).getCount();
// 						String itemName = new ItemStack(tag).getDisplayName();
// 						signText[2] += itemCount + ":" + itemName + " ";
// 					}
// 				}
// 			}
// 			signText[3] = "&" + Integer.toHexString(textColor) + "Price: " + itemPrice;
// 
// 			// find and update all signs
// 			TileEntity te;
// 			te = super.world.getTileEntity(new BlockPos(pos.getX(), pos.getY() - 1, pos.getZ()));
// 			if (te != null && te instanceof TileUCSign) {
// 				TileUCSign tesign = (TileUCSign) te;
// 				for (int i = 0; i < 4; i++) {
// 					tesign.signText[i] = new TextComponentString(this.signText[i]);
// 				}
// 				tesign.updateSign();
// 				tesign.markDirty();
// 			}
// 			te = super.world.getTileEntity(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ()));
// 			if (te != null && te instanceof TileUCSign) {
// 				TileUCSign tesign = (TileUCSign) te;
// 				for (int i = 0; i < 4; i++) {
// 					tesign.signText[i] = new TextComponentString(this.signText[i]);
// 				}
// 				tesign.updateSign();
// 				tesign.markDirty();
// 			}
// 		}
// 	}
// }


import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import universalcoins.tileentity.TileVendorFrame;
package universalcoins.render;


public class VendorFrameRenderer extends TileEntitySpecialRenderer<TileEntity> {

	public VendorFrameRenderer() {
	}

	@Override
	public void render(TileEntity te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
		// get trade item or block
		ItemStack itemstack = ((TileVendorFrame) te).getSellItem();

		// exit if nothing is set
		if (itemstack.isEmpty()) {
			return;
		}

		GlStateManager.pushMatrix();
		GlStateManager.disableLighting();

		// adjust block rotation based on block meta
		int meta = 0;
		try {
			meta = te.getBlockMetadata();
		} catch (Throwable ex2) {
			// do nothing
		}
		float correction = 0.0F;
		if (meta == 2) {
			correction = 0.0F;
		}
		if (meta == 3) {
			correction = 180.0F;
		}
		if (meta == 4) {
// Path: src/main/java/universalcoins/tileentity/TileVendorFrame.java
// public class TileVendorFrame extends TileVendor {
// 
// 	String signText[] = { "", "", "", "" };
// 
// 	@Override
// 	public String getName() {
// 		return I18n.translateToLocal("tile.universalcoins.vendor_frame.name");
// 	}
// 
// 	public void updateSigns() {
// 
// 		if (!inventory.get(itemTradeSlot).isEmpty()) {
// 
// 			signText[0] = sellMode ? "&" + Integer.toHexString(textColor) + "Selling"
// 					: "&" + Integer.toHexString(textColor) + "Buying";
// 			// add out of stock notification if not infinite and no stock found
// 			if (!infiniteMode && sellMode && ooStockWarning) {
// 				signText[0] = "&" + Integer.toHexString(textColor) + (I18n.translateToLocal("sign.warning.stock"));
// 			}
// 			// add out of coins notification if buying and no funds available
// 			if (!sellMode && ooCoinsWarning && !infiniteMode) {
// 				signText[0] = "&" + Integer.toHexString(textColor) + (I18n.translateToLocal("sign.warning.coins"));
// 			}
// 			// add inventory full notification
// 			if (!sellMode && inventoryFullWarning) {
// 				signText[0] = "&" + Integer.toHexString(textColor)
// 						+ (I18n.translateToLocal("sign.warning.inventoryfull"));
// 			}
// 			if (inventory.get(itemTradeSlot).getCount() > 1) {
// 				signText[1] = "&" + Integer.toHexString(textColor) + inventory.get(itemTradeSlot).getCount() + " "
// 						+ inventory.get(itemTradeSlot).getDisplayName();
// 			} else {
// 				signText[1] = "&" + Integer.toHexString(textColor) + inventory.get(itemTradeSlot).getDisplayName();
// 			}
// 			if (inventory.get(itemTradeSlot).isItemEnchanted()) {
// 				signText[2] = "&" + Integer.toHexString(textColor);
// 				NBTTagList tagList = inventory.get(itemTradeSlot).getEnchantmentTagList();
// 				for (int i = 0; i < tagList.tagCount(); i++) {
// 					((NBTTagList) tagList).getCompoundTagAt(i);
// 				}
// 			} else
// 				signText[2] = "";
// 			if (inventory.get(itemTradeSlot).getItem() == UniversalCoins.Items.uc_package) {
// 				if (inventory.get(itemTradeSlot).getTagCompound() != null) {
// 					signText[2] = "&" + Integer.toHexString(textColor);
// 					NBTTagList tagList = inventory.get(itemTradeSlot).getTagCompound().getTagList("Inventory",
// 							Constants.NBT.TAG_COMPOUND);
// 					for (int i = 0; i < tagList.tagCount(); i++) {
// 						NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i);
// 						int itemCount = new ItemStack(tag).getCount();
// 						String itemName = new ItemStack(tag).getDisplayName();
// 						signText[2] += itemCount + ":" + itemName + " ";
// 					}
// 				}
// 			}
// 			signText[3] = "&" + Integer.toHexString(textColor) + "Price: " + itemPrice;
// 
// 			// find and update all signs
// 			TileEntity te;
// 			te = super.world.getTileEntity(new BlockPos(pos.getX(), pos.getY() - 1, pos.getZ()));
// 			if (te != null && te instanceof TileUCSign) {
// 				TileUCSign tesign = (TileUCSign) te;
// 				for (int i = 0; i < 4; i++) {
// 					tesign.signText[i] = new TextComponentString(this.signText[i]);
// 				}
// 				tesign.updateSign();
// 				tesign.markDirty();
// 			}
// 			te = super.world.getTileEntity(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ()));
// 			if (te != null && te instanceof TileUCSign) {
// 				TileUCSign tesign = (TileUCSign) te;
// 				for (int i = 0; i < 4; i++) {
// 					tesign.signText[i] = new TextComponentString(this.signText[i]);
// 				}
// 				tesign.updateSign();
// 				tesign.markDirty();
// 			}
// 		}
// 	}
// }


// Path: src/main/java/universalcoins/render/VendorFrameRenderer.java
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import universalcoins.tileentity.TileVendorFrame;

package universalcoins.render;


public class VendorFrameRenderer extends TileEntitySpecialRenderer<TileEntity> {

	public VendorFrameRenderer() {
	}

	@Override
	public void render(TileEntity te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
		// get trade item or block
		ItemStack itemstack = ((TileVendorFrame) te).getSellItem();

		// exit if nothing is set
		if (itemstack.isEmpty()) {
			return;
		}

		GlStateManager.pushMatrix();
		GlStateManager.disableLighting();

		// adjust block rotation based on block meta
		int meta = 0;
		try {
			meta = te.getBlockMetadata();
		} catch (Throwable ex2) {
			// do nothing
		}
		float correction = 0.0F;
		if (meta == 2) {
			correction = 0.0F;
		}
		if (meta == 3) {
			correction = 180.0F;
		}
		if (meta == 4) {
			correction = 90.0F;