equivalent-exchange-3/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAugmentat...

69 lines
2.4 KiB
Java

package com.pahimar.ee3.client.renderer.tileentity;
import com.pahimar.ee3.client.renderer.model.ModelAugmentationTable;
import com.pahimar.ee3.reference.Textures;
import com.pahimar.ee3.tileentity.TileEntityAugmentationTable;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
public class TileEntityRendererAugmentationTable extends TileEntitySpecialRenderer
{
private final ModelAugmentationTable modelAugmentationTable = new ModelAugmentationTable();
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick)
{
if (tileEntity instanceof TileEntityAugmentationTable)
{
TileEntityAugmentationTable tileEntityAugmentationTable = (TileEntityAugmentationTable) tileEntity;
ForgeDirection direction = tileEntityAugmentationTable.getOrientation();
GL11.glPushMatrix();
// Scale, Translate, Rotate
scaleTranslateRotate(x, y, z, direction);
// Bind texture
this.bindTexture(Textures.Model.AUGMENTATION_TABLE);
// Render
modelAugmentationTable.render();
GL11.glPopMatrix();
}
}
private void scaleTranslateRotate(double x, double y, double z, ForgeDirection orientation)
{
if (orientation == ForgeDirection.NORTH)
{
GL11.glTranslated(x + 0.4d, y + 0.42d, z + 0.5d);
GL11.glScalef(0.25F, 0.27F, 0.25F);
GL11.glRotatef(180, 0.0F, 1.0F, 0.0F);
}
else if (orientation == ForgeDirection.EAST)
{
GL11.glTranslated(x + 0.5d, y + 0.42d, z + 0.4d);
GL11.glScalef(0.25F, 0.27F, 0.25F);
GL11.glRotatef(90, 0.0F, 1.0F, 0.0F);
}
else if (orientation == ForgeDirection.SOUTH)
{
GL11.glTranslated(x + 0.6d, y + 0.42d, z + 0.5d);
GL11.glScalef(0.25F, 0.27F, 0.25F);
GL11.glRotatef(0, 0.0F, 1.0F, 0.0F);
}
else if (orientation == ForgeDirection.WEST)
{
GL11.glTranslated(x + 0.5d, y + 0.42d, z + 0.6d);
GL11.glScalef(0.25F, 0.27F, 0.25F);
GL11.glRotatef(-90, 0.0F, 1.0F, 0.0F);
}
}
}