#pragma once #include "modules/Persistence.h" #include "df/building.h" #include "df/job_item.h" #include "df/job_item_vector_id.h" #include typedef std::deque> Bucket; typedef std::map> Tasks; extern const std::string BLD_CONFIG_KEY; enum ConfigValues { CONFIG_BLOCKS = 1, CONFIG_BOULDERS = 2, CONFIG_LOGS = 3, CONFIG_BARS = 4, }; enum BuildingConfigValues { BLD_CONFIG_ID = 0, BLD_CONFIG_HEAT = 1, }; enum HeatSafety { HEAT_SAFETY_ANY = 0, HEAT_SAFETY_FIRE = 1, HEAT_SAFETY_MAGMA = 2, }; int get_config_val(DFHack::PersistentDataItem &c, int index); bool get_config_bool(DFHack::PersistentDataItem &c, int index); void set_config_val(DFHack::PersistentDataItem &c, int index, int value); void set_config_bool(DFHack::PersistentDataItem &c, int index, bool value); std::vector getVectorIds(DFHack::color_ostream &out, df::job_item *job_item); bool itemPassesScreen(df::item * item); bool matchesFilters(df::item * item, df::job_item * job_item, HeatSafety heat); bool isJobReady(DFHack::color_ostream &out, const std::vector &jitems); void finalizeBuilding(DFHack::color_ostream &out, df::building *bld);