Pattern progress.
This commit is contained in:
@@ -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 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -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() );
|
||||||
|
|||||||
Reference in New Issue
Block a user