Tooltips have more info on Steam and pollution, adjusted pollution rates

Boilers tooltips now explicitly state the amount of Steam produced per
second.
Gas Turbine tooltips now explicitly state how much steam is needed for
them to run at full capacity.

Machine tooltips now explicitly state how much Pollution they produce
per second.
Adjusted machine pollution values to have them align better.
Diesel Generators / Engines now go 40, 80, 160, 320
Gas Turbines now go 20, 40, 80, 160

Large Boiler tooltips now mention the amount of time needed to heat up

Formatted the source code for the Cleanroom

Fixed a bug that caused Diesel Generators and Gas Turbines to not have a
tooltip.
This commit is contained in:
Johannes Gäßler 2017-04-15 19:05:57 +02:00
parent 234c51ac20
commit d79721085e
21 changed files with 248 additions and 169 deletions

View file

@ -22,6 +22,10 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
super(aID, aName, aNameRegional, aTier, 3, aDescription, aTextures);
}
public GT_MetaTileEntity_BasicGenerator(int aID, String aName, String aNameRegional, int aTier, String[] aDescription, ITexture... aTextures) {
super(aID, aName, aNameRegional, aTier, 3, aDescription, aTextures);
}
public GT_MetaTileEntity_BasicGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
super(aName, aTier, 3, aDescription, aTextures);
}
@ -56,7 +60,7 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
@Override
public String[] getDescription() {
String[] desc = new String[mDescription.length + 1];
System.arraycopy(mDescription, 0, desc, 0, desc.length);
System.arraycopy(mDescription, 0, desc, 0, mDescription.length);
desc[mDescription.length] = "Fuel Efficiency: " + getEfficiency() + "%";
return desc;
}
@ -186,7 +190,6 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aTick % 10 == 0) {
long tProducedEU = 0;
if (mFluid == null) {
if (aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + getMinimumStoredEU()) {
mInventory[getStackDisplaySlot()] = null;
@ -200,7 +203,8 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
if (tFuelValue > 0 && tConsumed > 0 && mFluid.amount > tConsumed) {
long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUStore() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue);
if (tFluidAmountToUse > 0 && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)) {
tProducedEU = tFluidAmountToUse * tFuelValue;
GT_Pollution.addPollution(this.getBaseMetaTileEntity().getWorld(), new ChunkPosition(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord()),
10 * getPollution());
mFluid.amount -= tFluidAmountToUse * tConsumed;
}
}
@ -212,13 +216,10 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), tEmptyContainer)) {
aBaseMetaTileEntity.increaseStoredEnergyUnits(tFuelValue, true);
aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1);
tProducedEU = tFuelValue;
}
}
}
if(tProducedEU>0&&getPollution()>0){
GT_Pollution.addPollution(this.getBaseMetaTileEntity().getWorld(), new ChunkPosition(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord()),
(int) ((tProducedEU * getPollution()/(500*mTier))+1));
10 * getPollution());
}
}
}
}

View file

@ -27,6 +27,10 @@ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_Tier
super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
}
public GT_MetaTileEntity_BasicTank(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String[] aDescription, ITexture... aTextures) {
super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
}
public GT_MetaTileEntity_BasicTank(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) {
super(aName, aTier, aInvSlotCount, aDescription, aTextures);
}

View file

@ -31,6 +31,16 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit
else mTextures = null;
}
public GT_MetaTileEntity_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String[] aDescription, ITexture... aTextures) {
super(aID, aName, aNameRegional, aInvSlotCount);
mTier = (byte) Math.max(0, Math.min(aTier, 9));
mDescription = aDescription;
// must always be the last call!
if (GT.isClientSide()) mTextures = getTextureSet(aTextures);
else mTextures = null;
}
public GT_MetaTileEntity_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) {
super(aName, aInvSlotCount);
mTier = (byte) aTier;

View file

@ -31,6 +31,10 @@ public abstract class GT_MetaTileEntity_Boiler
super(aID, aName, aNameRegional, 0, 4, aDescription, aTextures);
}
public GT_MetaTileEntity_Boiler(int aID, String aName, String aNameRegional, String[] aDescription, ITexture... aTextures) {
super(aID, aName, aNameRegional, 0, 4, aDescription, aTextures);
}
public GT_MetaTileEntity_Boiler(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
super(aName, aTier, 4, aDescription, aTextures);
}

View file

