Getting the Equivalency Handler back online, finishing it up tonight

This commit is contained in:
pahimar 2012-10-17 16:01:43 -04:00
parent 95f5230d24
commit d0036f1d85
3 changed files with 109 additions and 27 deletions

View file

@ -7,16 +7,26 @@ import net.minecraft.src.ItemStack;
public class EquivalencyHandler {
public static ArrayList<ArrayList<ItemStack>> equivalencyList = new ArrayList<ArrayList<ItemStack>>();
private static final EquivalencyHandler instance = new EquivalencyHandler();
private static ArrayList<ArrayList<ItemStack>> equivalencyList = new ArrayList<ArrayList<ItemStack>>();
public static EquivalencyHandler instance() {
return instance;
}
public ArrayList<ArrayList<ItemStack>> getAllLists() {
return equivalencyList;
}
public static void addObjectToEquivalencyList(Object obj1, Object obj2) {
public void addObjects(Object obj1, Object obj2) {
ItemStack stack1 = GeneralHelper.convertObjectToItemStack(obj1);
ItemStack stack2 = GeneralHelper.convertObjectToItemStack(obj2);
ArrayList<ItemStack> currentList = new ArrayList<ItemStack>();
Integer stack1Index = getEquivalencyIndexForItem(stack1);
Integer stack2Index = getEquivalencyIndexForItem(stack2);
Integer stack1Index = getIndexInList(stack1);
Integer stack2Index = getIndexInList(stack2);
if ((stack1Index != null) && (stack2Index != null)) {
return;
@ -38,16 +48,16 @@ public class EquivalencyHandler {
}
}
public static void addObjectsToEquivalencyLists(Object... objList) {
public void addObjects(Object... objList) {
if (objList.length < 2)
return;
for (int i = 0; i < objList.length - 1; i++) {
addObjectToEquivalencyList(objList[i], objList[i + 1]);
addObjects(objList[i], objList[i + 1]);
}
}
public static Integer getEquivalencyIndexForItem(Object obj) {
public Integer getIndexInList(Object obj) {
ItemStack checkStack = GeneralHelper.convertObjectToItemStack(obj);
ArrayList<ItemStack> currentList;
int i = 0;
@ -64,8 +74,25 @@ public class EquivalencyHandler {
return null;
}
public Integer getIndexinList(int id, int meta) {
ArrayList<ItemStack> currentList;
int i = 0;
public static ArrayList<ItemStack> getEquivalencyListForItem(Object obj) {
while (i < equivalencyList.size()) {
currentList = equivalencyList.get(i);
for (ItemStack currentStack : currentList) {
if ((id == currentStack.itemID) && (meta == currentStack.getItemDamage())) {
return new Integer(i);
}
}
++i;
}
return null;
}
public ArrayList<ItemStack> getEquivalencyList(Object obj) {
ItemStack checkStack = GeneralHelper.convertObjectToItemStack(obj);
if (checkStack == null)
@ -81,8 +108,63 @@ public class EquivalencyHandler {
return null;
}
public ArrayList<ItemStack> getEquivalencyList(int id, int meta) {
for (ArrayList<ItemStack> list : equivalencyList) {
for (ItemStack currentStack : list) {
if ((id == currentStack.itemID) && (meta == currentStack.getItemDamage())) {
return list;
}
}
}
public static void debug() {
return null;
}
public ItemStack getNextInList(Object obj) {
ItemStack checkStack = GeneralHelper.convertObjectToItemStack(obj);
if (checkStack != null) {
return getNextInList(checkStack.itemID, checkStack.getItemDamage());
}
return null;
}
public ItemStack getNextInList(int id, int meta) {
ArrayList<ItemStack> list = getEquivalencyList(id, meta);
ItemStack currentStack;
ItemStack returnStack = null;
int i = 0;
if (list != null) {
while (i < list.size()) {
currentStack = list.get(i);
if ((id == currentStack.itemID) && (meta == currentStack.getItemDamage())) {
returnStack = list.get((i + 1) % list.size());
break;
}
++i;
}
}
return returnStack;
}
public ItemStack getPrevInList(Object obj) {
// TODO Finish
return null;
}
public ItemStack getPrevInList(int id, int meta) {
// TODO Finish
return null;
}
public void debug() {
int i = 0;
for (ArrayList list : equivalencyList) {
System.out.println("equivalencyList[" + i + "]: " + list.toString());

View file

@ -13,7 +13,7 @@ public class EMCRegistry {
private HashMap<Integer, HashMap<Integer, EMCEntry>> emcMap = new HashMap<Integer, HashMap<Integer, EMCEntry>>();
public EMCRegistry instance() {
public static EMCRegistry instance() {
return emcRegistry;
}

View file

@ -42,7 +42,7 @@ public class RecipesTransmutationStone {
}
if (Reference.DEBUG_MODE) {
EquivalencyHandler.debug();
EquivalencyHandler.instance().debug();
}
}
@ -110,7 +110,7 @@ public class RecipesTransmutationStone {
public static void initEquivalenceRecipes(ItemStack stone) {
int outputI;
for (ArrayList<ItemStack> itemStackList : EquivalencyHandler.equivalencyList) {
for (ArrayList<ItemStack> itemStackList : EquivalencyHandler.instance().getAllLists()) {
ItemStack[] currentList = new ItemStack[itemStackList.size()];
currentList = itemStackList.toArray(currentList);
@ -173,21 +173,21 @@ public class RecipesTransmutationStone {
}
protected static void initEquivalencyList() {
EquivalencyHandler.addObjectsToEquivalencyLists(Block.sand, Block.dirt, Block.cobblestone, Block.grass);
EquivalencyHandler.addObjectsToEquivalencyLists(Block.plantYellow, Block.plantRed);
EquivalencyHandler.addObjectsToEquivalencyLists(Block.mushroomRed, Block.mushroomBrown);
EquivalencyHandler.addObjectsToEquivalencyLists(Item.pumpkinSeeds, Item.melonSeeds);
EquivalencyHandler.addObjectsToEquivalencyLists(Block.pumpkin, Block.melon);
EquivalencyHandler.addObjectsToEquivalencyLists(new ItemStack(Item.paper, 3), new ItemStack(Item.reed, 3));
EquivalencyHandler.addObjectsToEquivalencyLists(new ItemStack(Item.flint, 2), new ItemStack(Block.gravel, 2), new ItemStack(Block.sandStone, 2, 0), new ItemStack(Block.sandStone, 2, 1), new ItemStack(Block.sandStone, 2, 2));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Block.planks, 4));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Block.wood, 4));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Block.sapling, 4));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Block.leaves, 4));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Block.tallGrass, 3));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Block.cloth, 16));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Block.stoneBrick, 4));
EquivalencyHandler.addObjectsToEquivalencyLists(RecipeHelper.getMetaCycle(Item.dyePowder, 16, 3, 4, 15));
EquivalencyHandler.instance().addObjects(Block.sand, Block.dirt, Block.cobblestone, Block.grass);
EquivalencyHandler.instance().addObjects(Block.plantYellow, Block.plantRed);
EquivalencyHandler.instance().addObjects(Block.mushroomRed, Block.mushroomBrown);
EquivalencyHandler.instance().addObjects(Item.pumpkinSeeds, Item.melonSeeds);
EquivalencyHandler.instance().addObjects(Block.pumpkin, Block.melon);
EquivalencyHandler.instance().addObjects(new ItemStack(Item.paper, 3), new ItemStack(Item.reed, 3));
EquivalencyHandler.instance().addObjects(new ItemStack(Item.flint, 2), new ItemStack(Block.gravel, 2), new ItemStack(Block.sandStone, 2, 0), new ItemStack(Block.sandStone, 2, 1), new ItemStack(Block.sandStone, 2, 2));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Block.planks, 4));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Block.wood, 4));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Block.sapling, 4));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Block.leaves, 4));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Block.tallGrass, 3));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Block.cloth, 16));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Block.stoneBrick, 4));
EquivalencyHandler.instance().addObjects(RecipeHelper.getMetaCycle(Item.dyePowder, 16, 3, 4, 15));
}
}