diff options
Diffstat (limited to 'src/main/java/kubatech/tileentity/gregtech')
-rw-r--r-- | src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java index cf8d865ba0..b7614770aa 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java @@ -304,8 +304,8 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse extends GT_MetaTileEn return true; } - @Override - public boolean checkRecipe(ItemStack itemStack) { + private void updateMaxSlots() + { long v = this.getMaxInputVoltage(); int tier = GT_Utility.getTier(v); if(tier < (isIC2Mode ? 6 : 4)) @@ -314,15 +314,13 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse extends GT_MetaTileEn mMaxSlots = 4 << (2 * (tier - 6)); else mMaxSlots = 1 << (tier - 4); - if(mStorage.size() > mMaxSlots) - { - // Void if user just downgraded power - for(int i = mMaxSlots; i < mStorage.size(); i++) - { - mStorage.remove(i); - i--; - } - } + } + + @Override + public boolean checkRecipe(ItemStack itemStack) { + long v = this.getMaxInputVoltage(); + int tier = GT_Utility.getTier(v); + updateMaxSlots(); if(setupphase > 0) { if((mStorage.size() >= mMaxSlots && setupphase == 1) || (mStorage.size() == 0 && setupphase == 2)) return false; @@ -332,6 +330,8 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse extends GT_MetaTileEn this.mEfficiencyIncrease = 10000; return true; } + if(mStorage.size() > mMaxSlots) + return false; if(mStorage.isEmpty()) return false; @@ -410,9 +410,14 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse extends GT_MetaTileEn if (this.glasTier < hatchEnergy.mTier) return false; - return this.mMaintenanceHatches.size() == 1 && - this.mEnergyHatches.size() >= 1 && - this.mCasing >= 70; + boolean valid = this.mMaintenanceHatches.size() == 1 && + this.mEnergyHatches.size() >= 1 && + this.mCasing >= 70; + + if(valid) + updateMaxSlots(); + + return valid; } @Override @@ -436,7 +441,7 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse extends GT_MetaTileEn "Running in mode: " + EnumChatFormatting.GREEN + (setupphase == 0 ? (isIC2Mode ? "IC2 crops" : "Normal crops") : ("Setup mode " + (setupphase == 1 ? "(input)" : "(output)"))) + EnumChatFormatting.RESET, "Uses " + waterusage * 1000 + "L/operation of water", "Max slots: " + EnumChatFormatting.GREEN + this.mMaxSlots + EnumChatFormatting.RESET, - "Used slots: " + EnumChatFormatting.GREEN + this.mStorage.size() + EnumChatFormatting.RESET + "Used slots: " + ((mStorage.size() > mMaxSlots) ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + this.mStorage.size() + EnumChatFormatting.RESET )); for(int i = 0; i < mStorage.size(); i++) { if(!mStorage.get(i).isValid) @@ -450,7 +455,8 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse extends GT_MetaTileEn a.append(EnumChatFormatting.RESET); info.add(a.toString()); } - + if(mStorage.size() > mMaxSlots) + info.add(EnumChatFormatting.DARK_RED + "There are too many crops inside to run !" + EnumChatFormatting.RESET); info.addAll(Arrays.asList(super.getInfoData())); return info.toArray(new String[0]); } |