Interface and rendering fixes

This commit is contained in:
aidancbrady 2016-02-28 18:11:50 -05:00
parent c0f465d0cb
commit 7c160cc264
16 changed files with 128 additions and 117 deletions

View file

@ -37,8 +37,8 @@ public class UnitDisplayUtils
public String name;
public String symbol;
double zeroOffset;
double intervalSize;
public double zeroOffset;
public double intervalSize;
private TemperatureUnit(String s, String s1, double offset, double size)
{

View file

@ -0,0 +1,10 @@
package mekanism.client.gui;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GuiBoilerStats
{
}

View file

@ -7,6 +7,7 @@ import mekanism.api.util.ListUtils;
import mekanism.api.util.UnitDisplayUtils;
import mekanism.api.util.UnitDisplayUtils.TemperatureUnit;
import mekanism.client.gui.element.GuiBoilerTab;
import mekanism.client.gui.element.GuiBoilerTab.BoilerTab;
import mekanism.client.gui.element.GuiElement.IInfoHandler;
import mekanism.client.gui.element.GuiHeatInfo;
import mekanism.client.gui.element.GuiRateBar;
@ -17,7 +18,6 @@ import mekanism.common.tile.TileEntityBoilerCasing;
import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.generators.client.gui.element.GuiTurbineTab.BoilerTab;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraftforge.fluids.FluidStack;
@ -47,7 +47,7 @@ public class GuiThermoelectricBoiler extends GuiMekanism
@Override
public double getLevel()
{
double max = (int)Math.floor(tileEntity.structure.getHeatAvailable() / tileEntity.structure.enthalpyOfVaporization);
double max = Math.floor(tileEntity.structure.clientHeatAvailable / tileEntity.structure.enthalpyOfVaporization);
return (double)tileEntity.structure.lastBoilRate/max;
}
@ -57,19 +57,19 @@ public class GuiThermoelectricBoiler extends GuiMekanism
@Override
public String getTooltip()
{
double max = (int)Math.floor(tileEntity.structure.getHeatAvailable() / tileEntity.structure.enthalpyOfVaporization);
double cap = tileEntity.structure.superheatingElements*general.superheatingHeatTransfer;
return LangUtils.localize("gui.maxBoil") + ": " + tileEntity.structure.lastBoilRate + " mB/t";
int max = (int)Math.floor(tileEntity.structure.clientHeatAvailable / tileEntity.structure.enthalpyOfVaporization);
return LangUtils.localize("gui.maxBoil") + ": " + max + " mB/t";
}
@Override
public double getLevel()
{
double max = (int)Math.floor(tileEntity.structure.getHeatAvailable() / tileEntity.structure.enthalpyOfVaporization);
return (double)tileEntity.structure.lastBoilRate/max;
double max = Math.floor(tileEntity.structure.clientHeatAvailable / tileEntity.structure.enthalpyOfVaporization);
double cap = tileEntity.structure.superheatingElements*general.superheatingHeatTransfer;
return max/cap;
}
}, MekanismUtils.getResource(ResourceType.GUI, "GuiThermoelectricBoiler.png"), 142, 13));
}, MekanismUtils.getResource(ResourceType.GUI, "GuiThermoelectricBoiler.png"), 144, 13));
guiElements.add(new GuiHeatInfo(new IInfoHandler() {
@Override
public List<String> getInfo()
@ -86,9 +86,10 @@ public class GuiThermoelectricBoiler extends GuiMekanism
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
fontRendererObj.drawString(LangUtils.localize("container.inventory"), 8, (ySize - 96) + 4, 0x404040);
fontRendererObj.drawString(tileEntity.getInventoryName(), (xSize/2)-(fontRendererObj.getStringWidth(tileEntity.getInventoryName())/2), 5, 0x404040);
double max = (int)Math.floor(tileEntity.structure.getHeatAvailable() / tileEntity.structure.enthalpyOfVaporization);
double max = (int)Math.floor(tileEntity.structure.clientHeatAvailable / tileEntity.structure.enthalpyOfVaporization);
renderScaledText(LangUtils.localize("gui.temp") + ": " + MekanismUtils.getTemperatureDisplay(tileEntity.structure.temperature, TemperatureUnit.AMBIENT), 43, 30, 0x00CD00, 90);
renderScaledText(LangUtils.localize("gui.boilRate") + ": " + tileEntity.structure.lastBoilRate + " mB/t", 43, 39, 0x00CD00, 90);

View file

@ -8,7 +8,6 @@ import mekanism.common.network.PacketSimpleGui.SimpleGuiMessage;
import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.generators.client.gui.element.GuiTurbineTab.BoilerTab;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import codechicken.lib.vec.Rectangle4i;
@ -84,7 +83,7 @@ public class GuiBoilerTab extends GuiElement
}
}
public static enum TurbineTab
public static enum BoilerTab
{
MAIN("GuiGasesTab.png", 54, "gui.main"),
STAT("GuiStatsTab.png", 55, "gui.stats");
@ -93,7 +92,7 @@ public class GuiBoilerTab extends GuiElement
private int guiId;
private String desc;
private TurbineTab(String s, int id, String s1)
private BoilerTab(String s, int id, String s1)
{
path = s;
guiId = id;

View file

@ -129,6 +129,7 @@ public class MekanismRenderer
FluidRegistry.getFluid("brine").setIcons(event.map.registerIcon("mekanism:LiquidBrine"));
FluidRegistry.getFluid("heavywater").setIcons(event.map.registerIcon("mekanism:LiquidHeavyWater"));
FluidRegistry.getFluid("steam").setIcons(event.map.registerIcon("mekanism:LiquidSteam"));
for(InfuseType type : InfuseRegistry.getInfuseMap().values())
{

View file

@ -28,7 +28,7 @@ import cpw.mods.fml.relauncher.SideOnly;
public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
{
private static Map<RenderData, DisplayInteger[]> cachedLowerFluids = new HashMap<RenderData, DisplayInteger[]>();
private static Map<RenderData, DisplayInteger[]> cachedUpperFluids = new HashMap<RenderData, DisplayInteger[]>();
private static Map<RenderData, DisplayInteger> cachedUpperFluids = new HashMap<RenderData, DisplayInteger>();
private static Map<ValveRenderData, DisplayInteger> cachedValveFluids = new HashMap<ValveRenderData, DisplayInteger>();
private Fluid STEAM = FluidRegistry.getFluid("steam");
@ -49,13 +49,15 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
RenderData data = new RenderData();
data.location = tileEntity.structure.renderLocation;
data.height = tileEntity.structure.volHeight;
data.height = (tileEntity.structure.upperRenderLocation.yCoord-1)-tileEntity.structure.renderLocation.yCoord;
data.length = tileEntity.structure.volLength;
data.width = tileEntity.structure.volWidth;
System.out.println("Water height: " + data.height);
bindTexture(MekanismRenderer.getBlocksTexture());
if(data.location != null && tileEntity.structure.waterStored.getFluid() != null)
if(data.location != null && data.height >= 1 && tileEntity.structure.waterStored.getFluid() != null)
{
push();
@ -64,7 +66,7 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
MekanismRenderer.glowOn(tileEntity.structure.waterStored.getFluid().getLuminosity());
MekanismRenderer.colorFluid(tileEntity.structure.waterStored.getFluid());
DisplayInteger[] displayList = getListAndRender(data, tileEntity.structure.waterStored.getFluid(), tileEntity.getWorldObj(), cachedLowerFluids);
DisplayInteger[] displayList = getLowerDisplay(data, tileEntity.structure.waterStored.getFluid(), tileEntity.getWorldObj());
if(tileEntity.structure.waterStored.getFluid().isGaseous())
{
@ -103,13 +105,15 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
RenderData data = new RenderData();
data.location = tileEntity.structure.upperRenderLocation;
data.height = tileEntity.structure.volHeight;
data.height = (tileEntity.structure.renderLocation.yCoord+tileEntity.structure.volHeight-2)-(tileEntity.structure.upperRenderLocation.yCoord);
data.length = tileEntity.structure.volLength;
data.width = tileEntity.structure.volWidth;
System.out.println("Steam height: " + data.height);
bindTexture(MekanismRenderer.getBlocksTexture());
if(data.location != null && tileEntity.structure.steamStored.getFluid() != null)
if(data.location != null && data.height >= 1 && tileEntity.structure.steamStored.getFluid() != null)
{
push();
@ -118,10 +122,10 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
MekanismRenderer.glowOn(tileEntity.structure.steamStored.getFluid().getLuminosity());
MekanismRenderer.colorFluid(tileEntity.structure.steamStored.getFluid());
DisplayInteger[] displayList = getListAndRender(data, tileEntity.structure.waterStored.getFluid(), tileEntity.getWorldObj(), cachedUpperFluids);
DisplayInteger display = getUpperDisplay(data, tileEntity.structure.steamStored.getFluid(), tileEntity.getWorldObj());
GL11.glColor4f(1F, 1F, 1F, Math.min(1, ((float)tileEntity.structure.steamStored.amount / (float)tileEntity.clientSteamCapacity)+0.3F));
displayList[getStages(data.height+1)-1].render();
display.render();
MekanismRenderer.glowOff();
MekanismRenderer.resetColor();
@ -148,11 +152,11 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
}
private DisplayInteger[] getListAndRender(RenderData data, Fluid fluid, World world, Map<RenderData, DisplayInteger[]> map)
private DisplayInteger[] getLowerDisplay(RenderData data, Fluid fluid, World world)
{
if(map.containsKey(data))
if(cachedLowerFluids.containsKey(data))
{
return map.get(data);
return cachedLowerFluids.get(data);
}
Model3D toReturn = new Model3D();
@ -162,7 +166,7 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
final int stages = getStages(data.height);
DisplayInteger[] displays = new DisplayInteger[stages];
map.put(data, displays);
cachedLowerFluids.put(data, displays);
for(int i = 0; i < stages; i++)
{
@ -186,6 +190,40 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
return displays;
}
private DisplayInteger getUpperDisplay(RenderData data, Fluid fluid, World world)
{
if(cachedUpperFluids.containsKey(data))
{
return cachedUpperFluids.get(data);
}
Model3D toReturn = new Model3D();
toReturn.baseBlock = Blocks.water;
toReturn.setTexture(fluid.getIcon());
final int stages = getStages(data.height);
DisplayInteger display = DisplayInteger.createAndStart();
cachedUpperFluids.put(data, display);
if(STEAM.getIcon() != null)
{
toReturn.minX = 0 + .01;
toReturn.minY = 0 + .01;
toReturn.minZ = 0 + .01;
toReturn.maxX = data.length - .01;
toReturn.maxY = data.height - .01;
toReturn.maxZ = data.width - .01;
MekanismRenderer.renderObject(toReturn);
}
GL11.glEndList();
return display;
}
private DisplayInteger getValveDisplay(ValveRenderData data, Fluid fluid, World world)
{
@ -293,7 +331,7 @@ public class RenderThermoelectricBoiler extends TileEntitySpecialRenderer
private int getStages(int height)
{
return (height-2)*(TankUpdateProtocol.FLUID_PER_TANK/10);
return height*(TankUpdateProtocol.FLUID_PER_TANK/10);
}
private double getX(int x)

View file

@ -1205,6 +1205,7 @@ public class Mekanism
GasRegistry.register(new Gas("lithium")).registerFluid();
FluidRegistry.registerFluid(new Fluid("heavyWater"));
FluidRegistry.registerFluid(new Fluid("steam"));
for(Resource resource : Resource.values())
{

View file

@ -1,96 +1,61 @@
package mekanism.common.content.boiler;
import mekanism.common.multiblock.MultiblockCache;
import mekanism.common.util.FluidContainerUtils.ContainerEditMode;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.common.util.Constants.NBT;
import net.minecraftforge.fluids.FluidStack;
public class BoilerCache extends MultiblockCache<SynchronizedBoilerData>
{
public ItemStack[] inventory = new ItemStack[2];
public FluidStack water;
public FluidStack steam;
public ContainerEditMode editMode = ContainerEditMode.BOTH;
public double temperature;
@Override
public void apply(SynchronizedBoilerData data)
{
data.inventory = inventory;
data.waterStored = water;
data.steamStored = steam;
data.editMode = editMode;
data.temperature = temperature;
}
@Override
public void sync(SynchronizedBoilerData data)
{
inventory = data.inventory;
water = data.waterStored;
steam = data.steamStored;
editMode = data.editMode;
temperature = data.temperature;
}
@Override
public void load(NBTTagCompound nbtTags)
{
editMode = ContainerEditMode.values()[nbtTags.getInteger("editMode")];
NBTTagList tagList = nbtTags.getTagList("Items", NBT.TAG_COMPOUND);
inventory = new ItemStack[2];
for(int tagCount = 0; tagCount < tagList.tagCount(); tagCount++)
{
NBTTagCompound tagCompound = (NBTTagCompound)tagList.getCompoundTagAt(tagCount);
byte slotID = tagCompound.getByte("Slot");
if(slotID >= 0 && slotID < 2)
{
inventory[slotID] = ItemStack.loadItemStackFromNBT(tagCompound);
}
}
if(nbtTags.hasKey("cachedWater"))
{
water = FluidStack.loadFluidStackFromNBT(nbtTags.getCompoundTag("cachedWater"));
}
if(nbtTags.hasKey("cachedSteam"))
{
steam = FluidStack.loadFluidStackFromNBT(nbtTags.getCompoundTag("cachedSteam"));
}
temperature = nbtTags.getDouble("temperature");
}
@Override
public void save(NBTTagCompound nbtTags)
{
nbtTags.setInteger("editMode", editMode.ordinal());
NBTTagList tagList = new NBTTagList();
for(int slotCount = 0; slotCount < 2; slotCount++)
{
if(inventory[slotCount] != null)
{
NBTTagCompound tagCompound = new NBTTagCompound();
tagCompound.setByte("Slot", (byte)slotCount);
inventory[slotCount].writeToNBT(tagCompound);
tagList.appendTag(tagCompound);
}
}
nbtTags.setTag("Items", tagList);
if(water != null)
{
nbtTags.setTag("cachedWater", water.writeToNBT(new NBTTagCompound()));
}
if(steam != null)
{
nbtTags.setTag("cachedSteam", steam.writeToNBT(new NBTTagCompound()));
}
nbtTags.setDouble("temperature", temperature);
}
}

View file

@ -5,7 +5,6 @@ import java.util.List;
import java.util.Set;
import mekanism.api.Coord4D;
import mekanism.api.util.StackUtils;
import mekanism.common.Mekanism;
import mekanism.common.block.BlockBasic.BasicType;
import mekanism.common.content.tank.SynchronizedTankData.ValveData;
@ -51,8 +50,6 @@ public class BoilerUpdateProtocol extends UpdateProtocol<SynchronizedBoilerData>
@Override
protected boolean canForm(SynchronizedBoilerData structure)
{
System.out.println("hi");
if(structure.volHeight >= 3)
{
Set<Coord4D> dispersers = new HashSet<Coord4D>();
@ -174,7 +171,7 @@ public class BoilerUpdateProtocol extends UpdateProtocol<SynchronizedBoilerData>
int steamHeight = (structure.renderLocation.yCoord+structure.volHeight-2)-initDisperser.yCoord;
structure.steamVolume = structure.volWidth*structure.volLength*steamHeight;
structure.upperRenderLocation = new Coord4D(structure.renderLocation.xCoord, structure.renderLocation.zCoord, initDisperser.yCoord+1);
structure.upperRenderLocation = new Coord4D(structure.renderLocation.xCoord, initDisperser.yCoord+1, structure.renderLocation.zCoord);
System.out.println(structure.superheatingElements + " " + structure.waterVolume + " " + structure.steamVolume);
return true;
@ -221,15 +218,8 @@ public class BoilerUpdateProtocol extends UpdateProtocol<SynchronizedBoilerData>
{
((BoilerCache)cache).steam.amount += ((BoilerCache)merge).steam.amount;
}
List<ItemStack> rejects = StackUtils.getMergeRejects(((BoilerCache)cache).inventory, ((BoilerCache)merge).inventory);
if(!rejects.isEmpty())
{
rejectedItems.addAll(rejects);
}
StackUtils.merge(((BoilerCache)cache).inventory, ((BoilerCache)merge).inventory);
((BoilerCache)cache).temperature = Math.max(((BoilerCache)cache).temperature, ((BoilerCache)merge).temperature);
}
@Override

View file

@ -6,6 +6,7 @@ import java.util.Set;
import mekanism.api.Coord4D;
import mekanism.api.IHeatTransfer;
import mekanism.api.MekanismConfig.general;
import mekanism.api.util.UnitDisplayUtils.TemperatureUnit;
import mekanism.common.content.tank.SynchronizedTankData.ValveData;
import mekanism.common.multiblock.SynchronizedData;
import mekanism.common.util.FluidContainerUtils.ContainerEditMode;
@ -15,8 +16,9 @@ import net.minecraftforge.fluids.FluidStack;
public class SynchronizedBoilerData extends SynchronizedData<SynchronizedBoilerData> implements IHeatTransfer
{
public static double CASING_INSULATION_COEFFICIENT = 50;
public static double CASING_INSULATION_COEFFICIENT = 10;
public static double CASING_INVERSE_CONDUCTION_COEFFICIENT = 1;
public static double BASE_BOIL_TEMP = 100-(TemperatureUnit.AMBIENT.zeroOffset-TemperatureUnit.CELSIUS.zeroOffset);
public FluidStack waterStored;
public FluidStack prevWater;
@ -26,6 +28,8 @@ public class SynchronizedBoilerData extends SynchronizedData<SynchronizedBoilerD
public double lastEnvironmentLoss;
public int lastBoilRate;
public double clientHeatAvailable;
public double temperature;
@ -51,7 +55,7 @@ public class SynchronizedBoilerData extends SynchronizedData<SynchronizedBoilerD
public double getHeatAvailable()
{
double heatAvailable = (temperature-100)*locations.size();
double heatAvailable = (temperature-BASE_BOIL_TEMP)*locations.size();
return Math.min(heatAvailable, superheatingElements*general.superheatingHeatTransfer);
}

View file

@ -19,6 +19,7 @@ import mekanism.common.multiblock.MultiblockManager;
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.util.FluidContainerUtils.ContainerEditMode;
import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
@ -124,7 +125,7 @@ public class TileEntityBoilerCasing extends TileEntityMultiblock<SynchronizedBoi
structure.applyTemperatureChange();
structure.lastEnvironmentLoss = d[1];
if(structure.temperature >= 100 && structure.waterStored != null)
if(structure.temperature >= SynchronizedBoilerData.BASE_BOIL_TEMP && structure.waterStored != null)
{
int steamAmount = structure.steamStored != null ? structure.steamStored.amount : 0;
double heatAvailable = structure.getHeatAvailable();
@ -148,6 +149,8 @@ public class TileEntityBoilerCasing extends TileEntityMultiblock<SynchronizedBoi
structure.prevWater = structure.waterStored;
structure.prevSteam = structure.steamStored;
MekanismUtils.saveChunk(this);
}
}
}
@ -205,6 +208,7 @@ public class TileEntityBoilerCasing extends TileEntityMultiblock<SynchronizedBoi
data.add(structure.lastBoilRate);
data.add(structure.superheatingElements);
data.add(structure.temperature);
data.add(Math.max(0, structure.getHeatAvailable()));
if(structure.waterStored != null)
{
@ -267,6 +271,7 @@ public class TileEntityBoilerCasing extends TileEntityMultiblock<SynchronizedBoi
structure.lastBoilRate = dataStream.readInt();
structure.superheatingElements = dataStream.readInt();
structure.temperature = dataStream.readDouble();
structure.clientHeatAvailable = dataStream.readDouble();
if(dataStream.readInt() == 1)
{

View file

@ -5,7 +5,6 @@ import java.util.List;
import mekanism.api.MekanismConfig.generators;
import mekanism.api.util.ListUtils;
import mekanism.client.gui.GuiMekanism;
import mekanism.client.gui.element.GuiBoilerTab.TurbineTab;
import mekanism.client.gui.element.GuiElement.IInfoHandler;
import mekanism.client.gui.element.GuiEnergyInfo;
import mekanism.client.gui.element.GuiPowerBar;
@ -17,6 +16,7 @@ import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.generators.client.gui.element.GuiTurbineTab;
import mekanism.generators.client.gui.element.GuiTurbineTab.TurbineTab;
import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraftforge.fluids.FluidStack;
@ -74,6 +74,7 @@ public class GuiIndustrialTurbine extends GuiMekanism
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
fontRendererObj.drawString(LangUtils.localize("container.inventory"), 8, (ySize - 96) + 4, 0x404040);
fontRendererObj.drawString(tileEntity.getInventoryName(), (xSize/2)-(fontRendererObj.getStringWidth(tileEntity.getInventoryName())/2), 5, 0x404040);
double energyMultiplier = generators.turbineBaseEnergyPerSteam*Math.min(tileEntity.structure.blades, tileEntity.structure.coils*generators.turbineBladesPerCoil);

View file

@ -6,7 +6,6 @@ import mekanism.api.EnumColor;
import mekanism.api.MekanismConfig.generators;
import mekanism.api.util.ListUtils;
import mekanism.client.gui.GuiMekanism;
import mekanism.client.gui.element.GuiBoilerTab.TurbineTab;
import mekanism.client.gui.element.GuiElement.IInfoHandler;
import mekanism.client.gui.element.GuiEnergyInfo;
import mekanism.common.inventory.container.ContainerNull;
@ -14,6 +13,7 @@ import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.generators.client.gui.element.GuiTurbineTab;
import mekanism.generators.client.gui.element.GuiTurbineTab.TurbineTab;
import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing;
import net.minecraft.entity.player.InventoryPlayer;

View file

@ -2,7 +2,7 @@ package mekanism.generators.client.gui.element;
import mekanism.api.Coord4D;
import mekanism.client.gui.IGuiWrapper;
import mekanism.client.gui.element.GuiBoilerTab.TurbineTab;
import mekanism.client.gui.element.GuiBoilerTab.BoilerTab;
import mekanism.client.gui.element.GuiElement;
import mekanism.client.sound.SoundHandler;
import mekanism.common.Mekanism;
@ -85,7 +85,7 @@ public class GuiTurbineTab extends GuiElement
}
}
public static enum BoilerTab
public static enum TurbineTab
{
MAIN("GuiGasesTab.png", 6, "gui.main"),
STAT("GuiStatsTab.png", 7, "gui.stats");
@ -94,7 +94,7 @@ public class GuiTurbineTab extends GuiElement
private int guiId;
private String desc;
private BoilerTab(String s, int id, String s1)
private TurbineTab(String s, int id, String s1)
{
path = s;
guiId = id;

View file

@ -28,7 +28,7 @@ import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class RenderIndustrialTurbine extends TileEntitySpecialRenderer
{
private static Map<RenderData, DisplayInteger[]> cachedFluids = new HashMap<RenderData, DisplayInteger[]>();
private static Map<RenderData, DisplayInteger> cachedFluids = new HashMap<RenderData, DisplayInteger>();
private Fluid STEAM = FluidRegistry.getFluid("steam");
@ -80,10 +80,10 @@ public class RenderIndustrialTurbine extends TileEntitySpecialRenderer
MekanismRenderer.glowOn(tileEntity.structure.fluidStored.getFluid().getLuminosity());
MekanismRenderer.colorFluid(tileEntity.structure.fluidStored.getFluid());
DisplayInteger[] displayList = getListAndRender(data, tileEntity.getWorldObj());
DisplayInteger display = getListAndRender(data, tileEntity.getWorldObj());
GL11.glColor4f(1F, 1F, 1F, Math.min(1, ((float)tileEntity.structure.fluidStored.amount / (float)tileEntity.structure.getFluidCapacity())+0.3F));
displayList[getStages(data.height+1)-1].render();
display.render();
MekanismRenderer.glowOff();
MekanismRenderer.resetColor();
@ -130,7 +130,7 @@ public class RenderIndustrialTurbine extends TileEntitySpecialRenderer
return z - TileEntityRendererDispatcher.staticPlayerZ;
}
private DisplayInteger[] getListAndRender(RenderData data, World world)
private DisplayInteger getListAndRender(RenderData data, World world)
{
if(cachedFluids.containsKey(data))
{
@ -142,31 +142,26 @@ public class RenderIndustrialTurbine extends TileEntitySpecialRenderer
toReturn.setTexture(STEAM.getIcon());
final int stages = getStages(data.height);
DisplayInteger[] displays = new DisplayInteger[stages];
DisplayInteger display = DisplayInteger.createAndStart();
cachedFluids.put(data, displays);
for(int i = 0; i < stages; i++)
cachedFluids.put(data, display);
if(STEAM.getIcon() != null)
{
displays[i] = DisplayInteger.createAndStart();
toReturn.minX = 0 + .01;
toReturn.minY = 0 + .01;
toReturn.minZ = 0 + .01;
if(STEAM.getIcon() != null)
{
toReturn.minX = 0 + .01;
toReturn.minY = 0 + .01;
toReturn.minZ = 0 + .01;
toReturn.maxX = data.length - .01;
toReturn.maxY = data.height - .01;
toReturn.maxZ = data.width - .01;
toReturn.maxX = data.length - .01;
toReturn.maxY = ((float)i/(float)stages)*(data.height+1) - .01;
toReturn.maxZ = data.width - .01;
MekanismRenderer.renderObject(toReturn);
}
GL11.glEndList();
MekanismRenderer.renderObject(toReturn);
}
return displays;
GL11.glEndList();
return display;
}
public static void resetDisplayInts()

View file

@ -459,6 +459,7 @@ gui.incomplete=Incomplete
gui.inductionMatrix=Induction Matrix
gui.matrixStats=Matrix Statistics
gui.turbineStats=Turbine Statistics
gui.boilerStats=Boiler Statistics
gui.main=Main
gui.outputting=Outputting
gui.receiving=Receiving