    001    package net.minecraft.src;
    002
    003    public class RecipesMapCloning implements IRecipe
    004    {
    005        /**
    006         * Used to check if a recipe matches current crafting inventory
    007         */
    008        public boolean matches(InventoryCrafting par1InventoryCrafting, World par2World)
    009        {
    010            int var3 = 0;
    011            ItemStack var4 = null;
    012
    013            for (int var5 = 0; var5 < par1InventoryCrafting.getSizeInventory(); ++var5)
    014            {
    015                ItemStack var6 = par1InventoryCrafting.getStackInSlot(var5);
    016
    017                if (var6 != null)
    018                {
    019                    if (var6.itemID == Item.map.shiftedIndex)
    020                    {
    021                        if (var4 != null)
    022                        {
    023                            return false;
    024                        }
    025
    026                        var4 = var6;
    027                    }
    028                    else
    029                    {
    030                        if (var6.itemID != Item.emptyMap.shiftedIndex)
    031                        {
    032                            return false;
    033                        }
    034
    035                        ++var3;
    036                    }
    037                }
    038            }
    039
    040            return var4 != null && var3 > 0;
    041        }
    042
    043        /**
    044         * Returns an Item that is the result of this recipe
    045         */
    046        public ItemStack getCraftingResult(InventoryCrafting par1InventoryCrafting)
    047        {
    048            int var2 = 0;
    049            ItemStack var3 = null;
    050
    051            for (int var4 = 0; var4 < par1InventoryCrafting.getSizeInventory(); ++var4)
    052            {
    053                ItemStack var5 = par1InventoryCrafting.getStackInSlot(var4);
    054
    055                if (var5 != null)
    056                {
    057                    if (var5.itemID == Item.map.shiftedIndex)
    058                    {
    059                        if (var3 != null)
    060                        {
    061                            return null;
    062                        }
    063
    064                        var3 = var5;
    065                    }
    066                    else
    067                    {
    068                        if (var5.itemID != Item.emptyMap.shiftedIndex)
    069                        {
    070                            return null;
    071                        }
    072
    073                        ++var2;
    074                    }
    075                }
    076            }
    077
    078            if (var3 != null && var2 >= 1)
    079            {
    080                return new ItemStack(Item.map, var2 + 1, var3.getItemDamage());
    081            }
    082            else
    083            {
    084                return null;
    085            }
    086        }
    087
    088        /**
    089         * Returns the size of the recipe area
    090         */
    091        public int getRecipeSize()
    092        {
    093            return 9;
    094        }
    095
    096        public ItemStack getRecipeOutput()
    097        {
    098            return null;
    099        }
    100    }