MCPcopy Create free account
hub / github.com/DFHack/dfhack / guess_job_material

Function guess_job_material

plugins/workflow.cpp:865–904  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

863}
864
865static void guess_job_material(df::job *job, MaterialInfo &mat, df::dfhack_material_category &mat_mask)
866{
867 using namespace df::enums::job_type;
868
869 if (job->job_type == PrepareMeal)
870 mat.decode(-1);
871 else
872 mat.decode(job);
873
874 mat_mask.whole = job->material_category.whole;
875
876 // Material from the job enum
877 const char *job_material = ENUM_ATTR(job_type, material, job->job_type);
878 if (job_material)
879 {
880 MaterialInfo info;
881 if (info.findBuiltin(job_material))
882 mat = info;
883 else
884 parseJobMaterialCategory(&mat_mask, job_material);
885 }
886
887 // Material from the job reagent
888 if (!mat.isValid() && !job->job_items.elements.empty() &&
889 (job->job_items.elements.size() == 1 ||
890 job->job_items.elements[0]->item_type == item_type::PLANT))
891 {
892 mat.decode(job->job_items.elements[0]);
893
894 switch (job->job_items.elements[0]->item_type)
895 {
896 case item_type::WOOD:
897 mat_mask.bits.wood = mat_mask.bits.wood2 = true;
898 break;
899
900 default:
901 break;
902 }
903 }
904}
905
906static int cbEnumJobOutputs(lua_State *L)
907{

Callers 1

shortJobDescriptionFunction · 0.85

Calls 5

findBuiltinMethod · 0.80
decodeMethod · 0.45
isValidMethod · 0.45
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected