Inventory Util Upgrades.
This commit is contained in:
@@ -13,6 +13,7 @@ import appeng.util.Platform;
|
|||||||
public class UpgradeInventory extends AppEngInternalInventory implements IAEAppEngInventory
|
public class UpgradeInventory extends AppEngInternalInventory implements IAEAppEngInventory
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private boolean cached = false;
|
||||||
private int FuzzyUpgrades = 0;
|
private int FuzzyUpgrades = 0;
|
||||||
private int SpeedUpgrades = 0;
|
private int SpeedUpgrades = 0;
|
||||||
private int RedstoneUpgrades = 0;
|
private int RedstoneUpgrades = 0;
|
||||||
@@ -32,6 +33,12 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setInventorySlotContents(int slot, ItemStack newItemStack)
|
||||||
|
{
|
||||||
|
super.setInventorySlotContents( slot, newItemStack );
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isItemValidForSlot(int i, ItemStack itemstack)
|
public boolean isItemValidForSlot(int i, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
@@ -51,6 +58,7 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE
|
|||||||
|
|
||||||
private void updateUpgradeInfo()
|
private void updateUpgradeInfo()
|
||||||
{
|
{
|
||||||
|
cached = true;
|
||||||
CapacityUpgrades = RedstoneUpgrades = SpeedUpgrades = FuzzyUpgrades = 0;
|
CapacityUpgrades = RedstoneUpgrades = SpeedUpgrades = FuzzyUpgrades = 0;
|
||||||
|
|
||||||
for (ItemStack is : this)
|
for (ItemStack is : this)
|
||||||
@@ -86,6 +94,9 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE
|
|||||||
|
|
||||||
public int getInstalledUpgrades(Upgrades u)
|
public int getInstalledUpgrades(Upgrades u)
|
||||||
{
|
{
|
||||||
|
if ( !cached )
|
||||||
|
updateUpgradeInfo();
|
||||||
|
|
||||||
switch (u)
|
switch (u)
|
||||||
{
|
{
|
||||||
case CAPACITY:
|
case CAPACITY:
|
||||||
@@ -104,8 +115,7 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE
|
|||||||
@Override
|
@Override
|
||||||
public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack)
|
public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack)
|
||||||
{
|
{
|
||||||
updateUpgradeInfo();
|
cached = false;
|
||||||
|
|
||||||
if ( parent != null && Platform.isServer() )
|
if ( parent != null && Platform.isServer() )
|
||||||
parent.onChangeInventory( inv, slot, mc, removedStack, newStack );
|
parent.onChangeInventory( inv, slot, mc, removedStack, newStack );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import appeng.api.AEApi;
|
|||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
import appeng.util.item.AEItemStack;
|
import appeng.util.item.AEItemStack;
|
||||||
|
import appeng.util.iterators.AEInvIterator;
|
||||||
import appeng.util.iterators.InvIterator;
|
import appeng.util.iterators.InvIterator;
|
||||||
|
|
||||||
public class AppEngInternalAEInventory implements IInventory, Iterable<ItemStack>
|
public class AppEngInternalAEInventory implements IInventory, Iterable<ItemStack>
|
||||||
@@ -237,4 +238,9 @@ public class AppEngInternalAEInventory implements IInventory, Iterable<ItemStack
|
|||||||
{
|
{
|
||||||
return new InvIterator( this );
|
return new InvIterator( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Iterator<IAEItemStack> aeiterator()
|
||||||
|
{
|
||||||
|
return new AEInvIterator( this );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package appeng.util.iterators;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
|
import appeng.tile.inventory.AppEngInternalAEInventory;
|
||||||
|
|
||||||
|
public class AEInvIterator implements Iterator<IAEItemStack>
|
||||||
|
{
|
||||||
|
|
||||||
|
final AppEngInternalAEInventory inv;
|
||||||
|
final int size;
|
||||||
|
|
||||||
|
int x = 0;
|
||||||
|
|
||||||
|
public AEInvIterator(AppEngInternalAEInventory i) {
|
||||||
|
inv = i;
|
||||||
|
size = inv.getSizeInventory();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext()
|
||||||
|
{
|
||||||
|
return x < size;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IAEItemStack next()
|
||||||
|
{
|
||||||
|
return inv.getAEStackInSlot( x++ );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove()
|
||||||
|
{
|
||||||
|
throw new RuntimeException( "no..." );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user