750bb2dab7
Notice that all Mekanism machines that perform similar tasks have a similar ending word; for example, the Metallurgic Infuser infuses alloys into ingots, and the Chemical Infuser infuses chemicals into other chemicals. Every ore processing machine has "Chamber" as the final word, and as this is not directly linked to ore processing, it would be best to move the "Oxidation" side of the machine to the end. Furthermore, for this chemical line, I am trying to keep "Chemical" as the first word in each machine title: Chemical Infuser, Chemical Oxidizer, Chemical Injection Chamber, etc. Hope that makes sense!
141 lines
5 KiB
Java
141 lines
5 KiB
Java
package mekanism.client.render.block;
|
|
|
|
import mekanism.client.ClientProxy;
|
|
import mekanism.client.model.ModelChargepad;
|
|
import mekanism.client.model.ModelChemicalOxidizer;
|
|
import mekanism.client.model.ModelDigitalMiner;
|
|
import mekanism.client.model.ModelElectricPump;
|
|
import mekanism.client.model.ModelLogisticalSorter;
|
|
import mekanism.client.model.ModelMetallurgicInfuser;
|
|
import mekanism.client.model.ModelRotaryCondensentrator;
|
|
import mekanism.client.render.MekanismRenderer;
|
|
import mekanism.common.block.BlockMachine.MachineType;
|
|
import mekanism.common.util.MekanismUtils;
|
|
import mekanism.common.util.MekanismUtils.ResourceType;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.renderer.RenderBlocks;
|
|
import net.minecraft.world.IBlockAccess;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
|
|
{
|
|
public ModelElectricPump electricPump = new ModelElectricPump();
|
|
public ModelMetallurgicInfuser metallurgicInfuser = new ModelMetallurgicInfuser();
|
|
public ModelChargepad chargepad = new ModelChargepad();
|
|
public ModelLogisticalSorter logisticalSorter = new ModelLogisticalSorter();
|
|
public ModelDigitalMiner digitalMiner = new ModelDigitalMiner();
|
|
public ModelRotaryCondensentrator rotaryCondensentrator = new ModelRotaryCondensentrator();
|
|
public ModelChemicalOxidizer chemicalOxidizer = new ModelChemicalOxidizer();
|
|
|
|
@Override
|
|
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
|
|
{
|
|
if(block == null || renderer == null || MachineType.get(block.blockID, metadata) == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
|
|
|
|
MachineType type = MachineType.get(block.blockID, metadata);
|
|
|
|
if(type == MachineType.ELECTRIC_PUMP)
|
|
{
|
|
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
|
GL11.glRotatef(90F, 0.0F, -1.0F, 0.0F);
|
|
GL11.glTranslatef(0.0F, -0.85F, 0.0F);
|
|
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectricPump.png"));
|
|
electricPump.render(0.0560F);
|
|
}
|
|
else if(type == MachineType.METALLURGIC_INFUSER)
|
|
{
|
|
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
|
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
|
|
GL11.glTranslatef(0.0F, -1.0F, 0.0F);
|
|
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "MetallurgicInfuser.png"));
|
|
metallurgicInfuser.render(0.0625F);
|
|
}
|
|
else if(type == MachineType.CHARGEPAD)
|
|
{
|
|
GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
|
|
GL11.glTranslatef(0.0F, -1.1F, 0.0F);
|
|
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Chargepad.png"));
|
|
chargepad.render(0.0625F);
|
|
}
|
|
else if(type == MachineType.LOGISTICAL_SORTER)
|
|
{
|
|
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
|
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
|
|
GL11.glTranslatef(0.0F, -0.85F, -0.15F);
|
|
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "LogisticalSorter.png"));
|
|
logisticalSorter.render(0.0625F, false);
|
|
}
|
|
else if(type == MachineType.DIGITAL_MINER)
|
|
{
|
|
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
|
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
|
|
GL11.glTranslatef(-0.2F, -0.3F, 0.0F);
|
|
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner.png"));
|
|
digitalMiner.render(0.03125F, false);
|
|
}
|
|
else if(type == MachineType.ROTARY_CONDENSENTRATOR)
|
|
{
|
|
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
|
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
|
|
GL11.glTranslatef(0.0F, -1.06F, 0.05F);
|
|
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "RotaryCondensentrator.png"));
|
|
rotaryCondensentrator.render(0.0625F);
|
|
}
|
|
else if(type == MachineType.CHEMICAL_OXIDIZER)
|
|
{
|
|
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
|
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
|
|
GL11.glTranslatef(0.0F, -1.06F, 0.05F);
|
|
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ChemicalOxidizer.png"));
|
|
chemicalOxidizer.render(0.0625F);
|
|
}
|
|
else {
|
|
MekanismRenderer.renderItem(renderer, metadata, block);
|
|
}
|
|
|
|
GL11.glPopMatrix();
|
|
}
|
|
|
|
@Override
|
|
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
|
|
{
|
|
int metadata = world.getBlockMetadata(x, y, z);
|
|
|
|
if(MachineType.get(block.blockID, metadata) != null)
|
|
{
|
|
if(!MachineType.get(block.blockID, metadata).hasModel)
|
|
{
|
|
renderer.renderStandardBlock(block, x, y, z);
|
|
renderer.setRenderBoundsFromBlock(block);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRender3DInInventory()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public int getRenderId()
|
|
{
|
|
return ClientProxy.MACHINE_RENDER_ID;
|
|
}
|
|
}
|