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