aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Xizhi <60341015+GlodBlock@users.noreply.github.com>2022-11-26 00:33:48 +0800
committerGitHub <noreply@github.com>2022-11-25 17:33:48 +0100
commitb861cabda4487c0ec26a431e0b1256c0d6426a6c (patch)
tree3dd866318b9367925fb6e65791d266392cb0ce54
parentd1a9e8a22c75b4b25cdcf9d8a27cce3fdf8c24a5 (diff)
downloadGT5-Unofficial-b861cabda4487c0ec26a431e0b1256c0d6426a6c.tar.gz
GT5-Unofficial-b861cabda4487c0ec26a431e0b1256c0d6426a6c.tar.bz2
GT5-Unofficial-b861cabda4487c0ec26a431e0b1256c0d6426a6c.zip
allow precise assembler overclock after max (#106)
* allow precise assembler overclock after max * use the new energy base * clean up * oversight
-rw-r--r--dependencies.gradle5
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java182
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java125
-rw-r--r--src/main/java/goodgenerator/main/GoodGenerator.java11
-rw-r--r--src/main/java/goodgenerator/network/MessageResetTileTexture.java49
5 files changed, 205 insertions, 167 deletions
diff --git a/dependencies.gradle b/dependencies.gradle
index 77ff219e79..ffcd89b25d 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -2,7 +2,7 @@
dependencies {
- compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.44:dev')
+ compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.141:dev')
compile('com.github.GTNewHorizons:StructureLib:1.1.7:dev')
compile('com.github.GTNewHorizons:bartworks:0.5.94:dev')
compile('com.github.GTNewHorizons:NotEnoughItems:2.2.28-GTNH:dev')
@@ -21,8 +21,9 @@ dependencies {
compileOnly('com.github.GTNewHorizons:ExtraCells2:2.5.19:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.27:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.3.19-GTNH:dev') {transitive = false}
+ compileOnly("com.github.GTNewHorizons:ProjectRed:4.7.7-GTNH:dev") {transitive = false}
- runtime('com.github.GTNewHorizons:NewHorizonsCoreMod:1.9.53:dev')
+ runtime('com.github.GTNewHorizons:NewHorizonsCoreMod:1.9.106:dev')
runtime('com.github.GTNewHorizons:ForestryMC:4.4.12:dev')
runtime('com.github.GTNewHorizons:GTplusplus:1.7.76:dev')
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
index aa2ba89340..aaec87d75c 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
@@ -5,7 +5,6 @@ import static com.github.bartimaeusnek.bartworks.util.RecipeFinderForParallel.ha
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
import static gregtech.api.enums.GT_HatchElement.*;
-import static gregtech.api.enums.GT_HatchElement.Muffler;
import static gregtech.api.util.GT_StructureUtility.ofFrame;
import com.github.bartimaeusnek.bartworks.util.Pair;
@@ -16,11 +15,8 @@ import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureUtility;
-import cpw.mods.fml.common.network.NetworkRegistry;
-import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
+import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_LongPowerUsageBase;
import goodgenerator.loader.Loaders;
-import goodgenerator.main.GoodGenerator;
-import goodgenerator.network.MessageResetTileTexture;
import goodgenerator.util.DescTextLocalization;
import goodgenerator.util.MyRecipeAdder;
import gregtech.api.GregTech_API;
@@ -31,6 +27,7 @@ import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.GregTechTileClientEvents;
import gregtech.api.metatileentity.implementations.*;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_HatchElementBuilder;
@@ -49,7 +46,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
import net.minecraftforge.fluids.FluidStack;
-public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
+public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<PreciseAssembler>
implements IConstructable, ISurvivalConstructable {
private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QTANK");
@@ -65,6 +62,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
protected int machineTier;
protected int mode;
protected int energyHatchTier;
+ private GT_Recipe lastRecipe;
public PreciseAssembler(String name) {
super(name);
@@ -75,7 +73,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public IStructureDefinition<PreciseAssembler> getStructure_EM() {
+ public IStructureDefinition<PreciseAssembler> getStructureDefinition() {
if (multiDefinition == null) {
multiDefinition = StructureDefinition.<PreciseAssembler>builder()
.addShape(mName, transpose(new String[][] {
@@ -95,7 +93,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
OutputBus,
Maintenance,
Muffler,
- HatchElement.EnergyMulti.or(Energy))
+ ExoticEnergy.or(Energy))
.adder(PreciseAssembler::addToPAssList)
.casingIndex(1539)
.dot(1)
@@ -158,7 +156,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
return mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity);
}
if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti) {
- return eEnergyMulti.add((GT_MetaTileEntity_Hatch_EnergyMulti) aMetaTileEntity);
+ return mExoticEnergyHatches.add((GT_MetaTileEntity_Hatch_EnergyMulti) aMetaTileEntity);
}
return false;
}
@@ -172,6 +170,11 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return true;
+ }
+
+ @Override
public void saveNBTData(NBTTagCompound aNBT) {
aNBT.setInteger("casingTier", casingTier);
aNBT.setInteger("machineTier", machineTier);
@@ -188,48 +191,31 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ);
}
- protected void calculateOverclockedNessMultiPara(long aEUt, int aDuration, int mAmperage, long maxInputPower) {
- // Prevent overclocking beyond MAX
- maxInputPower = Math.min(maxInputPower, Integer.MAX_VALUE - 1);
- while (aEUt <= maxInputPower && aDuration >= 1) {
- aEUt = aEUt << 2;
- aDuration = aDuration >> 1;
- }
- aEUt = aEUt >> 2;
- aDuration = aDuration << 1;
- if (aDuration <= 0) aDuration = 1;
- if (aEUt == maxInputPower) aEUt = (long) (maxInputPower * 0.9);
- this.mEUt = GT_Utility.safeInt(aEUt);
- this.mMaxProgresstime = aDuration;
- }
-
@Override
- public boolean checkRecipe_EM(ItemStack itemStack) {
+ public boolean checkRecipe(ItemStack itemStack) {
if (casingTier < 0 || machineTier < 0) return false;
FluidStack[] inputFluids = getStoredFluids().toArray(new FluidStack[0]);
if (this.mode == 0) {
for (GT_MetaTileEntity_Hatch_InputBus bus : mInputBusses) {
if (!isValidMetaTileEntity(bus)) continue;
- GT_Recipe tRecipe = getRecipeMap()
+ this.lastRecipe = getRecipeMap()
.findRecipe(
this.getBaseMetaTileEntity(),
+ this.lastRecipe,
false,
Math.min(getMachineVoltageLimit(), getMaxInputEnergyPA()),
inputFluids,
getStoredItemFromHatch(bus));
- if (tRecipe != null && tRecipe.mSpecialValue <= (casingTier + 1)) {
+ if (this.lastRecipe != null && this.lastRecipe.mSpecialValue <= (casingTier + 1)) {
this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
- tRecipe.isRecipeInputEqual(true, inputFluids, getStoredItemFromHatch(bus));
- mOutputItems = tRecipe.mOutputs;
- calculateOverclockedNessMultiPara(
- tRecipe.mEUt,
- tRecipe.mDuration,
- 1,
- Math.min(getMachineVoltageLimit(), getMaxInputEnergyPA()));
+ this.lastRecipe.isRecipeInputEqual(true, inputFluids, getStoredItemFromHatch(bus));
+ mOutputItems = this.lastRecipe.mOutputs;
+ calculateOverclockedNessMulti(
+ this.lastRecipe.mEUt, this.lastRecipe.mDuration, 1, getMaxInputEnergyPA());
this.updateSlots();
- if (this.mEUt > 0) {
- this.mEUt = (-this.mEUt);
+ if (this.lEUt > 0) {
+ this.lEUt = (-this.lEUt);
}
return true;
}
@@ -237,35 +223,31 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
} else {
for (GT_MetaTileEntity_Hatch_InputBus bus : mInputBusses) {
if (!isValidMetaTileEntity(bus) || getStoredItemFromHatch(bus).length < 1) continue;
- GT_Recipe tRecipe = getRecipeMap()
+ this.lastRecipe = getRecipeMap()
.findRecipe(
this.getBaseMetaTileEntity(),
+ this.lastRecipe,
false,
Math.min(getMachineVoltageLimit(), getMaxInputEnergyPA()),
inputFluids,
getStoredItemFromHatch(bus));
- if (tRecipe != null) {
+ if (this.lastRecipe != null) {
this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
- long fullInput = getMaxInputEnergy_EM();
- int pall = handleParallelRecipe(tRecipe, inputFluids, getStoredItemFromHatch(bus), (int)
- Math.min((long) Math.pow(2, 4 + (casingTier + 1)), fullInput / tRecipe.mEUt));
+ long fullInput = getMaxInputEnergyPA();
+ int pall = handleParallelRecipe(this.lastRecipe, inputFluids, getStoredItemFromHatch(bus), (int)
+ Math.min((long) Math.pow(2, 4 + (casingTier + 1)), fullInput / this.lastRecipe.mEUt));
if (pall <= 0) continue;
- Pair<ArrayList<FluidStack>, ArrayList<ItemStack>> Outputs = getMultiOutput(tRecipe, pall);
- long lEUt = (long) tRecipe.mEUt * (long) pall;
- int time = tRecipe.mDuration / 2;
- int modifier = 1;
- while (lEUt >= Integer.MAX_VALUE - 1) {
- lEUt = (long) tRecipe.mEUt * (long) pall / modifier;
- time = tRecipe.mDuration / 2 * modifier;
- modifier++;
- }
+ Pair<ArrayList<FluidStack>, ArrayList<ItemStack>> Outputs = getMultiOutput(this.lastRecipe, pall);
mOutputItems = Outputs.getValue().toArray(new ItemStack[0]);
- calculateOverclockedNessMultiPara(
- (int) lEUt, time, 1, Math.min(Integer.MAX_VALUE - 1, getMaxInputEnergy_EM()));
+ calculateOverclockedNessMulti(
+ (long) this.lastRecipe.mEUt * (long) pall,
+ this.lastRecipe.mDuration / 2,
+ 1,
+ getMaxInputEnergyPA());
this.updateSlots();
- if (this.mEUt > 0) {
- this.mEUt = (-this.mEUt);
+ if (this.lEUt > 0) {
+ this.lEUt = (-this.lEUt);
}
return true;
}
@@ -274,9 +256,6 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
return false;
}
- /**
- * Modified version of {@link #getMaxInputEnergy()}
- */
private long getMaxInputEnergyPA() {
long rEnergy = 0;
if (mEnergyHatches.size() == 1) {
@@ -285,14 +264,12 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
if (isValidMetaTileEntity(tHatch)) {
- rEnergy += tHatch.getBaseMetaTileEntity().getInputVoltage()
- * tHatch.getBaseMetaTileEntity().getInputAmperage();
+ rEnergy += tHatch.maxEUInput() * tHatch.maxAmperesIn();
}
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : eEnergyMulti) {
+ for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
if (isValidMetaTileEntity(tHatch)) {
- rEnergy += tHatch.getBaseMetaTileEntity().getInputVoltage()
- * tHatch.getBaseMetaTileEntity().getInputAmperage();
+ rEnergy += tHatch.maxEUInput() * ((GT_MetaTileEntity_Hatch_EnergyMulti) tHatch).Amperes;
}
}
return rEnergy;
@@ -305,7 +282,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
public long getMachineVoltageLimit() {
if (machineTier < 0) return 0;
- if (machineTier > 9) return GT_Values.V[energyHatchTier];
+ if (machineTier >= 9) return GT_Values.V[energyHatchTier];
else return GT_Values.V[Math.min(machineTier, energyHatchTier)];
}
@@ -325,46 +302,13 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public boolean drainEnergyInput_EM(long EUtTierVoltage, long EUtEffective, long Amperes) {
- long EUuse = EUtEffective * Amperes;
- if (EUuse < 0) {
- EUuse = -EUuse;
- }
- for (GT_MetaTileEntity_Hatch tHatch : mEnergyHatches) {
- long tDrain = Math.min(tHatch.getBaseMetaTileEntity().getStoredEU(), EUuse);
- tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(tDrain, false);
- EUuse -= tDrain;
- }
- for (GT_MetaTileEntity_Hatch tHatch : eEnergyMulti) {
- long tDrain = Math.min(tHatch.getBaseMetaTileEntity().getStoredEU(), EUuse);
- tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(tDrain, false);
- EUuse -= tDrain;
- }
- return EUuse <= 0;
- }
-
- @Override
- public boolean drainEnergyInput(long EUtEffective, long Amperes) {
- long EUuse = EUtEffective * Amperes;
- if (EUuse < 0) {
- EUuse = -EUuse;
- }
- for (GT_MetaTileEntity_Hatch tHatch : mEnergyHatches) {
- long tDrain = Math.min(tHatch.getBaseMetaTileEntity().getStoredEU(), EUuse);
- tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(tDrain, false);
- EUuse -= tDrain;
- }
- for (GT_MetaTileEntity_Hatch tHatch : eEnergyMulti) {
- long tDrain = Math.min(tHatch.getBaseMetaTileEntity().getStoredEU(), EUuse);
- tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(tDrain, false);
- EUuse -= tDrain;
- }
- return EUuse <= 0;
+ protected long getRealVoltage() {
+ return getMaxInputEnergyPA();
}
@Override
public void construct(ItemStack stackSize, boolean hintsOnly) {
- structureBuild_EM(mName, 4, 4, 0, stackSize, hintsOnly);
+ buildPiece(mName, stackSize, hintsOnly, 4, 4, 0);
}
@Override
@@ -377,24 +321,17 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
this.machineTier = -1;
this.casingAmount = 0;
this.casingTier = -1;
this.energyHatchTier = 0;
- if (structureCheck_EM(mName, 4, 4, 0)) {
+ if (checkPiece(mName, 4, 4, 0)) {
energyHatchTier = checkEnergyHatchTier();
if (casingTier >= 0) {
reUpdate(1539 + casingTier);
}
- GoodGenerator.CHANNEL.sendToAllAround(
- new MessageResetTileTexture(aBaseMetaTileEntity, casingTier),
- new NetworkRegistry.TargetPoint(
- aBaseMetaTileEntity.getWorld().provider.dimensionId,
- aBaseMetaTileEntity.getXCoord(),
- aBaseMetaTileEntity.getYCoord(),
- aBaseMetaTileEntity.getZCoord(),
- 16));
+ getBaseMetaTileEntity().sendBlockEvent(GregTechTileClientEvents.CHANGE_CUSTOM_DATA, getUpdateData());
return casingAmount >= 42
&& machineTier >= 0
&& casingTier >= 0
@@ -441,6 +378,16 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+
+ @Override
public String[] getStructureDescription(ItemStack stackSize) {
return DescTextLocalization.addText("PreciseAssembler.hint", 6);
}
@@ -457,7 +404,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
tier = Math.max(tHatch.mTier, tier);
}
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : eEnergyMulti) {
+ for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
if (isValidMetaTileEntity(tHatch)) {
tier = Math.max(tHatch.mTier, tier);
}
@@ -503,12 +450,25 @@ public class PreciseAssembler extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
for (GT_MetaTileEntity_Hatch hatch : mMufflerHatches) {
hatch.updateTexture(texture);
}
- for (GT_MetaTileEntity_Hatch hatch : eEnergyMulti) {
+ for (GT_MetaTileEntity_Hatch hatch : mExoticEnergyHatches) {
hatch.updateTexture(texture);
}
}
@Override
+ public byte getUpdateData() {
+ return (byte) casingTier;
+ }
+
+ @Override
+ public void receiveClientEvent(byte aEventID, byte aValue) {
+ super.receiveClientEvent(aEventID, aValue);
+ if (aEventID == GregTechTileClientEvents.CHANGE_CUSTOM_DATA && (aValue & 0x80) == 0) {
+ casingTier = aValue;
+ }
+ }
+
+ @Override
public ITexture[] getTexture(
IGregTechTileEntity aBaseMetaTileEntity,
byte aSide,
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java
new file mode 100644
index 0000000000..b6e8f79ca8
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java
@@ -0,0 +1,125 @@
+package goodgenerator.blocks.tileEntity.base;
+
+import com.github.bartimaeusnek.bartworks.util.BW_Util;
+import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
+import gregtech.api.metatileentity.implementations.*;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
+
+/**
+ * Base class for multiblocks that supports TT energy hatches.
+ * @param <T>
+ */
+public abstract class GT_MetaTileEntity_LongPowerUsageBase<T extends GT_MetaTileEntity_LongPowerUsageBase<T>>
+ extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase<T> {
+
+ protected GT_MetaTileEntity_LongPowerUsageBase(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ protected GT_MetaTileEntity_LongPowerUsageBase(String aName) {
+ super(aName);
+ }
+
+ @Override
+ public void clearHatches() {
+ mExoticEnergyHatches.clear();
+ super.clearHatches();
+ }
+
+ @Override
+ public long getMaxInputVoltage() {
+ long rVoltage = 0;
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ rVoltage += tHatch.maxEUInput();
+ }
+ }
+ for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ rVoltage += tHatch.maxEUInput();
+ }
+ }
+ return rVoltage;
+ }
+
+ @Override
+ public String[] getInfoData() {
+ return getInfoDataArray(this);
+ }
+
+ protected abstract long getRealVoltage();
+
+ protected long getMaxInputAmps() {
+ long rAmps = 0;
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ rAmps += tHatch.maxAmperesIn();
+ }
+ }
+ for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ rAmps += ((GT_MetaTileEntity_Hatch_EnergyMulti) tHatch).Amperes;
+ }
+ }
+ return rAmps;
+ }
+
+ protected String[] getInfoDataArray(GT_MetaTileEntity_MultiBlockBase multiBlockBase) {
+ int mPollutionReduction = 0;
+
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : this.mMufflerHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
+ }
+ }
+
+ long storedEnergy = 0;
+ long maxEnergy = 0;
+
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : this.mEnergyHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
+ }
+ }
+ for (GT_MetaTileEntity_Hatch tHatch : this.mExoticEnergyHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
+ }
+ }
+
+ long nominalV = getRealVoltage();
+ String tName = BW_Util.getTierNameFromVoltage(this.getMaxInputVoltage());
+ if (tName.equals("MAX+")) tName = EnumChatFormatting.OBFUSCATED + "MAX+";
+
+ return new String[] {
+ StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " + EnumChatFormatting.GREEN
+ + GT_Utility.formatNumbers(this.mProgresstime / 20) + EnumChatFormatting.RESET + " s / "
+ + EnumChatFormatting.YELLOW
+ + GT_Utility.formatNumbers(this.mMaxProgresstime / 20) + EnumChatFormatting.RESET + " s",
+ StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " + EnumChatFormatting.GREEN
+ + GT_Utility.formatNumbers(storedEnergy) + EnumChatFormatting.RESET + " EU / "
+ + EnumChatFormatting.YELLOW
+ + GT_Utility.formatNumbers(maxEnergy) + EnumChatFormatting.RESET + " EU",
+ StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " + EnumChatFormatting.RED
+ + GT_Utility.formatNumbers(-this.lEUt) + EnumChatFormatting.RESET + " EU/t",
+ StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " + EnumChatFormatting.YELLOW
+ + GT_Utility.formatNumbers(this.getMaxInputVoltage()) + EnumChatFormatting.RESET + " EU/t(*"
+ + GT_Utility.formatNumbers(this.getMaxInputAmps()) + "A) = "
+ + EnumChatFormatting.YELLOW
+ + GT_Utility.formatNumbers(nominalV) + EnumChatFormatting.RESET,
+ StatCollector.translateToLocal("GT5U.machines.tier") + ": " + EnumChatFormatting.YELLOW + tName
+ + EnumChatFormatting.RESET,
+ StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " + EnumChatFormatting.RED
+ + (this.getIdealStatus() - this.getRepairStatus()) + EnumChatFormatting.RESET + " "
+ + StatCollector.translateToLocal("GT5U.multiblock.efficiency")
+ + ": " + EnumChatFormatting.YELLOW
+ + (float) this.mEfficiency / 100.0F + EnumChatFormatting.RESET + " %",
+ StatCollector.translateToLocal("GT5U.multiblock.pollution") + ": " + EnumChatFormatting.GREEN
+ + mPollutionReduction + EnumChatFormatting.RESET + " %"
+ };
+ }
+}
diff --git a/src/main/java/goodgenerator/main/GoodGenerator.java b/src/main/java/goodgenerator/main/GoodGenerator.java
index 00a367e505..f1aad54ebd 100644
--- a/src/main/java/goodgenerator/main/GoodGenerator.java
+++ b/src/main/java/goodgenerator/main/GoodGenerator.java
@@ -4,16 +4,19 @@ import com.github.bartimaeusnek.bartworks.API.WerkstoffAdderRegistry;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
-import cpw.mods.fml.common.event.*;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;
import goodgenerator.common.CommonProxy;
import goodgenerator.crossmod.thaumcraft.Research;
import goodgenerator.items.MyMaterial;
-import goodgenerator.loader.*;
+import goodgenerator.loader.Loaders;
+import goodgenerator.loader.NaquadahReworkRecipeLoader;
import goodgenerator.network.MessageOpenNeutronSensorGUI;
-import goodgenerator.network.MessageResetTileTexture;
import goodgenerator.network.MessageSetNeutronSensorData;
import goodgenerator.tabs.MyTabs;
import net.minecraft.creativetab.CreativeTabs;
@@ -46,8 +49,6 @@ public final class GoodGenerator {
MessageSetNeutronSensorData.ServerHandler.class, MessageSetNeutronSensorData.class, 0, Side.SERVER);
CHANNEL.registerMessage(
MessageOpenNeutronSensorGUI.ClientHandler.class, MessageOpenNeutronSensorGUI.class, 1, Side.CLIENT);
- CHANNEL.registerMessage(
- MessageResetTileTexture.ClientHandler.class, MessageResetTileTexture.class, 2, Side.CLIENT);
}
@Mod.Instance(GoodGenerator.MOD_ID)
diff --git a/src/main/java/goodgenerator/network/MessageResetTileTexture.java b/src/main/java/goodgenerator/network/MessageResetTileTexture.java
deleted file mode 100644
index e078891c40..0000000000
--- a/src/main/java/goodgenerator/network/MessageResetTileTexture.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package goodgenerator.network;
-
-import cpw.mods.fml.common.network.simpleimpl.IMessage;
-import cpw.mods.fml.common.network.simpleimpl.MessageContext;
-import goodgenerator.blocks.tileEntity.PreciseAssembler;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import io.netty.buffer.ByteBuf;
-
-public class MessageResetTileTexture extends MessageMTEBase {
-
- protected int index;
-
- public MessageResetTileTexture() {}
-
- public MessageResetTileTexture(IGregTechTileEntity tile, int index) {
- super(tile);
- this.index = index;
- }
-
- @Override
- public void fromBytes(ByteBuf buf) {
- super.fromBytes(buf);
- index = buf.readInt();
- }
-
- @Override
- public void toBytes(ByteBuf buf) {
- super.toBytes(buf);
- buf.writeInt(index);
- }
-
- public static class ClientHandler extends MessageMTEBase.Handler<MessageResetTileTexture, IMessage> {
-
- @Override
- protected IMessage onError(MessageResetTileTexture message, MessageContext ctx) {
- return null;
- }
-
- @Override
- protected IMessage onSuccess(MessageResetTileTexture message, MessageContext ctx, IMetaTileEntity mte) {
- if (mte instanceof PreciseAssembler) {
- ((PreciseAssembler) mte).setCasingTier(message.index);
- mte.markDirty();
- }
- return null;
- }
- }
-}