generated from tilera/1710mod
92 lines
3.2 KiB
Java
92 lines
3.2 KiB
Java
|
package electricexpansion.client.render;
|
||
|
|
||
|
import cpw.mods.fml.relauncher.Side;
|
||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||
|
import electricexpansion.client.model.ModelTransformer;
|
||
|
import electricexpansion.common.tile.TileEntityTransformer;
|
||
|
import net.minecraft.client.Minecraft;
|
||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||
|
import net.minecraft.entity.player.EntityPlayer;
|
||
|
import net.minecraft.tileentity.TileEntity;
|
||
|
import net.minecraft.util.MovingObjectPosition;
|
||
|
import net.minecraft.util.ResourceLocation;
|
||
|
import org.lwjgl.opengl.GL11;
|
||
|
import universalelectricity.core.vector.Vector3;
|
||
|
|
||
|
@SideOnly(Side.CLIENT)
|
||
|
public class RenderTransformer extends TileEntitySpecialRenderer {
|
||
|
private ModelTransformer model;
|
||
|
private String textureToUse;
|
||
|
|
||
|
public RenderTransformer() {
|
||
|
this.model = new ModelTransformer();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void renderTileEntityAt(final TileEntity tileEntity, final double x,
|
||
|
final double y, final double z,
|
||
|
final float var5) {
|
||
|
this.textureToUse = "textures/models/";
|
||
|
final String status = ((TileEntityTransformer) tileEntity).stepUp ? "Step Up" : "Step Down";
|
||
|
final EntityPlayer player = (EntityPlayer) Minecraft.getMinecraft().thePlayer;
|
||
|
final MovingObjectPosition movingPosition = player.rayTrace(5.0, 1.0f);
|
||
|
if (movingPosition != null &&
|
||
|
new Vector3(tileEntity).equals(new Vector3(movingPosition))) {
|
||
|
RenderFloatingText.renderFloatingText(status, (float) ((float) x + 0.5),
|
||
|
(float) y - 1.0f,
|
||
|
(float) ((float) z + 0.5));
|
||
|
}
|
||
|
final int metadata = tileEntity.getWorldObj().getBlockMetadata(
|
||
|
tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||
|
switch (metadata) {
|
||
|
case 0:
|
||
|
case 1:
|
||
|
case 2:
|
||
|
case 3:
|
||
|
this.textureToUse += "transformer1.png";
|
||
|
break;
|
||
|
|
||
|
case 4:
|
||
|
case 5:
|
||
|
case 6:
|
||
|
case 7:
|
||
|
// case 8:
|
||
|
this.textureToUse += "transformer2.png";
|
||
|
break;
|
||
|
|
||
|
case 8:
|
||
|
case 9:
|
||
|
case 10:
|
||
|
case 11:
|
||
|
// case 12:
|
||
|
this.textureToUse += "transformer3.png";
|
||
|
break;
|
||
|
}
|
||
|
this.bindTexture(
|
||
|
new ResourceLocation("electricexpansion", this.textureToUse));
|
||
|
GL11.glPushMatrix();
|
||
|
GL11.glTranslatef((float) x + 0.5f, (float) y + 1.5f, (float) z + 0.5f);
|
||
|
switch (metadata % 4) {
|
||
|
case 0: {
|
||
|
GL11.glRotatef(270.0f, 0.0f, 1.0f, 0.0f);
|
||
|
break;
|
||
|
}
|
||
|
case 1: {
|
||
|
GL11.glRotatef(90.0f, 0.0f, 1.0f, 0.0f);
|
||
|
break;
|
||
|
}
|
||
|
case 2: {
|
||
|
GL11.glRotatef(0.0f, 0.0f, 1.0f, 0.0f);
|
||
|
break;
|
||
|
}
|
||
|
case 3: {
|
||
|
GL11.glRotatef(180.0f, 0.0f, 1.0f, 0.0f);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
GL11.glScalef(1.0f, -1.0f, -1.0f);
|
||
|
this.model.render(null, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f);
|
||
|
GL11.glPopMatrix();
|
||
|
}
|
||
|
}
|