@ -22,7 +22,10 @@ import net.minecraftforge.fluids.IFluidHandler;
public class GT_MetaTileEntity_Boiler_Bronze
extends GT_MetaTileEntity_Boiler {
public GT_MetaTileEntity_Boiler_Bronze(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional, "An early way to get Steam Power", new ITexture[0]);
super(aID, aName, aNameRegional, new String[]{
"An early way to get Steam Power",
"Produces 120L of Steam per second",
"Causes 20 Pollution per second"}, new ITexture[0]);
}
public GT_MetaTileEntity_Boiler_Bronze(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {

View file

@ -22,7 +22,10 @@ import net.minecraftforge.fluids.IFluidHandler;
public class GT_MetaTileEntity_Boiler_Lava
extends GT_MetaTileEntity_Boiler {
public GT_MetaTileEntity_Boiler_Lava(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional, "A Boiler running off Lava", new ITexture[0]);
super(aID, aName, aNameRegional, new String[]{
"A Boiler running off Lava",
"Produces 600L of Steam per second",
"Causes 20 Pollution per second"}, new ITexture[0]);
}
public GT_MetaTileEntity_Boiler_Lava(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {

View file

@ -18,7 +18,12 @@ import net.minecraftforge.fluids.IFluidHandler;
public class GT_MetaTileEntity_Boiler_Solar
extends GT_MetaTileEntity_Boiler {
public GT_MetaTileEntity_Boiler_Solar(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional, "Steam Power by the Sun", new ITexture[0]);
super(aID, aName, aNameRegional, new String[]{
"Steam Power by the Sun",
"Produces 120L of Steam per second",
"Calcifies over time, reducing Steam output to 40L/s",
"Break and replace to decalcify"},
new ITexture[0]);
}
public GT_MetaTileEntity_Boiler_Solar(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {

View file

@ -22,7 +22,10 @@ import net.minecraftforge.fluids.IFluidHandler;
public class GT_MetaTileEntity_Boiler_Steel
extends GT_MetaTileEntity_Boiler {
public GT_MetaTileEntity_Boiler_Steel(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional, "Faster than the Bronze Boiler", new ITexture[0]);
super(aID, aName, aNameRegional, new String[]{
"Faster than the Bronze Boiler",
"Produces 300L of Steam per second",
"Causes 20 Pollution per second"}, new ITexture[0]);
}
public GT_MetaTileEntity_Boiler_Steel(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {

View file

@ -18,10 +18,15 @@ import net.minecraft.item.ItemStack;
public class GT_MetaTileEntity_DieselGenerator
extends GT_MetaTileEntity_BasicGenerator {
public static final int BASE_POLLUTION = 2;
public int mEfficiency;
public GT_MetaTileEntity_DieselGenerator(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, "Requires liquid Fuel", new ITexture[0]);
super(aID, aName, aNameRegional, aTier, new String[]{
"Requires liquid Fuel",
"Causes " + (int) (20 * BASE_POLLUTION * Math.pow(2, aTier - 1)) + " Pollution per second"},
new ITexture[0]);
onConfigLoad();
}
@ -110,6 +115,6 @@ public class GT_MetaTileEntity_DieselGenerator
@Override
public int getPollution() {
return 10;
return (int) (GT_MetaTileEntity_DieselGenerator.BASE_POLLUTION * Math.pow(2, mTier - 1));
}
}

View file

@ -13,10 +13,15 @@ import gregtech.api.util.GT_Recipe;
public class GT_MetaTileEntity_GasTurbine
extends GT_MetaTileEntity_BasicGenerator {
public static final int BASE_POLLUTION = 1;
public int mEfficiency;
public GT_MetaTileEntity_GasTurbine(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, "Requires flammable Gasses", new ITexture[0]);
super(aID, aName, aNameRegional, aTier, new String[]{
"Requires flammable Gasses",
"Causes " + (int) (20 * BASE_POLLUTION * Math.pow(2, aTier - 1)) + " Pollution per second"});
onConfigLoad();
}
@ -97,6 +102,6 @@ public class GT_MetaTileEntity_GasTurbine
@Override
public int getPollution() {
return 5;
return (int) (GT_MetaTileEntity_GasTurbine.BASE_POLLUTION * Math.pow(2, mTier - 1));
}
}

View file

@ -17,7 +17,9 @@ public class GT_MetaTileEntity_SteamTurbine extends GT_MetaTileEntity_BasicGener
public int mEfficiency;
public GT_MetaTileEntity_SteamTurbine(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, "Requires Steam to run", new ITexture[0]);
super(aID, aName, aNameRegional, aTier, new String[]{
"Converts Steam into EU",
"Base rate: 2L of Steam -> 1 EU"}, new ITexture[0]);
onConfigLoad();
}
@ -45,9 +47,11 @@ public class GT_MetaTileEntity_SteamTurbine extends GT_MetaTileEntity_BasicGener
@Override
public String[] getDescription() {
String[] desc = new String[mDescription.length + 1];
String[] desc = new String[mDescription.length + 2];
System.arraycopy(mDescription, 0, desc, 0, mDescription.length);
desc[mDescription.length] = "Fuel Efficiency: " + (600 / getEfficiency()) + "%";
desc[mDescription.length + 1] = String.format("Consumes up to %sL of Steam per second",
(int) (4000 * (8 * Math.pow(4, mTier) + Math.pow(2, mTier)) / (600 / getEfficiency())));
return desc;
}

View file

@ -50,7 +50,8 @@ public class GT_MetaTileEntity_BronzeBlastFurnace
"Controller Block for the Bronze Blast Furnace",
"How to get your first Steel",
"Size(WxHxD): 3x4x3 (Hollow, with opening on top)",
"Bronze Plated Bricks for the rest (32 at least!)"};
"Bronze Plated Bricks for the rest (32 at least!)",
"Causes 50 Pollution per second"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {

View file

@ -44,7 +44,8 @@ public class GT_MetaTileEntity_Charcoal_Pit extends GT_MetaTileEntity_MultiBlock
"11x1x11 of Bricks (Bottom layer only)",
"11x5x11 of Logs (Above bottom Brick layer)",
"Only grass/dirt can touch Log blocks",
"No air between logs allowed"};
"No air between logs allowed",
"Causes 100 Pollution per second"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {

View file

@ -38,8 +38,7 @@ return new String[]{
"Top besides contoller and corners filter casings",
"1 Reinforced Door",
"1x Energy Hatch, 1x Maintainance Hatch",
"up to 10 Machine Hull to transfer Items&Energy inside",
""};
"up to 10 Machine Hull to transfer Items & Energy inside"};
}
public boolean checkRecipe(ItemStack aStack) {
@ -66,7 +65,9 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a
x = i;
z = i;
break;
}else{return false;}
} else {
return false;
}
}
}
for (int i = -1; i > -16; i--) {
@ -77,7 +78,9 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a
break;
}
}
if(y>-2){return false;}
if (y > -2) {
return false;
}
for (int dX = -x; dX <= x; dX++) {
for (int dZ = -z; dZ <= z; dZ++) {
for (int dY = 0; dY >= y; dY--) {
@ -86,10 +89,14 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a
int tMeta = aBaseMetaTileEntity.getMetaIDOffset(dX, dY, dZ);
if (y == 0) {
if (dX == -x || dX == x || dZ == -z || dZ == z) {
if(tBlock!=GregTech_API.sBlockReinforced||tMeta!=2){return false;}
if (tBlock != GregTech_API.sBlockReinforced || tMeta != 2) {
return false;
}
} else if (dX == 0 && dZ == 0) {
} else {
if(tBlock!=GregTech_API.sBlockCasings3||tMeta!=11){return false;}
if (tBlock != GregTech_API.sBlockCasings3 || tMeta != 11) {
return false;
}
}
} else if (tBlock == GregTech_API.sBlockReinforced && tMeta == 2) {
mPlascreteCount++;
@ -103,12 +110,19 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a
mDoorCount++;
} else {
if (tTileEntity == null) {
{return false;}
{
return false;
}
}
IMetaTileEntity aMetaTileEntity = tTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) {return false;}
if (aMetaTileEntity instanceof GT_MetaTileEntity_BasicHull){mHullCount++;
}else {return false;}
if (aMetaTileEntity == null) {
return false;
}
if (aMetaTileEntity instanceof GT_MetaTileEntity_BasicHull) {
mHullCount++;
} else {
return false;
}
}
}
}
@ -118,7 +132,9 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a
}
}
}
if(mMaintenanceHatches.size()!=1||mEnergyHatches.size()!=1||mDoorCount!=2||mHullCount>10){return false;}
if (mMaintenanceHatches.size() != 1 || mEnergyHatches.size() != 1 || mDoorCount != 2 || mHullCount > 10) {
return false;
}
for (int dX = -x + 1; dX <= x - 1; dX++) {
for (int dZ = -z + 1; dZ <= z - 1; dZ++) {
for (int dY = -1; dY >= y + 1; dY--) {
@ -142,7 +158,8 @@ return true;
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
if (aSide == 0 || aSide == 1) {
return new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.BLOCK_PLASCRETE), new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_TOP_CLEANROOM_ACTIVE : Textures.BlockIcons.OVERLAY_TOP_CLEANROOM)};
return new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.BLOCK_PLASCRETE),
new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_TOP_CLEANROOM_ACTIVE : Textures.BlockIcons.OVERLAY_TOP_CLEANROOM) };
}
return new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.BLOCK_PLASCRETE) };

