module BCGTools
{
    craftRecipe DuctTapeSpearBCG
    {
        time = 300,
        Tags = InHandCraft;Survivalist,
        category = Weaponry,
        NeedToBeLearn = false,
        timedAction = CraftKnifeSpear,
        xpAward = Maintenance:5,
        inputs
        {
            item 1 [BCGTools.SurvivalKnife;BCGTools.CheapSurvivalKnife;BCGTools.KukriMachete] mappers[BCGSpearMapper] flags[Prop1;IsHeadPart;InheritSharpness],
            item 1 [Base.LongStick;Base.Sapling] flags[Prop2;InheritCondition],
            item 2 [Base.DuctTape],
        }
        outputs
        {
            item 1 mapper:BCGSpearMapper,
        }
        itemMapper BCGSpearMapper
        {
            BCGTools.SpearSurvivalKnife = BCGTools.SurvivalKnife,
            BCGTools.SpearCheapSurvivalKnife = BCGTools.CheapSurvivalKnife,
            BCGTools.SpearKukriMachete = BCGTools.KukriMachete,
            default = BCGTools.SpearSurvivalKnife,
        }
    }

    craftRecipe ReclaimFromSpearBCG
    {
        time = 60,
        Tags = InHandCraft;Survivalist,
        category = Assembly,
        timedAction = CraftKnifeSpear,
        OnCreate = RecipeCodeOnCreate.dismantleSpear,
        inputs
        {
            item 1 [BCGTools.SpearSurvivalKnife;BCGTools.SpearCheapSurvivalKnife;BCGTools.SpearKukriMachete] mappers[BCGWeaponType] flags[InheritHeadCondition;Prop2;InheritSharpness;AllowDestroyedItem],
        }
        outputs
        {
            item 1 mapper:BCGWeaponType,
            item 1 Base.LongStick,
        }
        itemMapper BCGWeaponType
        {
            BCGTools.SurvivalKnife = BCGTools.SpearSurvivalKnife,
            BCGTools.CheapSurvivalKnife = BCGTools.SpearCheapSurvivalKnife,
            BCGTools.KukriMachete = BCGTools.SpearKukriMachete,
            default = BCGTools.SurvivalKnife,
        }
    }

    craftRecipe AssembleBladeBCG
    {
        time = 100,
        category = Assembly,
        Tags = AnySurfaceCraft,
        SkillRequired = Maintenance:1,
        timedAction = CraftWeapon1H,
        xpAward = Maintenance:1,
        inputs
        {
            item 1 tags[base:hammer;base:clubhammer;base:mallet] mode:keep flags[Prop1;MayDegradeLight],
            item 1 [BCGTools.SurvivalKnifeBlade;BCGTools.CheapSurvivalKnifeBlade] flags[Prop2;InheritCondition;InheritSharpness] mappers[BCGBladeMapper],
            item 1 [Base.SmallHandle],
        }
        outputs
        {
            item 1 mapper:BCGBladeMapper,
        }
        itemMapper BCGBladeMapper
        {
            BCGTools.SurvivalKnife = BCGTools.SurvivalKnifeBlade,
            BCGTools.CheapSurvivalKnife = BCGTools.CheapSurvivalKnifeBlade,
            default = BCGTools.SurvivalKnife,
        }
    }

    craftRecipe AssembleShortImplementBCG
    {
        time = 100,
        category = Assembly,
        Tags = AnySurfaceCraft,
        SkillRequired = Maintenance:1,
        timedAction = ChoppingBlock_Hammer,
        xpAward = Maintenance:1,
        inputs
        {
            item 1 tags[base:hammer;base:clubhammer;base:mallet] mode:keep flags[Prop1;MayDegradeLight],
            item 1 tags[base:sharpknife] mode:keep flags[SharpnessCheck;IsNotDull],
            item 1 [BCGTools.HandHatchetHead;BCGTools.SplittingAxeHead] flags[IsHeadPart;InheritSharpness] mappers[BCGHeadMapper],
            item 1 [Base.Handle] flags[Prop2;InheritCondition],
        }
        outputs
        {
            item 1 mapper:BCGHeadMapper,
        }
        itemMapper BCGHeadMapper
        {
            BCGTools.HandHatchet = BCGTools.HandHatchetHead,
            BCGTools.SplittingAxe = BCGTools.SplittingAxeHead,
            default = BCGTools.HandHatchet,
        }
    }

    craftRecipe MakeKnifeFromMacheteBladeBCG
    {
        time = 300,
        Tags = InHandCraft,
        category = Weaponry,
        timedAction = CraftWeapon1H,
        xpAward = Maintenance:30,
        SkillRequired = Maintenance:2,
        NeedToBeLearn = false,
        inputs
        {
            item 1 [BCGTools.RancherMacheteBlade_NoTang;BCGTools.KukriMacheteBlade_NoTang] flags[InheritCondition;InheritSharpness;Prop2],
            item 1 tags[base:simpleweaponbinding] flags[DontReplace],
            item 1 tags[base:whetstone;base:file;base:metalsaw;base:smallsaw] mode:keep flags[MayDegrade;Prop1],
        }
        outputs
        {
            item 1 Base.MacheteKnife,
        }
    }
}
