Made a crate crafting handler, should prevent item loss when upgrading crates
This commit is contained in:
parent
7918802c66
commit
0a534f2eae
2 changed files with 42 additions and 0 deletions
|
@ -13,6 +13,7 @@ import resonant.lib.prefab.item.ItemBlockMetadata;
|
||||||
import resonant.lib.recipe.UniversalRecipe;
|
import resonant.lib.recipe.UniversalRecipe;
|
||||||
import resonantinduction.archaic.blocks.TileTurntable;
|
import resonantinduction.archaic.blocks.TileTurntable;
|
||||||
import resonantinduction.archaic.crate.BlockCrate;
|
import resonantinduction.archaic.crate.BlockCrate;
|
||||||
|
import resonantinduction.archaic.crate.CrateCraftingHandler;
|
||||||
import resonantinduction.archaic.crate.ItemBlockCrate;
|
import resonantinduction.archaic.crate.ItemBlockCrate;
|
||||||
import resonantinduction.archaic.crate.TileCrate;
|
import resonantinduction.archaic.crate.TileCrate;
|
||||||
import resonantinduction.archaic.engineering.ItemHammer;
|
import resonantinduction.archaic.engineering.ItemHammer;
|
||||||
|
@ -166,6 +167,8 @@ public class Archaic
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemHandCrank, "S ", "SSS", " S", 'S', "stickWood"));
|
GameRegistry.addRecipe(new ShapedOreRecipe(itemHandCrank, "S ", "SSS", " S", 'S', "stickWood"));
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemImprint, "PPP", "PIP", "PPP", 'P', Item.paper, 'I', new ItemStack(Item.dyePowder, 0)));
|
GameRegistry.addRecipe(new ShapedOreRecipe(itemImprint, "PPP", "PIP", "PPP", 'P', Item.paper, 'I', new ItemStack(Item.dyePowder, 0)));
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemHammer, "CC ", "CS ", " S", 'C', "cobblestone", 'S', "stickWood"));
|
GameRegistry.addRecipe(new ShapedOreRecipe(itemHammer, "CC ", "CS ", " S", 'C', "cobblestone", 'S', "stickWood"));
|
||||||
|
|
||||||
|
GameRegistry.registerCraftingHandler(new CrateCraftingHandler());
|
||||||
proxy.postInit();
|
proxy.postInit();
|
||||||
modproxies.postInit();
|
modproxies.postInit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package resonantinduction.archaic.crate;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import resonantinduction.archaic.Archaic;
|
||||||
|
import cpw.mods.fml.common.ICraftingHandler;
|
||||||
|
|
||||||
|
/** Crafting handler for crates
|
||||||
|
*
|
||||||
|
* @author Darkguardsman */
|
||||||
|
public class CrateCraftingHandler implements ICraftingHandler
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void onCrafting(EntityPlayer player, ItemStack item, IInventory craftMatrix)
|
||||||
|
{
|
||||||
|
if (item != null && item.itemID == Archaic.blockCrate.blockID)
|
||||||
|
{
|
||||||
|
ItemStack centerStack = craftMatrix.getStackInSlot(4);
|
||||||
|
if (centerStack != null && centerStack.itemID == Archaic.blockCrate.blockID)
|
||||||
|
{
|
||||||
|
ItemStack containedStack = ItemBlockCrate.getContainingItemStack(centerStack);
|
||||||
|
if (centerStack != null)
|
||||||
|
{
|
||||||
|
ItemBlockCrate.setContainingItemStack(item, containedStack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSmelting(EntityPlayer player, ItemStack item)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue