module ikag_mycology
{
    /* Five player actions: Mix, Prepare, Inoculate, Open, Harvest.
       Everything else in this system is waiting and risk. See
       rp/design/mycology-cultivation.md.

       v0.1 is the item chain only. Colonization timing and the
       contamination roll are server-side Lua and are NOT here yet -
       MonotubInoculated -> MonotubColonized is a placeholder craft so the
       loop is walkable end to end on the rig. */

    craftRecipe MixSubstrate
    {
        timedAction  = MixingBucket,
        Time         = 120,
        category     = Gardening,
        Tags         = InHandCraft,
        inputs
        {
            item 1 [ikag_mycology.SubstrateRaw],
            item 1 [*],
            -fluid 1.0 [Water],
        }
        outputs
        {
            item 1 ikag_mycology.SubstrateMixed,
        }
        xpAward = PlantScavenging:5,
    }

    craftRecipe PrepareSubstrate
    {
        timedAction  = Making_With_Kiln,
        Time         = 600,
        category     = Gardening,
        needTobeLearn = false,
        inputs
        {
            item 1 [ikag_mycology.SubstrateMixed],
        }
        outputs
        {
            item 1 ikag_mycology.SubstratePrepared,
        }
        xpAward = PlantScavenging:10,
    }

    craftRecipe MakeSporeSlurry
    {
        timedAction  = MixingBowl,
        Time         = 90,
        category     = Gardening,
        Tags         = InHandCraft,
        inputs
        {
            item 1 [ikag_mycology.SporePrint],
            item 1 [*],
            -fluid 0.3 [Water],
        }
        outputs
        {
            item 1 ikag_mycology.SporeSlurry,
        }
        xpAward = PlantScavenging:5,
    }

    craftRecipe LoadMonotub
    {
        timedAction  = MixingBucket,
        Time         = 120,
        category     = Gardening,
        inputs
        {
            item 1 [ikag_mycology.Monotub],
            item 1 [ikag_mycology.SubstratePrepared],
        }
        outputs
        {
            item 1 ikag_mycology.MonotubLoaded,
        }
    }

    craftRecipe InoculateMonotub
    {
        timedAction  = Making,
        Time         = 180,
        category     = Gardening,
        inputs
        {
            item 1 [ikag_mycology.MonotubLoaded],
            item 1 [ikag_mycology.SporeSlurry],
        }
        outputs
        {
            item 1 ikag_mycology.MonotubInoculated,
        }
        xpAward = PlantScavenging:15,
    }

    /* PLACEHOLDER - real colonization is a timed server-side check, not a
       craft. Here so the chain is walkable on the rig in v0.1. Remove when
       the Lua tick handler lands. */
    craftRecipe CheckColonization
    {
        timedAction  = Making,
        Time         = 60,
        category     = Gardening,
        inputs
        {
            item 1 [ikag_mycology.MonotubInoculated],
        }
        outputs
        {
            item 1 ikag_mycology.MonotubColonized,
        }
    }

    craftRecipe OpenMonotub
    {
        timedAction  = Making,
        Time         = 60,
        category     = Gardening,
        inputs
        {
            item 1 [ikag_mycology.MonotubColonized],
        }
        outputs
        {
            item 1 ikag_mycology.MonotubFruiting,
        }
        xpAward = PlantScavenging:10,
    }

    craftRecipe HarvestMonotub
    {
        timedAction  = Making,
        Time         = 120,
        category     = Gardening,
        inputs
        {
            item 1 [ikag_mycology.MonotubFruiting],
        }
        outputs
        {
            item 3 ikag_mycology.MushroomFresh,
            item 1 ikag_mycology.MonotubSpent,
        }
        xpAward = PlantScavenging:20,
    }

    craftRecipe DryMushrooms
    {
        timedAction  = Making,
        Time         = 300,
        category     = Gardening,
        inputs
        {
            item 3 [ikag_mycology.MushroomFresh],
        }
        outputs
        {
            item 3 ikag_mycology.MushroomDried,
        }
        xpAward = PlantScavenging:5,
    }

    craftRecipe EmptyContaminatedTub
    {
        timedAction  = EmptyBag,
        Time         = 90,
        category     = Gardening,
        inputs
        {
            item 1 [ikag_mycology.MonotubContaminated],
        }
        outputs
        {
            item 1 ikag_mycology.Monotub,
        }
    }

    craftRecipe EmptySpentTub
    {
        timedAction  = EmptyBag,
        Time         = 60,
        category     = Gardening,
        inputs
        {
            item 1 [ikag_mycology.MonotubSpent],
        }
        outputs
        {
            item 1 ikag_mycology.Monotub,
        }
    }

    /* ---- entry points ----
       Wild mushrooms come from pasture foraging after rain (see
       media/lua/shared/Foraging/ikag_MycologyForage.lua). Everything below
       turns that field find into a repeatable system. */

    craftRecipe MakeSporePrint
    {
        timedAction  = Making,
        Time         = 240,
        category     = Gardening,
        Tags         = InHandCraft,
        inputs
        {
            item 1 [ikag_mycology.MushroomFresh],
            item 1 [Base.SheetPaper2] mode:destroy,
        }
        outputs
        {
            item 1 ikag_mycology.SporePrint,
        }
        xpAward = PlantScavenging:10,
    }

    craftRecipe MakeMonotub
    {
        timedAction  = Making,
        Time         = 180,
        category     = Gardening,
        inputs
        {
            item 1 [Base.BucketEmpty],
            item 1 [Base.Sheet] mode:destroy,
            item 1 [Base.DuctTape] mode:destroy,
        }
        outputs
        {
            item 1 ikag_mycology.Monotub,
        }
    }

    craftRecipe MakeSubstrateRaw
    {
        timedAction  = Making,
        Time         = 120,
        category     = Gardening,
        Tags         = InHandCraft,
        inputs
        {
            item 2 [Base.Straw2],
            item 1 [Base.Dung_Cow],
        }
        outputs
        {
            item 1 ikag_mycology.SubstrateRaw,
        }
        xpAward = PlantScavenging:3,
    }
}
