package net.tropicraft.client.tileentity;
import java.nio.FloatBuffer;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.tropicraft.block.tileentity.TileEntityBambooMug;
import net.tropicraft.client.block.model.ModelBambooMug;
import net.tropicraft.client.entity.model.ModelUmbrella;
import net.tropicraft.drinks.Drink;
import net.tropicraft.item.ItemCocktail;
import net.tropicraft.util.ColorHelper;
import net.tropicraft.util.TropicraftUtils;
import org.lwjgl.BufferUtils;
import org.lwjgl.opengl.GL11;
public class TileEntityBambooMugRenderer extends TileEntitySpecialRenderer {
private ModelBambooMug modelBambooMug = new ModelBambooMug();
private ModelUmbrella modelUmbrella = new ModelUmbrella();
@Override
public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float partialTicks) {
TileEntityBambooMug mug = (TileEntityBambooMug) tileentity;
TropicraftUtils.bindTextureTE("bamboomug");
GL11.glPushMatrix();
GL11.glTranslatef((float)x+0.5f,(float)y+1.5f,(float)z+0.5f);
GL11.glRotatef(180f, 1f, 0f, 1f);
int meta = mug.getMetadata();
if (meta == 2) {
GL11.glRotatef(0f, 0f, 1f, 0f);
} else if (meta == 3) {
GL11.glRotatef(180f, 0f, 1f, 0f);
} else if (meta == 4) {
GL11.glRotatef(270f, 0f, 1f, 0f);
} else if (meta == 5) {
GL11.glRotatef(90f, 0f, 1f, 0f);
}
if (!mug.isEmpty()) {
modelBambooMug.renderLiquid = true;
modelBambooMug.liquidColor = ItemCocktail.getCocktailColor(mug.cocktail);
} else {
modelBambooMug.renderLiquid = false;
}
modelBambooMug.renderBambooMug();
if (!mug.isEmpty()) {
Drink drink = ItemCocktail.getDrink(mug.cocktail);
if (drink != null && drink.hasUmbrella) {
GL11.glTranslatef(0f, 1.175f, 0f);
GL11.glRotatef(30f, 1f, 0f, 1f);
GL11.glScalef(0.25f, 0.25f, 0.25f);
float red = ColorHelper.getRed(11743532);
float green = ColorHelper.getGreen(11743532);
float blue = ColorHelper.getBlue(11743532);
// Draw arms of umbrella
// Minecraft.getMinecraft().renderEngine.bindTexture(TropicraftUtils.getTextureEntity("umbrellaLayer"));
// TropicraftUtils.bindTextureEntity("beachstuff/umbrellatextred");
// Draw arms of umbrella
Minecraft.getMinecraft().renderEngine.bindTexture(TropicraftUtils.getTextureEntity("umbrellaLayer"));
// GL11.glScalef(-1F, -1F, 1.0F);
modelUmbrella.renderUmbrella();
// Draw the colored part of the umbrella
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
// Change the color mode to blending
GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_BLEND);
FloatBuffer color = BufferUtils.createFloatBuffer(4).put(new float[]{red, green, blue, 1.0F});
color.position(0);
// Color it
GL11.glTexEnv(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_COLOR, color);
Minecraft.getMinecraft().renderEngine.bindTexture(TropicraftUtils.getTextureEntity("umbrellaColorLayer"));
modelUmbrella.renderUmbrella();
GL11.glDisable(GL11.GL_BLEND);
// Change the color mode back to modulation
GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);
GL11.glPopMatrix();
}
}
GL11.glPopMatrix();
}
}