Skip to content

Instantly share code, notes, and snippets.

@BlockAfterBlock
Created May 8, 2011 03:12
Show Gist options
  • Select an option

  • Save BlockAfterBlock/961062 to your computer and use it in GitHub Desktop.

Select an option

Save BlockAfterBlock/961062 to your computer and use it in GitHub Desktop.
package net.minecraft.src;
import java.io.PrintStream;
import java.util.*;
public class SewingCraftingManager
{
public static final SewingCraftingManager getInstance()
{
return instance;
}
private SewingCraftingManager()
{
recipes = new ArrayList();
addSewingRecipe(new ItemStack(mod_Carpets.WhiteCarpet, 4), new Object[] {"###",('#'),mod_Carpets.WhiteTextile});
addSewingRecipe(new ItemStack(mod_Carpets.BlackCarpet, 4), new Object[] {"###",('#'),mod_Carpets.BlackTextile});
addSewingRecipe(new ItemStack(mod_Carpets.BlueCarpet, 4), new Object[] {"###",('#'),mod_Carpets.BlueTextile});
addSewingRecipe(new ItemStack(mod_Carpets.BrownCarpet, 4), new Object[] {"###",('#'),mod_Carpets.BrownTextile});
addSewingRecipe(new ItemStack(mod_Carpets.GrayCarpet, 4), new Object[] {"###",('#'),mod_Carpets.GrayTextile});
addSewingRecipe(new ItemStack(mod_Carpets.OrangeCarpet, 4), new Object[] {"###",('#'),mod_Carpets.OrangeTextile});
addSewingRecipe(new ItemStack(mod_Carpets.PinkCarpet, 4), new Object[] {"###",('#'),mod_Carpets.PinkTextile});
addSewingRecipe(new ItemStack(mod_Carpets.PurpleCarpet, 4), new Object[] {"###",('#'),mod_Carpets.PurpleTextile});
addSewingRecipe(new ItemStack(mod_Carpets.RedCarpet, 4), new Object[] {"###",('#'),mod_Carpets.RedTextile});
addSewingRecipe(new ItemStack(mod_Carpets.YellowCarpet, 4), new Object[] {"###",('#'),mod_Carpets.YellowTextile});
addSewingRecipe(new ItemStack(mod_Carpets.CyanCarpet, 4), new Object[] {"###",('#'),mod_Carpets.CyanTextile});
addSewingRecipe(new ItemStack(mod_Carpets.DarkGreenCarpet, 4), new Object[] {"###",('#'),mod_Carpets.DarkGreenTextile});
addSewingRecipe(new ItemStack(mod_Carpets.LightBlueCarpet, 4), new Object[] {"###",('#'),mod_Carpets.LightBlueTextile});
addSewingRecipe(new ItemStack(mod_Carpets.LightGrayCarpet, 4), new Object[] {"###",('#'),mod_Carpets.LightGrayTextile});
addSewingRecipe(new ItemStack(mod_Carpets.LightGreenCarpet, 4), new Object[] {"###",('#'),mod_Carpets.LightGreenTextile});
addSewingRecipe(new ItemStack(mod_Carpets.MagentaCarpet, 4), new Object[] {"###",('#'),mod_Carpets.MagentaTextile});
System.out.println((new StringBuilder()).append(recipes.size()).append(" recipes").toString());
}
void addSewingRecipe(ItemStack itemstack, Object aobj[])
{
String s = "";
int i = 0;
int j = 0;
int k = 0;
if(aobj[i] instanceof String[])
{
String as[] = (String[])aobj[i++];
for(int l = 0; l < as.length; l++)
{
String s2 = as[l];
k++;
j = s2.length();
s = (new StringBuilder()).append(s).append(s2).toString();
}
} else
{
while(aobj[i] instanceof String)
{
String s1 = (String)aobj[i++];
k++;
j = s1.length();
s = (new StringBuilder()).append(s).append(s1).toString();
}
}
HashMap hashmap = new HashMap();
for(; i < aobj.length; i += 2)
{
Character character = (Character)aobj[i];
ItemStack itemstack1 = null;
if(aobj[i + 1] instanceof Item)
{
itemstack1 = new ItemStack((Item)aobj[i + 1]);
} else
if(aobj[i + 1] instanceof Block)
{
itemstack1 = new ItemStack((Block)aobj[i + 1], 1, -1);
} else
if(aobj[i + 1] instanceof ItemStack)
{
itemstack1 = (ItemStack)aobj[i + 1];
}
hashmap.put(character, itemstack1);
}
ItemStack aitemstack[] = new ItemStack[j * k];
for(int i1 = 0; i1 < j * k; i1++)
{
char c = s.charAt(i1);
if(hashmap.containsKey(Character.valueOf(c)))
{
aitemstack[i1] = ((ItemStack)hashmap.get(Character.valueOf(c))).copy();
} else
{
aitemstack[i1] = null;
}
}
recipes.add(new ShapedRecipes(j, k, aitemstack, itemstack));
}
public ItemStack findMatchingRecipe(InventoryCrafting inventorycrafting)
{
for(int i = 0; i < recipes.size(); i++)
{
IRecipe irecipe = (IRecipe)recipes.get(i);
if(irecipe.matches(inventorycrafting))
{
return irecipe.getCraftingResult(inventorycrafting);
}
}
return null;
}
public List func_25193_b()
{
return recipes;
}
private static final SewingCraftingManager instance = new SewingCraftingManager();
private List recipes;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment