module Base
{
    /*****
	imports
	{
		Base,
	}	
    *****/

    
    /**********::----------:: ::-----------:: **************/
	/**********::-----:: Packaging ::-----:: **************/
	/**********::----------:: ::-----------:: **************/

    craftRecipe SapphCooking PackageCannedFood
    {
        timedAction = PackingBox,
        time            = 20,
        category = SapphCooking,
		CanWalk = true,
        Tags = InHandCraft;Cooking,
        inputs
        {
            item 6 [SapphCooking.CanofPowderedMilk;SapphCooking.CanofProteinPowder;SapphCooking.CannedBread;SapphCooking.CanofRefriedBeans;SapphCooking.CannedSausages;SapphCooking.PowderedEggs;SapphCooking.CannedBacon;SapphCooking.CanofBeets;SapphCooking.CanofKernelCorn] mode:destroy mappers[canType] flags[ItemCount],
        }
       outputs
        {
            item 1 mapper:canType,
        }
        itemMapper canType
        {
            SapphCooking.BoxedCanned_ProteinPowder = SapphCooking.CanofProteinPowder,
            SapphCooking.BoxedCanned_PowderedMilk = SapphCooking.CanofPowderedMilk,
            SapphCooking.BoxedCanned_Bread = SapphCooking.CannedBread,
            SapphCooking.BoxedCanned_RefriedBeans = SapphCooking.CanofRefriedBeans,
            SapphCooking.BoxedCanned_Sausages = SapphCooking.CannedSausages,
            SapphCooking.BoxedCanned_Eggs = SapphCooking.PowderedEggs,
            SapphCooking.BoxedCanned_Bacon = SapphCooking.CannedBacon,
            SapphCooking.BoxedCanned_Beets = SapphCooking.CanofBeets,
            SapphCooking.BoxedCanned_KernelCorn = SapphCooking.CanofKernelCorn,
            
        }
    }

    craftRecipe SapphCooking OpenBoxedCannedFood
    {
        timedAction = UnPackBox,
        time            = 20,
        category = SapphCooking,
		CanWalk = true,
        Tags = InHandCraft;Cooking,
        inputs
        {
            item 1 [SapphCooking.BoxedCanned_ProteinPowder;SapphCooking.BoxedCanned_PowderedMilk;SapphCooking.BoxedCanned_Bread;SapphCooking.BoxedCanned_RefriedBeans;SapphCooking.BoxedCanned_Sausages;SapphCooking.BoxedCanned_Eggs;SapphCooking.BoxedCanned_Bacon;SapphCooking.BoxedCanned_Beets;SapphCooking.BoxedCanned_KernelCorn] mode:destroy mappers[canType] flags[ItemCount],
        }
       outputs
        {
            item 6 mapper:canType,
        }
        itemMapper canType
        {
            SapphCooking.BoxedCanned_ProteinPowder_Open = SapphCooking.BoxedCanned_ProteinPowder,
            SapphCooking.BoxedCanned_PowderedMilk_Open = SapphCooking.BoxedCanned_PowderedMilk,
            SapphCooking.BoxedCanned_Bread_Open = SapphCooking.BoxedCanned_Bread,
            SapphCooking.BoxedCanned_RefriedBeans_Open = SapphCooking.BoxedCanned_RefriedBeans,
            SapphCooking.BoxedCanned_Sausages_Open = SapphCooking.BoxedCanned_Sausages,
            SapphCooking.BoxedCanned_Eggs_Open = SapphCooking.BoxedCanned_Eggs,
            SapphCooking.BoxedCanned_Bacon_Open = SapphCooking.BoxedCanned_Bacon,
            SapphCooking.BoxedCanned_Beets_Open = SapphCooking.BoxedCanned_Beets,
            SapphCooking.BoxedCanned_KernelCorn_Open = SapphCooking.BoxedCanned_KernelCorn,
        }
    }

