diff --git a/library/modules/Materials.cpp b/library/modules/Materials.cpp index 20b5a913c..e0337bf78 100644 --- a/library/modules/Materials.cpp +++ b/library/modules/Materials.cpp @@ -396,6 +396,11 @@ bool MaterialInfo::matches(const df::job_material_category &cat) using namespace df::enums::material_flags; TEST(plant, STRUCTURAL_PLANT_MAT); + TEST(plant, SEED_MAT); + TEST(plant, THREAD_PLANT); + TEST(plant, ALCOHOL_PLANT); + TEST(plant, POWDER_MISC_PLANT); + TEST(plant, LIQUID_MISC_PLANT); TEST(wood, WOOD); TEST(cloth, THREAD_PLANT); TEST(silk, SILK); diff --git a/plugins/lua/workflow.lua b/plugins/lua/workflow.lua index b7f6406a9..7f1d5a08d 100644 --- a/plugins/lua/workflow.lua +++ b/plugins/lua/workflow.lua @@ -203,12 +203,20 @@ for job,flag in pairs(plant_products) do local itag = 'idx_'..string.lower(flag) job_outputs[job] = function(callback, job) local mat_type, mat_index = -1, -1 + local seed_type, seed_index = -1, -1 local mat = dfhack.matinfo.decode(job.job_items[0]) if mat and mat.plant and mat.plant.flags[flag] then mat_type = mat.plant.material_defs[ttag] mat_index = mat.plant.material_defs[itag] + seed_type = mat.plant.material_defs['type_seed'] + seed_index = mat.plant.material_defs['idx_seed'] end - default_output(callback, job, mat_type, mat_index) + local mat_mask = { } + if flag ~= 'LEAVES' then + mat_mask.plant = true + end + default_output(callback, job, mat_type, mat_index, mat_mask) + callback{ item_type = df.item_type.SEEDS, mat_type = seed_type, mat_index = seed_index } end end