114 lines
No EOL
2.8 KiB
Java
114 lines
No EOL
2.8 KiB
Java
package resonantinduction.old.client.render;
|
|
|
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.MathHelper;
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import resonantinduction.core.Reference;
|
|
import resonantinduction.core.prefab.tile.TileEntityMachine;
|
|
import resonantinduction.old.client.model.ModelMachine;
|
|
import resonantinduction.old.client.model.ModelSteamGen;
|
|
import resonantinduction.old.client.model.ModelSteamTurbine;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class RenderSteamGen extends TileEntitySpecialRenderer
|
|
{
|
|
public static final ModelSteamTurbine TURBINE_MODEL = new ModelSteamTurbine();
|
|
public static final ModelSteamGen STEAM_GEN_MODEL = new ModelSteamGen();
|
|
|
|
public static final ResourceLocation TURBINE_TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_DIRECTORY + "SmallSteamFan.png");
|
|
public static final ResourceLocation STEAM_GEN_TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_DIRECTORY + "SteamGenerator.png");
|
|
private static float rot1 = 0;
|
|
|
|
@Override
|
|
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float size)
|
|
{
|
|
int meta = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
|
int face = meta % 4;
|
|
ModelMachine model = getModel(meta);
|
|
|
|
if (model != null)
|
|
{
|
|
bindTexture(RenderSteamGen.getTexture(meta));
|
|
rot1 = MathHelper.wrapAngleTo180_float(rot1 + 1);
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
|
|
GL11.glScalef(1.0F, -1F, -1F);
|
|
|
|
if (face == 0)
|
|
{
|
|
GL11.glRotatef(180f, 0f, 1f, 0f);
|
|
}
|
|
if (face == 2)
|
|
{
|
|
GL11.glRotatef(0f, 0f, 1f, 0f);
|
|
}
|
|
else if (face == 3)
|
|
{
|
|
GL11.glRotatef(90f, 0f, 1f, 0f);
|
|
}
|
|
else if (face == 1)
|
|
{
|
|
GL11.glRotatef(270f, 0f, 1f, 0f);
|
|
}
|
|
|
|
model.render(0.0625F);
|
|
|
|
if (tileEntity instanceof TileEntityMachine)
|
|
{
|
|
if (model instanceof ModelSteamTurbine)
|
|
{
|
|
if (((TileEntityMachine) tileEntity).isFunctioning())
|
|
{
|
|
GL11.glRotatef(RenderSteamGen.rot1, 0f, 1f, 0f);
|
|
}
|
|
((ModelSteamTurbine) model).renderFan(0.0625F);
|
|
}
|
|
}
|
|
|
|
GL11.glPopMatrix();
|
|
}
|
|
|
|
}
|
|
|
|
public static ModelMachine getModel(int meta)
|
|
{
|
|
switch (meta / 4)
|
|
{
|
|
|
|
case 0:
|
|
return TURBINE_MODEL;
|
|
case 1:
|
|
return TURBINE_MODEL;
|
|
case 2:
|
|
return STEAM_GEN_MODEL;
|
|
case 3:
|
|
return STEAM_GEN_MODEL;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static ResourceLocation getTexture(int meta)
|
|
{
|
|
switch (meta / 4)
|
|
{
|
|
|
|
case 0:
|
|
return TURBINE_TEXTURE;
|
|
case 1:
|
|
return TURBINE_TEXTURE;
|
|
case 2:
|
|
return STEAM_GEN_TEXTURE;
|
|
case 3:
|
|
return STEAM_GEN_TEXTURE;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
} |