module Base
{
    /* BADLANDS cook lab: three floor props on sheet knx_cooklab_01 (tiledef 8470).
       Sheet order is facing-major, three pieces per facing:
           index = facing * 3 + piece      facing S=0 E=1 N=2 W=3
           piece 0 Glassware Rig, 1 Burner and Pot, 2 Jug Rack
       so the rig is 0/3/6/9, the burner 1/4/7/10, the jugs 2/5/8/11
       (read off knx_cooklab_01.tiles.txt: CustomName + Facing per index).

       The Glassware Rig is the station: CraftBench Recipes = KNXCookLab, and
       CookMethBatch (recipes_knxdrugs.txt) carries Tags = KNXCookLab, so a batch
       can only be cooked at a rig. Same binding vanilla uses for the grindstone
       (CraftBench Recipes = Grindstone / craftRecipe Tags = Grindstone).
       The burner and the jug rack are dressing.

       All three are tabletop art (drawn at counter height, like vanilla's microwave) and build
       onto a table or counter only: OnIsValid = KNXDrugsCookLab.OnIsValid, see
       lua/shared/KNXDrugs_CookLab.lua.

       Inputs are vanilla only, so the rig builds without BADLANDS Clutter.
       Jars and the pot are fluid containers in B42; flags[IsEmpty] is how vanilla
       stops a recipe eating a full one. Face blocks are long-form on purpose -- the
       one-line form has never been risked against the script parser. */

    entity KNX_CookLabRig
    {
        component UiConfig
        {
            xuiSkin = default,
            entityStyle = ES_KNX_CookLabRig,
            uiEnabled = true,
        }
        component CraftBench
        {
            Recipes = KNXCookLab,
        }
        component SpriteConfig
        {
            OnIsValid = KNXDrugsCookLab.OnIsValid,
            face S
            {
                layer
                {
                    row = knx_cooklab_01_0,
                }
            }
            face E
            {
                layer
                {
                    row = knx_cooklab_01_3,
                }
            }
            face N
            {
                layer
                {
                    row = knx_cooklab_01_6,
                }
            }
            face W
            {
                layer
                {
                    row = knx_cooklab_01_9,
                }
            }
        }
        component CraftRecipe
        {
            timedAction = BuildWoodenStructureSmall,
            time = 80,
            category = Furniture,
            Tags = Carpentry;Furniture,
            SkillRequired = Woodwork:1,
            xpAward = Woodwork:10,
            Tooltip = Tooltip_craft_KNX_CookLabRigDesc,
            inputs
            {
                item 1 tags[base:screwdriver] mode:keep flags[Prop1;MayDegradeVeryLight],
                item 2 [Base.MetalPipe],
                item 2 [Base.EmptyJar] flags[IsEmpty],
                item 1 [Base.RubberHose],
                item 4 [Base.Screws],
            }
        }
    }

    entity KNX_CookLabBurner
    {
        component UiConfig
        {
            xuiSkin = default,
            entityStyle = ES_KNX_CookLabBurner,
            uiEnabled = false,
        }
        component SpriteConfig
        {
            OnIsValid = KNXDrugsCookLab.OnIsValid,
            face S
            {
                layer
                {
                    row = knx_cooklab_01_1,
                }
            }
            face E
            {
                layer
                {
                    row = knx_cooklab_01_4,
                }
            }
            face N
            {
                layer
                {
                    row = knx_cooklab_01_7,
                }
            }
            face W
            {
                layer
                {
                    row = knx_cooklab_01_10,
                }
            }
        }
        component CraftRecipe
        {
            timedAction = BuildWoodenStructureSmall,
            time = 60,
            category = Furniture,
            Tags = Carpentry;Furniture,
            SkillRequired = Woodwork:1,
            xpAward = Woodwork:10,
            Tooltip = Tooltip_craft_KNX_CookLabBurnerDesc,
            inputs
            {
                item 1 tags[base:screwdriver] mode:keep flags[Prop1;MayDegradeVeryLight],
                item 1 [Base.Pot] flags[IsEmpty],
                item 2 [Base.ScrapMetal],
                item 4 [Base.Screws],
            }
        }
    }

    entity KNX_CookLabJugs
    {
        component UiConfig
        {
            xuiSkin = default,
            entityStyle = ES_KNX_CookLabJugs,
            uiEnabled = false,
        }
        component SpriteConfig
        {
            OnIsValid = KNXDrugsCookLab.OnIsValid,
            face S
            {
                layer
                {
                    row = knx_cooklab_01_2,
                }
            }
            face E
            {
                layer
                {
                    row = knx_cooklab_01_5,
                }
            }
            face N
            {
                layer
                {
                    row = knx_cooklab_01_8,
                }
            }
            face W
            {
                layer
                {
                    row = knx_cooklab_01_11,
                }
            }
        }
        component CraftRecipe
        {
            timedAction = BuildWoodenStructureSmall,
            time = 60,
            category = Furniture,
            Tags = Carpentry;Furniture,
            SkillRequired = Woodwork:1,
            xpAward = Woodwork:10,
            Tooltip = Tooltip_craft_KNX_CookLabJugsDesc,
            inputs
            {
                item 1 tags[base:hammer] mode:keep flags[Prop1;MayDegradeVeryLight],
                item 2 [Base.Plank],
                item 4 [Base.Nails],
                item 1 [Base.Funnel],
            }
        }
    }
}
