Pattern progress.

This commit is contained in:
AlgorithmX2
2014-06-08 11:25:46 -05:00
parent 87bd8f3c22
commit 44986692ef
2 changed files with 32 additions and 2 deletions
+31 -1
View File
@@ -1,6 +1,7 @@
package appeng.helpers; package appeng.helpers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
@@ -16,9 +17,10 @@ import appeng.api.AEApi;
import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.networking.crafting.ICraftingPatternDetails;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.container.ContainerNull; import appeng.container.ContainerNull;
import appeng.util.ItemSorters;
import appeng.util.Platform; import appeng.util.Platform;
public class PatternHelper implements ICraftingPatternDetails public class PatternHelper implements ICraftingPatternDetails, Comparable<PatternHelper>
{ {
final ItemStack patternItem; final ItemStack patternItem;
@@ -29,10 +31,12 @@ public class PatternHelper implements ICraftingPatternDetails
final ItemStack correctOutput; final ItemStack correctOutput;
final IRecipe standardRecipe; final IRecipe standardRecipe;
final IAEItemStack condencedInputs[];
final IAEItemStack inputs[]; final IAEItemStack inputs[];
final IAEItemStack outputs[]; final IAEItemStack outputs[];
final boolean isCrafting; final boolean isCrafting;
public int priority = 0;
class TestLookup class TestLookup
{ {
@@ -153,6 +157,21 @@ public class PatternHelper implements ICraftingPatternDetails
outputs = out.toArray( new IAEItemStack[out.size()] ); outputs = out.toArray( new IAEItemStack[out.size()] );
inputs = in.toArray( new IAEItemStack[in.size()] ); inputs = in.toArray( new IAEItemStack[in.size()] );
HashMap<IAEItemStack, IAEItemStack> o = new HashMap<IAEItemStack, IAEItemStack>();
for (IAEItemStack io : inputs)
{
IAEItemStack g = o.get( io );
if ( g == null )
o.put( io, io.copy() );
else
g.add( io );
}
condencedInputs = new IAEItemStack[o.size()];
int offset = 0;
for (IAEItemStack io : o.values())
condencedInputs[offset++] = io;
} }
public boolean isValidItemForSlot(int slotIndex, ItemStack i, World w) public boolean isValidItemForSlot(int slotIndex, ItemStack i, World w)
@@ -257,4 +276,15 @@ public class PatternHelper implements ICraftingPatternDetails
return patternItem; return patternItem;
} }
@Override
public IAEItemStack[] getCondencedInputs()
{
return condencedInputs;
}
@Override
public int compareTo(PatternHelper o)
{
return ItemSorters.compareInt( o.priority, priority );
}
} }
+1 -1
View File
@@ -156,7 +156,7 @@ public class CraftingCache implements IGridCache, ICraftingProviderHelper, ICell
Set<ICraftingPatternDetails> methods = craftableItems.get( out ); Set<ICraftingPatternDetails> methods = craftableItems.get( out );
if ( methods == null ) if ( methods == null )
methods = craftableItems.put( out, new TreeSet() ); craftableItems.put( out, methods = new TreeSet() );
methods.add( details ); methods.add( details );
sg.postAlterationOfStoredItems( StorageChannel.ITEMS, out, new BaseActionSource() ); sg.postAlterationOfStoredItems( StorageChannel.ITEMS, out, new BaseActionSource() );