2013-12-11 22:34:54 +01:00
|
|
|
package mekanism.client.gui;
|
|
|
|
|
2014-01-10 23:42:53 +01:00
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import mekanism.api.ListUtils;
|
2013-12-12 02:24:37 +01:00
|
|
|
import mekanism.api.gas.GasStack;
|
2014-01-10 23:42:53 +01:00
|
|
|
import mekanism.client.gui.GuiEnergyInfo.IInfoHandler;
|
2013-12-12 02:24:37 +01:00
|
|
|
import mekanism.client.render.MekanismRenderer;
|
Rename Oxidation Chamber to Chemical Oxidizer and added model, will explain why below. This means a minor lang update @crafteverywhere, @VeryBigBro, @Vexatos
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!
2013-12-31 21:07:09 +01:00
|
|
|
import mekanism.common.inventory.container.ContainerChemicalOxidizer;
|
2014-01-08 02:55:50 +01:00
|
|
|
import mekanism.common.tile.TileEntityChemicalOxidizer;
|
2013-12-12 02:24:37 +01:00
|
|
|
import mekanism.common.util.MekanismUtils;
|
|
|
|
import mekanism.common.util.MekanismUtils.ResourceType;
|
|
|
|
import net.minecraft.entity.player.InventoryPlayer;
|
|
|
|
import net.minecraftforge.fluids.FluidStack;
|
|
|
|
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
|
|
|
|
@SideOnly(Side.CLIENT)
|
Rename Oxidation Chamber to Chemical Oxidizer and added model, will explain why below. This means a minor lang update @crafteverywhere, @VeryBigBro, @Vexatos
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!
2013-12-31 21:07:09 +01:00
|
|
|
public class GuiChemicalOxidizer extends GuiMekanism
|
2013-12-11 22:34:54 +01:00
|
|
|
{
|
2014-03-08 02:00:25 +01:00
|
|
|
public TileEntityChemicalOxidizer tileEntity;
|
|
|
|
|
|
|
|
public GuiChemicalOxidizer(InventoryPlayer inventory, TileEntityChemicalOxidizer tentity)
|
|
|
|
{
|
|
|
|
super(tentity, new ContainerChemicalOxidizer(inventory, tentity));
|
|
|
|
tileEntity = tentity;
|
|
|
|
|
|
|
|
guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png")));
|
|
|
|
guiElements.add(new GuiEnergyInfo(new IInfoHandler() {
|
|
|
|
@Override
|
|
|
|
public List<String> getInfo()
|
|
|
|
{
|
|
|
|
String multiplier = MekanismUtils.getEnergyDisplay(tileEntity.ENERGY_USAGE);
|
|
|
|
return ListUtils.asList("Using: " + multiplier + "/t", "Needed: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy()));
|
|
|
|
}
|
|
|
|
}, this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png")));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
|
|
|
{
|
2013-12-12 02:24:37 +01:00
|
|
|
int xAxis = (mouseX - (width - xSize) / 2);
|
|
|
|
int yAxis = (mouseY - (height - ySize) / 2);
|
2014-03-08 02:00:25 +01:00
|
|
|
|
|
|
|
fontRenderer.drawString(tileEntity.getInvName(), 45, 6, 0x404040);
|
|
|
|
fontRenderer.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize - 96) + 2, 0x404040);
|
|
|
|
|
2013-12-12 02:24:37 +01:00
|
|
|
if(xAxis >= 116 && xAxis <= 168 && yAxis >= 76 && yAxis <= 80)
|
|
|
|
{
|
|
|
|
drawCreativeTabHoveringText(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), xAxis, yAxis);
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2013-12-12 02:24:37 +01:00
|
|
|
if(xAxis >= 134 && xAxis <= 150 && yAxis >= 14 && yAxis <= 72)
|
|
|
|
{
|
2013-12-12 22:54:55 +01:00
|
|
|
drawCreativeTabHoveringText(tileEntity.gasTank.getGas() != null ? tileEntity.gasTank.getGas().getGas().getLocalizedName() + ": " + tileEntity.gasTank.getStored() : MekanismUtils.localize("gui.empty"), xAxis, yAxis);
|
2013-12-12 02:24:37 +01:00
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
|
|
|
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY)
|
|
|
|
{
|
|
|
|
super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY);
|
|
|
|
|
|
|
|
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png"));
|
|
|
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
|
|
|
int guiWidth = (width - xSize) / 2;
|
|
|
|
int guiHeight = (height - ySize) / 2;
|
|
|
|
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
|
|
|
|
|
|
|
|
int xAxis = mouseX - guiWidth;
|
2013-12-12 02:24:37 +01:00
|
|
|
int yAxis = mouseY - guiHeight;
|
2014-03-08 02:00:25 +01:00
|
|
|
|
|
|
|
int displayInt;
|
|
|
|
|
|
|
|
displayInt = tileEntity.getScaledEnergyLevel(52);
|
|
|
|
drawTexturedModalRect(guiWidth + 116, guiHeight + 76, 176, 0, displayInt, 4);
|
|
|
|
|
|
|
|
displayInt = tileEntity.getScaledProgress(48);
|
|
|
|
drawTexturedModalRect(guiWidth + 64, guiHeight + 40, 176, 63, displayInt + 1, 8);
|
|
|
|
|
|
|
|
if(tileEntity.getScaledGasLevel(58) > 0)
|
|
|
|
{
|
|
|
|
displayGauge(134, 14, tileEntity.getScaledGasLevel(58), null, tileEntity.gasTank.getGas());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-12-12 02:24:37 +01:00
|
|
|
public void displayGauge(int xPos, int yPos, int scale, FluidStack fluid, GasStack gas)
|
|
|
|
{
|
2014-03-08 02:00:25 +01:00
|
|
|
if(fluid == null && gas == null)
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
int guiWidth = (width - xSize) / 2;
|
|
|
|
int guiHeight = (height - ySize) / 2;
|
|
|
|
|
2013-12-12 02:24:37 +01:00
|
|
|
int start = 0;
|
|
|
|
|
|
|
|
while(true)
|
|
|
|
{
|
|
|
|
int renderRemaining = 0;
|
|
|
|
|
2014-03-08 02:00:25 +01:00
|
|
|
if(scale > 16)
|
2013-12-12 02:24:37 +01:00
|
|
|
{
|
|
|
|
renderRemaining = 16;
|
|
|
|
scale -= 16;
|
2014-03-08 02:00:25 +01:00
|
|
|
}
|
2013-12-12 02:24:37 +01:00
|
|
|
else {
|
|
|
|
renderRemaining = scale;
|
|
|
|
scale = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
mc.renderEngine.bindTexture(MekanismRenderer.getBlocksTexture());
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2013-12-12 02:24:37 +01:00
|
|
|
if(fluid != null)
|
|
|
|
{
|
|
|
|
drawTexturedModelRectFromIcon(guiWidth + xPos, guiHeight + yPos + 58 - renderRemaining - start, fluid.getFluid().getIcon(), 16, 16 - (16 - renderRemaining));
|
|
|
|
}
|
|
|
|
else if(gas != null)
|
|
|
|
{
|
|
|
|
drawTexturedModelRectFromIcon(guiWidth + xPos, guiHeight + yPos + 58 - renderRemaining - start, gas.getGas().getIcon(), 16, 16 - (16 - renderRemaining));
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2013-12-12 02:24:37 +01:00
|
|
|
start+=16;
|
|
|
|
|
|
|
|
if(renderRemaining == 0 || scale == 0)
|
|
|
|
{
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-12-31 22:38:40 +01:00
|
|
|
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png"));
|
2013-12-31 21:23:04 +01:00
|
|
|
drawTexturedModalRect(guiWidth + xPos, guiHeight + yPos, 176, 4, 16, 59);
|
2013-12-12 02:24:37 +01:00
|
|
|
}
|
2013-12-11 22:34:54 +01:00
|
|
|
}
|