Rework AEItemStack (#3091)

* Use itemstack as itemdef
* HIGH_TAG/LOW_TAG should be compared both directions
* Remove getTagCompound
* Make Itemlist implementation independent
* Cache item id for performance reasons
* Add preconditions to saveguard against external meddling
* Chache itemDamage
* Remove IAEStackSearchKey for now, rename getDisplayStack
This commit is contained in:
fscan
2017-09-30 17:18:30 +02:00
committed by yueh
parent 2ed7a5598a
commit 1e15b23506
75 changed files with 559 additions and 1512 deletions
@@ -190,7 +190,7 @@ public class AdaptorList extends InventoryAdaptor
for( final ItemStack is : this.i )
{
if( Platform.itemComparisons().isEqualItem( is, left ) )
if( ItemStack.areItemsEqual( is, left ) )
{
is.grow( left.getCount() );
return ItemStack.EMPTY;
@@ -99,7 +99,7 @@ public class IMEAdaptor extends InventoryAdaptor
if( out != null )
{
return out.getItemStack();
return out.createItemStack();
}
return ItemStack.EMPTY;
@@ -139,7 +139,7 @@ public class IMEAdaptor extends InventoryAdaptor
out = this.target.extractItems( req, type, this.src );
if( out != null )
{
return out.getItemStack();
return out.createItemStack();
}
}
}
@@ -166,7 +166,7 @@ public class IMEAdaptor extends InventoryAdaptor
final IAEItemStack out = this.target.injectItems( in, Actionable.MODULATE, this.src );
if( out != null )
{
return out.getItemStack();
return out.createItemStack();
}
}
return ItemStack.EMPTY;
@@ -181,7 +181,7 @@ public class IMEAdaptor extends InventoryAdaptor
final IAEItemStack out = this.target.injectItems( in, Actionable.SIMULATE, this.src );
if( out != null )
{
return out.getItemStack();
return out.createItemStack();
}
}
return ItemStack.EMPTY;
+1 -1
View File
@@ -37,7 +37,7 @@ public class ItemSlot
public ItemStack getItemStack()
{
return this.itemStack
.isEmpty() ? ( this.aeItemStack == null ? ItemStack.EMPTY : ( this.itemStack = this.aeItemStack.getItemStack() ) ) : this.itemStack;
.isEmpty() ? ( this.aeItemStack == null ? ItemStack.EMPTY : ( this.itemStack = this.aeItemStack.createItemStack() ) ) : this.itemStack;
}
public void setItemStack( final ItemStack is )