diff --git a/parts/automation/PartUpgradeable.java b/parts/automation/PartUpgradeable.java index 2640b7a1..2a6e23e6 100644 --- a/parts/automation/PartUpgradeable.java +++ b/parts/automation/PartUpgradeable.java @@ -16,7 +16,7 @@ public class PartUpgradeable extends PartBasicState implements ISegmentedInvento { IConfigManager settings = new ConfigManager( this ); - private UpgradeInventory upgrades = new UpgradeInventory( is.getItem(), this, 4 ); + private UpgradeInventory upgrades = new UpgradeInventory( is, this, getUpgradeSlots() ); @Override public int getInstalledUpgrades(Upgrades u) @@ -24,6 +24,11 @@ public class PartUpgradeable extends PartBasicState implements ISegmentedInvento return upgrades.getInstalledUpgrades( u ); } + protected int getUpgradeSlots() + { + return 4; + } + public void writeToNBT(net.minecraft.nbt.NBTTagCompound extra) { super.writeToNBT( extra ); diff --git a/parts/automation/UpgradeInventory.java b/parts/automation/UpgradeInventory.java index 6afa2f76..759e4321 100644 --- a/parts/automation/UpgradeInventory.java +++ b/parts/automation/UpgradeInventory.java @@ -65,7 +65,6 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE private int getMaxInstalled(Upgrades u) { Integer max = null; - for (ItemStack is : u.getSupported().keySet()) { if ( is.getItem() == itemorblock ) @@ -78,6 +77,11 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE max = u.getSupported().get( is ); break; } + else if ( itemorblock instanceof ItemStack && Platform.isSameItem( (ItemStack) itemorblock, is ) ) + { + max = u.getSupported().get( is ); + break; + } } if ( max == null )