    craftRecipe SapphCooking CloseBoxedCannedFood
    {
        timedAction = UnPackBox,
        time            = 20,
        category = SapphCooking,
		CanWalk = true,
        Tags = InHandCraft;Cooking,
        inputs
        {
            item 1 [SapphCooking.BoxedCanned_ProteinPowder_Open;SapphCooking.BoxedCanned_PowderedMilk_Open;SapphCooking.BoxedCanned_Bread_Open;SapphCooking.BoxedCanned_RefriedBeans_Open;SapphCooking.BoxedCanned_Sausages_Open;SapphCooking.BoxedCanned_Eggs_Open;SapphCooking.BoxedCanned_Bacon_Open;SapphCooking.BoxedCanned_Beets_Open;SapphCooking.BoxedCanned_KernelCorn_Open] mode:destroy mappers[canType] flags[ItemCount],
        }
       outputs
        {
            item 6 mapper:canType,
        }
        itemMapper canType
        {
            SapphCooking.BoxedCanned_ProteinPowder = SapphCooking.BoxedCanned_ProteinPowder_Open,
            SapphCooking.BoxedCanned_PowderedMilk = SapphCooking.BoxedCanned_PowderedMilk_Open,
            SapphCooking.BoxedCanned_Bread = SapphCooking.BoxedCanned_Bread_Open,
            SapphCooking.BoxedCanned_RefriedBeans = SapphCooking.BoxedCanned_RefriedBeans_Open,
            SapphCooking.BoxedCanned_Sausages = SapphCooking.BoxedCanned_Sausages_Open,
            SapphCooking.BoxedCanned_Eggs = SapphCooking.BoxedCanned_Eggs_Open,
            SapphCooking.BoxedCanned_Bacon = SapphCooking.BoxedCanned_Bacon_Open,
            SapphCooking.BoxedCanned_Beets = SapphCooking.BoxedCanned_Beets_Open,
            SapphCooking.BoxedCanned_KernelCorn = SapphCooking.BoxedCanned_KernelCorn_Open,
        }
    }

    craftRecipe SapphCooking RemoveFromBox
    {
        timedAction = UnPackBox,
        time            = 20,
        category = SapphCooking,
		CanWalk = true,
        Tags = InHandCraft;Cooking,
        inputs
        {
            item 1 [SapphCooking.BoxedCanned_ProteinPowder_Open;SapphCooking.BoxedCanned_PowderedMilk_Open;SapphCooking.BoxedCanned_Bread_Open;SapphCooking.BoxedCanned_RefriedBeans_Open;SapphCooking.BoxedCanned_Sausages_Open;SapphCooking.BoxedCanned_Eggs_Open;SapphCooking.BoxedCanned_Bacon_Open;SapphCooking.BoxedCanned_Beets_Open;SapphCooking.BoxedCanned_KernelCorn_Open] mode:destroy mappers[canType] flags[ItemCount],
        }
       outputs
        {
            item 6 mapper:canType,
        }
        itemMapper canType
        {
            SapphCooking.CanofProteinPowder = SapphCooking.BoxedCanned_ProteinPowder_Open,
            SapphCooking.CanofPowderedMilk = SapphCooking.BoxedCanned_PowderedMilk_Open,
            SapphCooking.CannedBread = SapphCooking.BoxedCanned_Bread_Open,
            SapphCooking.CanofRefriedBeans = SapphCooking.BoxedCanned_RefriedBeans_Open,
            SapphCooking.CannedSausages = SapphCooking.BoxedCanned_Sausages_Open,
            SapphCooking.CannedEggs = SapphCooking.BoxedCanned_Eggs_Open,
            SapphCooking.CannedBacon = SapphCooking.BoxedCanned_Bacon_Open,
            SapphCooking.CanofBeets = SapphCooking.BoxedCanned_Beets_Open,
            SapphCooking.CanofKernelCorn = SapphCooking.BoxedCanned_KernelCorn_Open,
        }
    }

    /**********::---------------------------:: ::---------------------------:: **************/
	/**********::--------------------:: Canned Food Recipes! ::--------------------:: **************/
	/**********::---------------------------:: ::---------------------------:: **************/
    
