@Override public boolean addRecipe(Recipe recipe) { // GameRegistry.addRecipe((IRecipe) recipe); if (recipe instanceof ShapedRecipe) { ShapedRecipe r = (ShapedRecipe) recipe; boolean useOreDict = false; // Map<Character,net.minecraft.item.ItemStack> nmsRecipe = Maps.newHashMap(); List<Object> objRecipe = new ArrayList<Object>(); objRecipe.addAll(Arrays.asList(r.getShape())); for (Character j : r.getIngredientMap().keySet()) { ItemStack x = r.getIngredientMap().get(j); net.minecraft.item.ItemStack nms = CraftItemStack.createNMSItemStack(x); if (OreDictionary.getOreID(nms) != -1) { useOreDict = true; } if (LiquidContainerRegistry.isContainer(nms)) { useOreDict = true; } objRecipe.add(j); objRecipe.add(nms); } if (useOreDict) { ShapedOreRecipe rec = new ShapedOreRecipe(CraftItemStack.createNMSItemStack(recipe.getResult()), objRecipe); GameRegistry.addRecipe(rec); } else { GameRegistry.addRecipe(CraftItemStack.createNMSItemStack(recipe.getResult()), objRecipe); } } else if (recipe instanceof ShapelessRecipe) { ShapelessRecipe r = (ShapelessRecipe) recipe; List<net.minecraft.item.ItemStack> items = new ArrayList<net.minecraft.item.ItemStack>(); boolean useOreDict = false; for (ItemStack i : r.getIngredientList()) { net.minecraft.item.ItemStack nms = CraftItemStack.createNMSItemStack(i); if (OreDictionary.getOreID(nms) != -1) { useOreDict = true; } if (LiquidContainerRegistry.isContainer(nms)) { useOreDict = true; } items.add(nms); } if (useOreDict) { // TODO: Check if the new Class is even required // ShapelessOreRecipe nmsRec = new ShapelessOreRecipe(CraftItemStack.createNMSItemStack(recipe.getResult()), items); } else { ShapelessRecipes nmsRec = new ShapelessRecipes(CraftItemStack.createNMSItemStack(recipe.getResult()), items); GameRegistry.addRecipe(nmsRec); } } return true; }
/** Takes an ItemStack of OreDictionary dye and returns the vanilla Dye Id for that color */ public static int getVanillaColorId(ItemStack mOre) { if (mOre == null) return -1; for (int i = 0; i < 16; i++) { if (OreDictionary.getOreID(new ItemStack(Item.dyePowder, 1, i)) == OreDictionary.getOreID(mOre)) { return i; } } return -1; }
@Override public void setInventorySlotContents(int slotId, ItemStack itemstack) { super.setInventorySlotContents(slotId, itemstack); if (TileAdvancedCraftingTable.this.getWorldObj() == null || !TileAdvancedCraftingTable.this.getWorldObj().isRemote) oreIDs[slotId] = itemstack == null ? -1 : OreDictionary.getOreID(itemstack); }
public static ItemStack getDustForOre(ItemStack item) { String oreName = OreDictionary.getOreName(OreDictionary.getOreID(item)); if (oreName.contains("ore")) { String lowercaseOre = oreName.toLowerCase(); boolean isAllowed = false; for (String str : AlchemicalWizardry.allowedCrushedOresArray) { String testStr = str.toLowerCase(); if (lowercaseOre.contains(testStr)) { isAllowed = true; break; } } if (!isAllowed) { return null; } String dustName = oreName.replace("ore", "dust"); ArrayList<ItemStack> items = OreDictionary.getOres(dustName); if (items != null && items.size() >= 1) { return (items.get(0).copy()); } } return null; }
public static List<ItemStack> getAllDyeStacks() { List<ItemStack> stacks = new ArrayList<ItemStack>(); for (int i = 0; i < ItemDye.dyeColors.length; i++) { stacks.addAll( OreDictionary.getOres(OreDictionary.getOreID(new ItemStack(Item.dyePowder, 1, i)))); } return stacks; }
boolean stackEqual(ItemStack toInsert, ItemStack existing) { if (toInsert == null || existing == null) { return false; } boolean matched = false; if (useOreDict) { int existingId = OreDictionary.getOreID(existing); matched = existingId != -1 && existingId == OreDictionary.getOreID(toInsert); } if (!matched) { matched = Item.getIdFromItem(toInsert.getItem()) == Item.getIdFromItem(existing.getItem()); if (matched && matchMeta) { matched = toInsert.getItemDamage() == existing.getItemDamage(); } if (matched && matchNBT) { matched = ItemStack.areItemStackTagsEqual(toInsert, existing); } } return matched; }
/** * Returns the bonus item produced from a smelting operation in the infernal furnace * * @param in The input of the smelting operation. e.g. new ItemStack(oreGold) * @return the The bonus item that can be produced */ public static ItemStack getSmeltingBonus(ItemStack in) { ItemStack out = smeltingBonus.get(Arrays.asList(Item.getIdFromItem(in.getItem()), in.getItemDamage())); if (out == null) { out = smeltingBonus.get( Arrays.asList(Item.getIdFromItem(in.getItem()), OreDictionary.WILDCARD_VALUE)); } if (out == null) { String od = OreDictionary.getOreName(OreDictionary.getOreID(in)); out = smeltingBonus.get(od); } return out; }
public static CentrifugeRecipe getRecipe(Object input) { if (input instanceof ItemStack) { int[] oreIDs = OreDictionary.getOreIDs((ItemStack) input); for (CentrifugeRecipe r : recipes) { int[] otherIDs = null; if (r.getInput() instanceof ItemStack) { otherIDs = OreDictionary.getOreIDs((ItemStack) r.getInput()); } else if (r.getInput() instanceof String) { otherIDs = new int[] {OreDictionary.getOreID((String) r.getInput())}; } if (Util.checkArrays(oreIDs, otherIDs) || (r.getInput() instanceof ItemStack && ((ItemStack) input).isItemEqual((ItemStack) r.getInput()))) { if (r.getOutput() != null) return r; } } } else if (input instanceof String) { int[] oreIDs = new int[] {OreDictionary.getOreID((String) input)}; for (CentrifugeRecipe r : recipes) { int[] otherIDs = null; if (r.getInput() instanceof ItemStack) { otherIDs = OreDictionary.getOreIDs((ItemStack) r.getInput()); } else if (r.getInput() instanceof String) { otherIDs = new int[] {OreDictionary.getOreID((String) r.getInput())}; } if (Util.checkArrays(oreIDs, otherIDs)) { if (r.getOutput() != null) return r; } } } return null; }
private boolean areItemStacksEqual(ItemStack stack0, ItemStack stack1, boolean fuzzy) { if (stack0 == null && stack1 != null) return false; if (stack0 != null && stack1 == null) return false; if (stack0 == null && stack1 == null) return true; boolean t1 = false; if (fuzzy) { t1 = true; int od = OreDictionary.getOreID(stack0); if (od != -1) { ItemStack[] ores = OreDictionary.getOres(od).toArray(new ItemStack[] {}); if (ThaumcraftApiHelper.containsMatch(false, new ItemStack[] {stack1}, ores)) return true; } } else t1 = ItemStack.areItemStackTagsEqual(stack0, stack1); return stack0.itemID != stack1.itemID ? false : (stack0.getItemDamage() != stack1.getItemDamage() ? false : (stack0.stackSize > stack0.getMaxStackSize() ? false : t1)); }
@Override public boolean isItemValidForSlot(int i, ItemStack itemstack) { if (i == 0) return CompatibilityMgr.gregtechLoaded ? OreDictionary.getOreName(OreDictionary.getOreID(itemstack)).equals("lenseRuby") : Item.getItemFromBlock(Blocks.glass_pane) == itemstack.getItem() ? true : false; ForgeDirection front = RotatableBlock.getFront(this.getBlockMetadata()); for (ForgeDirection f : VALID_INVENTORY_DIRECTIONS) { if (f == front) continue; TileEntity e = this.worldObj.getTileEntity( this.xCoord + f.offsetX, this.yCoord + f.offsetY, this.zCoord + f.offsetZ); // TODO: may cause inf loop if (e != null && e instanceof IInventory) if (i < ((IInventory) e).getSizeInventory()) return ((IInventory) e).isItemValidForSlot(i, itemstack); else i -= ((IInventory) e).getSizeInventory(); } return false; }
public static void addOreDictionaryRecipes() { int oreId = OreDictionary.getOreID("ingotCopper"); ArrayList<ItemStack> ingots = OreDictionary.getOres(oreId); if (!ingots.isEmpty()) { FurnaceRecipes.smelting() .addSmelting( ModObject.itemPowderIngot.actualId, PowderIngot.POWDER_COPPER.ordinal(), ingots.get(0), 0); } oreId = OreDictionary.getOreID("ingotTin"); ingots = OreDictionary.getOres(oreId); if (!ingots.isEmpty()) { FurnaceRecipes.smelting() .addSmelting( ModObject.itemPowderIngot.actualId, PowderIngot.POWDER_TIN.ordinal(), ingots.get(0), 0); } ItemStack capacitor = new ItemStack(itemBasicCapacitor.actualId, 1, 0); ArrayList<ItemStack> copperIngots = OreDictionary.getOres("ingotCopper"); Item gold; if (Config.useHardRecipes) { gold = Item.ingotGold; } else { gold = Item.goldNugget; } if (copperIngots != null && !copperIngots.isEmpty()) { GameRegistry.addRecipe( new ShapedOreRecipe( capacitor, " gr", "gcg", "rg ", 'r', Item.redstone, 'g', gold, 'c', "ingotCopper")); } else { GameRegistry.addShapedRecipe( capacitor, " gr", "gig", "rg ", 'r', Item.redstone, 'g', gold, 'i', Item.ingotIron); } int dustCoal = OreDictionary.getOreID("dustCoal"); ItemStack activatedCapacitor = new ItemStack(itemBasicCapacitor.actualId, 1, 1); ItemStack electricalSteel = new ItemStack(ModObject.itemAlloy.actualId, 1, Alloy.ELECTRICAL_STEEL.ordinal()); if (Config.useHardRecipes) { GameRegistry.addRecipe( new ShapedOreRecipe( activatedCapacitor, "eee", "cCc", "eee", 'e', electricalSteel, 'c', capacitor, 'C', "dustCoal")); } else { GameRegistry.addRecipe( new ShapedOreRecipe( activatedCapacitor, " e ", "cCc", " e ", 'e', electricalSteel, 'c', capacitor, 'C', "dustCoal")); } }
public MCOreDictEntry(String id) { this.id = OreDictionary.getOreID(id); }
public int getOreID() { return OreDictionary.getOreID(oreName); }
public OreStack(ItemStack itemStack) { this(OreDictionary.getOreID(itemStack), itemStack.stackSize); }
static { colorToOre[0] = OreDictionary.getOreID("dyeBlack"); colorToOre[1] = OreDictionary.getOreID("dyeRed"); colorToOre[2] = OreDictionary.getOreID("dyeGreen"); colorToOre[3] = OreDictionary.getOreID("dyeBrown"); colorToOre[4] = OreDictionary.getOreID("dyeBlue"); colorToOre[5] = OreDictionary.getOreID("dyePurple"); colorToOre[6] = OreDictionary.getOreID("dyeCyan"); colorToOre[7] = OreDictionary.getOreID("dyeLightGray"); colorToOre[8] = OreDictionary.getOreID("dyeGray"); colorToOre[9] = OreDictionary.getOreID("dyePink"); colorToOre[10] = OreDictionary.getOreID("dyeLime"); colorToOre[11] = OreDictionary.getOreID("dyeYellow"); colorToOre[12] = OreDictionary.getOreID("dyeLightBlue"); colorToOre[13] = OreDictionary.getOreID("dyeMagenta"); colorToOre[14] = OreDictionary.getOreID("dyeOrange"); colorToOre[15] = OreDictionary.getOreID("dyeWhite"); }
public static boolean stackMatchesOre(ItemStack stack, String name) { int id = OreDictionary.getOreID(stack); return id == OreDictionary.getOreID(name); }
public static boolean testOreBlock(String testOre, BlockPos testPos, IBlockAccess worldObj) { return testOreBlock(OreDictionary.getOreID(testOre), testPos, worldObj); }
public static boolean testOre(String testOre, ItemStack testItem) { return testOre(OreDictionary.getOreID(testOre), testItem); }