diff options
6 files changed, 234 insertions, 90 deletions
diff --git a/src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java b/src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java index bd8159eb01..2b7b98640e 100644 --- a/src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java +++ b/src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java @@ -42,7 +42,7 @@ public class ItemBasicScrubberTurbine extends Item { @Override public void getSubItems(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < 2; i ++) { + for (int i = 0; i < 3; i ++) { list.add(new ItemStack(item, 1, i)); } } @@ -69,6 +69,9 @@ public class ItemBasicScrubberTurbine extends Item { if (meta == 1){ HEX_OxFFFFFF = Utils.rgbtoHexValue(255,128,0); } + if (meta == 2){ + HEX_OxFFFFFF = Utils.rgbtoHexValue(128,128,128); + } return HEX_OxFFFFFF; } @@ -111,10 +114,13 @@ public class ItemBasicScrubberTurbine extends Item { if (aStack != null) { int aMeta = aStack.getItemDamage(); if (aMeta == 0) { - return 2500; + return 2000; } if (aMeta == 1) { - return 5000; + return 4000; + } + if (aMeta == 2) { + return 6000; } } return 0; diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java index 08d8dda039..1c95467770 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java @@ -194,6 +194,12 @@ public class RECIPES_General { "stickBronze", "plateBronze", CI.craftingToolHammer_Hard, ItemUtils.simpleMetaStack(ModItems.itemBasicTurbine, 1, 1) ); + RecipeUtils.addShapedRecipe( + CI.craftingToolFile, "plateSteel", "stickSteel", + "plateSteel", "ringSteel", "plateSteel", + "stickSteel", "plateSteel", CI.craftingToolHammer_Hard, + ItemUtils.simpleMetaStack(ModItems.itemBasicTurbine, 2, 1) + ); } if (Meta_GT_Proxy.sDoesVolumetricFlaskExist) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java index 7a9417eeb6..3b96731f00 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java @@ -47,7 +47,7 @@ public class GUI_PollutionCleaner extends GT_GUIContainerMetaTile_Machine { //Do Dumb shit CONTAINER_PollutionCleaner aContainerCast = (CONTAINER_PollutionCleaner) this.mContainer; mReduction = aContainerCast.mReduction; - list.add("Reduction: "+mReduction); + list.add("Reduction: "+mReduction+"/s"); } } if (!list.isEmpty()) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java index a4b4d902ed..23a76fb582 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java @@ -48,7 +48,7 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi protected boolean mSaveRotor = false; public GregtechMetaAtmosphericReconditioner(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 2, "Making sure you don't live in Gwalior - Uses 2A", 2, 0, "Recycler.png", "", + super(aID, aName, aNameRegional, aTier, 2, "Making sure you don't live in Gwalior - Uses 2A", 3, 0, "Recycler.png", "", new ITexture[]{ new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_MASSFAB), @@ -147,12 +147,6 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi //Get Current Pollution Amount. int mCurrentPollution = getCurrentChunkPollution(); - if (mCurrentPollution > 0) { - this.mHasPollution = true; - } - else { - this.mHasPollution = false; - } boolean isIdle = true; //Get Inventory Item @@ -187,6 +181,15 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi //Only try once/sec. if (!isIdle && aTick % 20L == 0L){ + + + for (int i=0;i<this.mInventory.length;i++) { + ItemStack aSlotContent = this.mInventory[i]; + if (aSlotContent != null) { + Logger.INFO("Found "+aSlotContent.getDisplayName()+" in slot "+i); + } + } + for (int i=0;i<this.mInventory.length;i++) { if (hasRotor(this.mInventory[i])) { Logger.INFO("Found Rotor in slot "+i); @@ -242,9 +245,9 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi //Use a Turbine if(hasRotor(stackRotor) && hasAirFilter(stackFilter)){ Logger.INFO("Found Turbine."); - mBaseEff = (int) ((50.0F + (10.0F * ((GT_MetaGenerated_Tool) stackRotor.getItem()).getToolCombatDamage(stackRotor))) * 100); - mOptimalAirFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool) stackRotor.getItem()).getToolStats(stackRotor).getSpeedMultiplier() - * GT_MetaGenerated_Tool.getPrimaryMaterial(stackRotor).mToolSpeed * 50); + + mBaseEff = getBaseEfficiency(stackRotor); + mOptimalAirFlow = getOptimalAirFlow(stackRotor); //Make sure we have a valid Turbine and Eff/Airflow if (this.mBaseEff > 0 && this.mOptimalAirFlow > 0){ @@ -281,6 +284,7 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi int toRemove = 0; Logger.INFO("mCurrentPollution[4]:"+mCurrentPollution); + Logger.INFO("mCurrentPollution[5]:"+reduction); if (reduction <= mCurrentPollution){ //Clean some Air. toRemove = reduction; @@ -289,7 +293,8 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi //Makes sure we don't get negative pollution. toRemove = mCurrentPollution; } - + Logger.INFO("mCurrentPollution[6]:"+toRemove); + //We are good to clean if (toRemove > 0){ if (damageTurbineRotor() && damageAirFilter()){ @@ -416,33 +421,43 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi if (rotorStack == null) { return false; } - else { - if(rotorStack.getItem() instanceof GT_MetaGenerated_Tool_01) { - Materials t1 = GT_MetaGenerated_Tool.getPrimaryMaterial(rotorStack); - Materials t2 = GT_MetaGenerated_Tool.getSecondaryMaterial(rotorStack); - if (t1 == Materials._NULL && t2 == Materials._NULL){ - creativeRotor = true; - } - } - } - - if (rotorStack.getItem() instanceof ItemBasicScrubberTurbine) { + else if (rotorStack.getItem() instanceof ItemBasicScrubberTurbine) { long currentUse = ItemBasicScrubberTurbine.getFilterDamage(rotorStack); //Remove broken Filter - if (rotorStack.getItemDamage() == 0 && currentUse >= 2500-10){ + if (rotorStack.getItemDamage() == 0 && currentUse >= 2000-10){ + Logger.INFO("Depleting ItemBasicScrubberTurbine T1"); this.mInventory[this.SLOT_FILTER] = null; return false; } - else if (rotorStack.getItemDamage() == 1 && currentUse >= 5000-10){ + else if (rotorStack.getItemDamage() == 1 && currentUse >= 4000-10){ + Logger.INFO("Depleting ItemBasicScrubberTurbine T2"); + this.mInventory[this.SLOT_FILTER] = null; + return false; + } + else if (rotorStack.getItemDamage() == 2 && currentUse >= 6000-10){ + Logger.INFO("Depleting ItemBasicScrubberTurbine T3"); this.mInventory[this.SLOT_FILTER] = null; return false; } else { //Do Damage - ItemAirFilter.setFilterDamage(rotorStack, currentUse+10); + Logger.INFO("Damaging ItemBasicScrubberTurbine"); + ItemBasicScrubberTurbine.setFilterDamage(rotorStack, currentUse+10); Logger.INFO("Rotor Damage: "+currentUse); return true; } + } + else if(rotorStack.getItem() instanceof GT_MetaGenerated_Tool_01) { + Materials t1 = GT_MetaGenerated_Tool.getPrimaryMaterial(rotorStack); + Materials t2 = GT_MetaGenerated_Tool.getSecondaryMaterial(rotorStack); + if (t1 == Materials._NULL && t2 == Materials._NULL){ + Logger.INFO("Found creative rotor."); + creativeRotor = true; + } + } + else { + Logger.INFO("Bad item in rotor slot."); + return false; } if(mInventory[SLOT_ROTOR].getItem() instanceof GT_MetaGenerated_Tool_01 && @@ -516,7 +531,9 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi return false; } } - catch (Throwable t){} + catch (Throwable t){ + t.printStackTrace(); + } return false; } @@ -698,14 +715,14 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi @Override public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - if (aIndex == 5) { + if (aIndex == SLOT_FILTER) { if (aStack.getItem() instanceof ItemAirFilter) { Logger.INFO("Inserting Air Filter into "+aIndex); return true; } } - if (aIndex == 4) { - if (this.mInventory[6] != null) { + if (aIndex == SLOT_ROTOR) { + if (this.mInventory[7] != null) { Logger.INFO("Found conveyor, can automate turbines. Inserting into "+aIndex); if (aStack.getItem() instanceof ItemBasicScrubberTurbine) { return true; @@ -814,4 +831,35 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi super.setItemNBT(aNBT); } + private static ItemStack[] sGregTurbines; + + public static ItemStack getTieredTurbine(int aTier) { + if (sGregTurbines == null) { + sGregTurbines = new ItemStack[3]; + sGregTurbines[0] = GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(GT_MetaGenerated_Tool_01.TURBINE_SMALL, 1, Materials.Iron, Materials.Iron, null); + sGregTurbines[1] = GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(GT_MetaGenerated_Tool_01.TURBINE_SMALL, 1, Materials.Bronze, Materials.Bronze, null); + sGregTurbines[2] = GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(GT_MetaGenerated_Tool_01.TURBINE_SMALL, 1, Materials.Steel, Materials.Steel, null); + } + else { + return sGregTurbines[aTier]; + } + + return null; + } + + public int getBaseEfficiency(ItemStack aStackRotor) { + if (aStackRotor.getItem() instanceof ItemBasicScrubberTurbine) { + return getBaseEfficiency(getTieredTurbine(aStackRotor.getItemDamage())); + } + return (int) ((50.0F + (10.0F * ((GT_MetaGenerated_Tool) aStackRotor.getItem()).getToolCombatDamage(aStackRotor))) * 100); + } + + public int getOptimalAirFlow(ItemStack aStackRotor) { + if (aStackRotor.getItem() instanceof ItemBasicScrubberTurbine) { + return getOptimalAirFlow(getTieredTurbine(aStackRotor.getItemDamage())); + } + return (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool) aStackRotor.getItem()).getToolStats(aStackRotor).getSpeedMultiplier() + * GT_MetaGenerated_Tool.getPrimaryMaterial(aStackRotor).mToolSpeed * 50); + } + }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java index a90c962cae..78adb094ed 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java @@ -5,6 +5,9 @@ import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass; import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdderOptional; + +import java.util.function.Predicate; import com.gtnewhorizon.structurelib.StructureLibAPI; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; @@ -20,6 +23,7 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; @@ -46,6 +50,12 @@ import net.minecraft.world.World; public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_PowerSubStationController> { + private static enum TopState { + MayBeTop, + Top, + NotTop + } + protected long mAverageEuUsage = 0; protected long mTotalEnergyAdded = 0; protected long mTotalEnergyConsumed = 0; @@ -57,7 +67,8 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe private int mCasing; private int[] cellCount = new int[6]; - private IStructureDefinition<GregtechMetaTileEntity_PowerSubStationController> STRUCTURE_DEFINITION = null; + private TopState topState = TopState.MayBeTop; + private static IStructureDefinition<GregtechMetaTileEntity_PowerSubStationController> STRUCTURE_DEFINITION = null; public GregtechMetaTileEntity_PowerSubStationController(final int aID, final String aName, final String aNameRegional) { super(aID, aName, aNameRegional); @@ -76,19 +87,19 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe protected GT_Multiblock_Tooltip_Builder createTooltip() { GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType(getMachineType()) - .addInfo("[BUG] GUI does not work until structure is assembled correctly. (Do Not Report issue)") - .addInfo("Consumes " + this.ENERGY_TAX + "% of the average voltage of all energy type hatches") - .addInfo("Does not require maintenance") - .addInfo("Can be built with variable height between " + (CELL_HEIGHT_MIN + 2) + "-" + (CELL_HEIGHT_MAX + 2) + "") - .addInfo("Hatches can be placed nearly anywhere") - .addInfo("HV Energy/Dynamo Hatches are the lowest tier you can use") - .addInfo("Supports voltages >= UHV using MAX tier components.") - .addSeparator() - .addController("Bottom Center") - .addCasingInfo("Sub-Station External Casings", 10) - .addDynamoHatch("Any Casing", 1) - .addEnergyHatch("Any Casing", 1) - .toolTipFinisher(CORE.GT_Tooltip_Builder); + .addInfo("[BUG] GUI does not work until structure is assembled correctly. (Do Not Report issue)") + .addInfo("Consumes " + this.ENERGY_TAX + "% of the average voltage of all energy type hatches") + .addInfo("Does not require maintenance") + .addInfo("Can be built with variable height between " + (CELL_HEIGHT_MIN + 2) + "-" + (CELL_HEIGHT_MAX + 2) + "") + .addInfo("Hatches can be placed nearly anywhere") + .addInfo("HV Energy/Dynamo Hatches are the lowest tier you can use") + .addInfo("Supports voltages >= UHV using MAX tier components.") + .addSeparator() + .addController("Bottom Center") + .addCasingInfo("Sub-Station External Casings", 10) + .addDynamoHatch("Any Casing", 1) + .addEnergyHatch("Any Casing", 1) + .toolTipFinisher(CORE.GT_Tooltip_Builder); return tt; } @@ -202,62 +213,100 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe if (STRUCTURE_DEFINITION == null) { STRUCTURE_DEFINITION = StructureDefinition.<GregtechMetaTileEntity_PowerSubStationController>builder() .addShape(mName + "bottom", transpose(new String[][]{ - {"CC~CC", "CCCCC", "CCCCC", "CCCCC", "CCCCC"} + {"CC~CC", "CCCCC", "CCCCC", "CCCCC", "CCCCC"} + })) + .addShape(mName + "layer", transpose(new String[][]{ + {"CCCCC", "CIIIC", "CIIIC", "CIIIC", "CCCCC"} })) .addShape(mName + "mid", transpose(new String[][]{ - {"CCCCC", "CHHHC", "CHHHC", "CHHHC", "CCCCC"} + {"CCCCC", "CHHHC", "CHHHC", "CHHHC", "CCCCC"} })) .addShape(mName + "top", transpose(new String[][]{ - {"CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC"} + {"CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC"} })) .addElement( 'C', ofChain( ofHatchAdder( GregtechMetaTileEntity_PowerSubStationController::addPowerSubStationList, TAE.GTPP_INDEX(24), 1 - ), + ), onElementPass( x -> ++x.mCasing, ofBlock( ModBlocks.blockCasings2Misc, 8 + ) ) ) ) - ) .addElement( - 'H', + 'I', ofChain( - onElementPass( - x -> ++x.cellCount[0], - ofCell(4) - ), - onElementPass( - x -> ++x.cellCount[1], - ofCell(5) - ), - onElementPass( - x -> ++x.cellCount[2], - ofCell(6) - ), - onElementPass( - x -> ++x.cellCount[3], - ofCell(7) - ), - onElementPass( - x -> ++x.cellCount[4], - ofCell(8) - ), - onElementPass( - x -> ++x.cellCount[5], - ofCell(9) + onlyIf( + x -> x.topState != TopState.NotTop, + onElementPass( + x -> x.topState = TopState.Top, + ofHatchAdderOptional(GregtechMetaTileEntity_PowerSubStationController::addPowerSubStationList, TAE.GTPP_INDEX(24), 1, ModBlocks.blockCasings2Misc, 8) + ) + ), + onlyIf( + x -> x.topState != TopState.Top, + onElementPass( + x -> x.topState = TopState.NotTop, + ofChain( + onElementPass( + x -> ++x.cellCount[0], + ofCell(4) + ), + onElementPass( + x -> ++x.cellCount[1], + ofCell(5) + ), + onElementPass( + x -> ++x.cellCount[2], + ofCell(6) + ), + onElementPass( + x -> ++x.cellCount[3], + ofCell(7) + ), + onElementPass( + x -> ++x.cellCount[4], + ofCell(8) + ), + onElementPass( + x -> ++x.cellCount[5], + ofCell(9) + ) + ) + ) + ) ) ) - ) + .addElement('H', ofCell(4)) .build(); } return STRUCTURE_DEFINITION; } + public static <T> IStructureElement<T> onlyIf(Predicate<? super T> predicate, IStructureElement<? super T> downstream) { + return new IStructureElement<T>() { + @Override + public boolean check(T t, World world, int x, int y, int z) { + return predicate.test(t) && downstream.check(t, world, x, y, z); + } + + @Override + public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { + return predicate.test(t) && downstream.spawnHint(t, world, x, y, z, trigger); + } + + @Override + public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { + return predicate.test(t) && downstream.placeBlock(t, world, x, y, z, trigger); + } + }; + } + public static <T> IStructureElement<T> ofCell(int aIndex) { return new IStructureElement<T>() { @Override @@ -289,45 +338,74 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe @Override public void construct(ItemStack stackSize, boolean hintsOnly) { int layer = Math.min(stackSize.stackSize + 3, 18); + log("Layer: "+layer); + log("Building 0"); buildPiece(mName + "bottom" , stackSize, hintsOnly, 2, 0, 0); + log("Built 0"); for (int i = 1; i < layer - 1; i++) { + log("Building "+i); buildPiece(mName + "mid", stackSize, hintsOnly, 2, i, 0); + log("Built "+i); } + log("Building "+(layer - 1)); buildPiece(mName + "top", stackSize, hintsOnly, 2, layer - 1, 0); + log("Built "+(layer - 1)); } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mCasing = 0; + mEnergyHatches.clear(); + mDynamoHatches.clear(); + mTecTechEnergyHatches.clear(); + mTecTechDynamoHatches.clear(); mAllEnergyHatches.clear(); mAllDynamoHatches.clear(); for (int i = 0; i < 6; i++) { cellCount[i] = 0; } - if (!checkPiece(mName + "bottom", 2, 0, 0)) + log("Checking 0"); + if (!checkPiece(mName + "bottom", 2, 0, 0)) { + log("Failed on Layer 0"); return false; + } + log("Pass 0"); int layer = 1; - while (checkPiece(mName + "mid", 2, layer, 0)) { + topState = TopState.MayBeTop; + while (true) { + if (!checkPiece(mName + "layer", 2, layer, 0)) + return false; layer ++; + if (topState == TopState.Top) + break; // top found, break out + topState = TopState.MayBeTop; + if (layer > 18) + return false; // too many layers } - if (layer > 19 || !checkPiece(mName + "top", 2, layer, 0)) - return false; int level = 0; for (int i = 0; i < 6; i++) { if (cellCount[i] != 0) { - if (level == 0) level = i + 4; - else return false; + if (level == 0) { + level = i + 4; + } + else { + return false; + } } } int tier = getMaxHatchTier(level); long volSum = 0; for (GT_MetaTileEntity_Hatch hatch : mAllDynamoHatches) { - if (hatch.mTier > tier || hatch.mTier < 3) return false; - volSum += (8 << (hatch.mTier * 2)); + if (hatch.mTier > tier || hatch.mTier < 3) { + return false; + } + volSum += (8L << (hatch.mTier * 2)); } for (GT_MetaTileEntity_Hatch hatch : mAllEnergyHatches) { - if (hatch.mTier > tier || hatch.mTier < 3) return false; - volSum += (8 << (hatch.mTier * 2)); + if (hatch.mTier > tier || hatch.mTier < 3) { + return false; + } + volSum += (8L << (hatch.mTier * 2)); } mBatteryCapacity = getCapacityFromCellTier(level) * cellCount[level - 4]; if (mAllEnergyHatches.size() + mAllDynamoHatches.size() > 0) { @@ -345,9 +423,14 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { return addToMachineList(aTileEntity, aBaseCasingIndex); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { + } + else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { return addToMachineList(aTileEntity, aBaseCasingIndex); - } if (LoadedMods.TecTech) { + } + else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { + return addToMachineList(aTileEntity, aBaseCasingIndex); + } + else if (LoadedMods.TecTech) { if (isThisHatchMultiDynamo(aMetaTileEntity)) { return addToMachineList(aTileEntity, aBaseCasingIndex); } else if (isThisHatchMultiEnergy(aMetaTileEntity)) { @@ -406,7 +489,7 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe @Override public void loadNBTData(NBTTagCompound aNBT) { - + // Best not to get a long if the Tag Map is holding an int if (aNBT.hasKey("mAverageEuUsage")) { this.mAverageEuUsage = aNBT.getLong("mAverageEuUsage"); diff --git a/src/resources/assets/miscutils/lang/en_US.lang b/src/resources/assets/miscutils/lang/en_US.lang index c70d102235..7a021cbc26 100644 --- a/src/resources/assets/miscutils/lang/en_US.lang +++ b/src/resources/assets/miscutils/lang/en_US.lang @@ -3235,6 +3235,7 @@ tile.Botmium Frame Box.name=Botmium Frame Box item.itemBasicTurbine.name=Basic Turbine item.itemBasicTurbine_0.name=Basic Iron Turbine item.itemBasicTurbine_1.name=Basic Bronze Turbine +item.itemBasicTurbine_2.name=Basic Steel Turbine interaction.voidexcess.enabled=Void Excess Enabled interaction.voidexcess.disabled=Void Excess Disabled |