    craftRecipe SapphCooking OpenCannedFood
    {
        timedAction = OpenTinCan,
        time            = 70,
        tags = InHandCraft;CanBeDoneInDark,
		category = SapphCooking,
        inputs
        {
            item 1 tags[base:canopener] mode:keep flags[MayDegradeLight],
            item 1 [SapphCooking.CanofBeets;SapphCooking.CanofKernelCorn] mappers[canSorts] flags[Prop2;ItemCount],
        }
        outputs
        {
            item 1 mapper:canSorts,
        }
        itemMapper canSorts
        {
            SapphCooking.OpenCanofBeets = SapphCooking.CanofBeets,
            SapphCooking.OpenCanofKernelCorn = SapphCooking.CanofKernelCorn,
        }
    }

    craftRecipe SapphCooking Open Canned Bacon
    {
        timedAction = OpenTinCan,
        time            = 70,
        OnCreate = OpenCan,
        tags = InHandCraft;CanBeDoneInDark,
		category = SapphCooking,
        inputs
        {
            item 1 tags[base:canopener;base:sharpknife] mode:keep flags[MayDegradeLight],
            item 1 [SapphCooking.CannedBacon] mappers[canContents] flags[Prop2;ItemCount],
        }
        outputs
        {
            item 2 farming.Bacon,
            item 1 Base.TinCanEmpty,
        }
    }

    craftRecipe SapphCooking Open Canned Sausages
    {
        timedAction = OpenTinCan,
        time            = 70,
        OnCreate = OpenCan,
        tags = InHandCraft;CanBeDoneInDark,
		category = SapphCooking,
        inputs
        {
            item 1 tags[base:canopener;base:sharpknife] mode:keep flags[MayDegradeLight],
            item 1 [SapphCooking.CannedSausages] flags[Prop2;ItemCount],
        }
        outputs
        {
            item 1 Base.TinCanEmpty,
            item 2 Base.Sausage,
        }
    }

    craftRecipe SapphCooking Open Can of Refried Beans
    {
        timedAction = OpenTinCan,
        time            = 70,
        OnCreate = OpenCan,
        tags = InHandCraft;CanBeDoneInDark,
		category = SapphCooking,
        inputs
        {
            item 1 tags[base:canopener;base:sharpknife] mode:keep flags[MayDegradeLight],
            item 1 [SapphCooking.CanofRefriedBeans] flags[ItemCount],
        }
        outputs
        {
            item 1 Base.RefriedBeans,
            item 1 Base.TinCanEmpty,
        }
    }

    craftRecipe SapphCooking Open Canned Bread
    {
        timedAction = OpenTinCan,
        time            = 70,
        OnCreate = OpenCan,
        tags = InHandCraft;CanBeDoneInDark,
		category = SapphCooking,
        inputs
        {
            item 1 tags[base:canopener;base:sharpknife] mode:keep flags[MayDegradeLight],
            item 1 [SapphCooking.CannedBread] flags[Prop2;ItemCount],
        }
        outputs
        {
            item 1 Base.Bread,
            item 1 Base.TinCanEmpty,
        }
    }

    craftRecipe SapphCooking OpenCannedFoodWithKnifeOrSharpStoneFlake
	{
		Time = 80,
		timedAction = OpenTinCanWithKnife,
		OnCreate = OpenCan,
		ToolTip = Tooltip_Recipe_OpenCanWithKnife,
		Tags = InHandCraft;Cooking,
		category = SapphCooking,
		inputs
		{
			item 1 tags[base:sharpknife] mode:keep flags[MayDegrade;IsNotDull],
            item 1 [SapphCooking.CanofBeets;SapphCooking.CanofKernelCorn] mappers[canSorts] flags[Prop2;ItemCount],		
        }
		outputs
		{
			item 1 mapper:canSorts,
		}
		itemMapper canSorts
		{
			SapphCooking.OpenCanofBeets = SapphCooking.CanofBeets,
            SapphCooking.OpenCanofKernelCorn = SapphCooking.CanofKernelCorn,
		}
	}
}