View file

@ -31,6 +31,7 @@ public class GT_MetaTileEntity_DieselEngine extends GT_MetaTileEntity_MultiBlock
public GT_MetaTileEntity_DieselEngine(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
}
public GT_MetaTileEntity_DieselEngine(String aName) {
super(aName);
}
@ -48,7 +49,9 @@ public class GT_MetaTileEntity_DieselEngine extends GT_MetaTileEntity_MultiBlock
"1x Dynamo Hatch (back centered)",
"Engine Intake Casings not obstructed in front (only air blocks)",
"Supply Diesel Fuel and Lubricant to run. Supply Oxygen to boost output (optional).",
"2048EU/t default output, 6144EU/t boosted output"};
"Default: Produces 2048EU/t at 100% efficiency",
"Boosted: Produces 6144EU/t at 150% efficiency",
"Causes 320 Pollution per second"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
@ -216,8 +219,9 @@ public class GT_MetaTileEntity_DieselEngine extends GT_MetaTileEntity_MultiBlock
@Override
public int getPollutionPerTick(ItemStack aStack) {
return 15;
return 16;
}
@Override
public boolean explodesOnComponentBreak(ItemStack aStack) {
return true;

View file

@ -44,7 +44,8 @@ public class GT_MetaTileEntity_ElectricBlastFurnace
"1x Energy Hatch (Any bottom layer casing)",
"1x Maintenance Hatch (Any bottom layer casing)",
"1x Muffler Hatch (Top middle)",
"Heat Proof Machine Casings for the rest"};
"Heat Proof Machine Casings for the rest",
"Causes 100 Pollution per second"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {

View file

@ -41,7 +41,8 @@ public class GT_MetaTileEntity_ImplosionCompressor
"1x Maintenance Hatch (Any casing)",
"1x Muffler Hatch (Any casing)",
"1x Energy Hatch (Any casing)",
"Solid Steel Casings for the rest (16 at least!)"};
"Solid Steel Casings for the rest (16 at least!)",
"Causes 2000 Pollution per second"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {

View file

@ -36,7 +36,8 @@ public abstract class GT_MetaTileEntity_LargeBoiler
public String[] getDescription() {
return new String[]{
"Controller Block for the Large Boiler",
"Produces "+(getEUt()*40)*(runtimeBoost(20)/20f)+"L of Steam with 1 Coal in "+runtimeBoost(20)+" ticks",
"Produces "+(getEUt()*40)*(runtimeBoost(20)/20f)+"L of Steam with 1 Coal at "+getEUt()* 40+"L/s",
"A programmed circuit in the main block throttles the boiler (-1000L/s per config)",
"Size(WxHxD): 3x5x3, Controller (Front middle in Fireboxes)",
"3x1x3 of Fire Boxes (Bottom layer, Min 3)",
"3x4x3 of Casings (Above Fireboxes, hollow, Min 24!)",
@ -46,7 +47,9 @@ public abstract class GT_MetaTileEntity_LargeBoiler
"1x Output Hatch (Any Casing)",
"1x Maintenance Hatch (Any Firebox)",
"1x Muffler Hatch (Any Firebox)",
"Diesel fuels have 1/4 efficiency"};
"Diesel fuels have 1/4 efficiency",
String.format("Takes %.2f seconds to heat up", 500.0 / getEfficiencyIncrease()),
"Causes up to 360 Pollution per second"};
}
public abstract Block getCasingBlock();
@ -239,7 +242,8 @@ public abstract class GT_MetaTileEntity_LargeBoiler
}
public int getPollutionPerTick(ItemStack aStack) {
return 12;
int adjustedEUOutput = Math.max(25, getEUt() - 25 * integratedCircuitConfig);
return Math.max(1, 12 * adjustedEUOutput / getEUt());
}
public int getDamageToComponent(ItemStack aStack) {

View file

@ -42,7 +42,8 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT
"1x Dynamo Hatch (Back centered)",
"Stainless Steel Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (Inside controller GUI)",
"Output depending on Rotor: 102-6720EU/t"};
"Output depending on Rotor: 102-6720EU/t",
"Causes 160 Pollution per second"};
}
public int getFuelValue(FluidStack aLiquid) {

View file

@ -45,7 +45,8 @@ public class GT_MetaTileEntity_MultiFurnace
"1x Maintenance Hatch (One of bottom)",
"1x Muffler Hatch (Top middle)",
"1x Energy Hatch (One of bottom)",
"Heat Proof Machine Casings for the rest",};
"Heat Proof Machine Casings for the rest",
"Causes 100 Pollution per second"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {

View file

@ -39,7 +39,8 @@ public class GT_MetaTileEntity_PyrolyseOven extends GT_MetaTileEntity_MultiBlock
"1x Maintenance Hatch (Any bottom layer casing)",
"1x Muffler Hatch (Centered 3x1x3 area in Top layer)",
"1x Energy Hatch (Any bottom layer casing)",
"ULV Machine Casings for the rest (60 at least!)"};
"ULV Machine Casings for the rest (60 at least!)",
"Causes 400 Pollution per second"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {