#include "material.hpp"
std::unordered_set<std::string> Material::accepted_tag_names=
  {"STOCKPILE_THREAD_METAL","DEEP_SPECIAL","WAFERS","ITEMS_SOFT","SOLID_DENSITY","LIQUID_DENSITY","ITEMS_SCALED","BENDING_YIELD","BOILING_POINT","IMPACT_FRACTURE","ITEMS_HARD","BUILD_COLOR","TORSION_STRAIN_AT_YIELD","ITEMS_BARRED","USE_MATERIAL_TEMPLATE","ITEMS_WEAPON","STATE_NAME","ITEMS_DIGGER","ITEMS_AMMO","ITEMS_WEAPON_RANGED","ITEMS_ANVIL","MELTING_POINT","STATE_NAME_ADJ","DISPLAY_COLOR","SPEC_HEAT","MATERIAL_VALUE","SHEAR_YIELD","MAX_EDGE","SHEAR_STRAIN_AT_YIELD","TENSILE_STRAIN_AT_YIELD","IMPACT_YIELD","ITEMS_METAL","IMPACT_STRAIN_AT_YIELD","COMPRESSIVE_YIELD","BENDING_FRACTURE","COMPRESSIVE_FRACTURE","COMPRESSIVE_STRAIN_AT_YIELD","ITEMS_ARMOR","TENSILE_YIELD","TENSILE_FRACTURE","TORSION_YIELD","MOLAR_MASS","TORSION_FRACTURE","SHEAR_FRACTURE","BENDING_STRAIN_AT_YIELD","STATE_COLOR","BENDING_ELASTICITY","STATE_ADJ""DISPLAY_UNGLAZED","BLOCK_NAME","NO_STONE_STOCKPILE","IS_STONE","TILE","STOCKPILE_THREAD_METAL","DEEP_SPECIAL","WAFERS","ITEMS_SOFT","SOLID_DENSITY","LIQUID_DENSITY","ITEMS_SCALED","BENDING_YIELD","ABSORPTION","BOILING_POINT","IMPACT_FRACTURE","ITEMS_HARD","BUILD_COLOR","TORSION_STRAIN_AT_YIELD","ITEMS_BARRED","USE_MATERIAL_TEMPLATE","ITEMS_WEAPON","OBJECT","HARDENS_WITH_WATER","STATE_NAME","ITEMS_DIGGER","ITEMS_AMMO","ITEMS_WEAPON_RANGED","INORGANIC","ITEMS_ANVIL","MELTING_POINT","STATE_NAME_ADJ","DISPLAY_COLOR","SPEC_HEAT","MATERIAL_VALUE","SHEAR_YIELD","MAX_EDGE","SHEAR_STRAIN_AT_YIELD","TENSILE_STRAIN_AT_YIELD","IMPACT_YIELD","ITEMS_METAL","IMPACT_STRAIN_AT_YIELD","COMPRESSIVE_YIELD","BENDING_FRACTURE","COMPRESSIVE_FRACTURE","COMPRESSIVE_STRAIN_AT_YIELD","ITEMS_ARMOR","TENSILE_YIELD","TENSILE_FRACTURE","TORSION_YIELD","MOLAR_MASS","TORSION_FRACTURE","SHEAR_FRACTURE","BENDING_STRAIN_AT_YIELD","STATE_COLOR","BENDING_ELASTICITY","STATE_ADJ""IGNITE_POINT","ENVIRONMENT_SPEC","IS_GEM","DISPLAY_UNGLAZED","BLOCK_NAME","NO_STONE_STOCKPILE","IS_STONE","TILE","STOCKPILE_THREAD_METAL","DEEP_SPECIAL","WAFERS","ITEMS_SOFT","BASIC_COLOR","SOLID_DENSITY","ENVIRONMENT","LIQUID_DENSITY","ITEMS_SCALED","BENDING_YIELD","ABSORPTION","BOILING_POINT","IMPACT_FRACTURE","ITEMS_HARD","BUILD_COLOR","TORSION_STRAIN_AT_YIELD","ITEMS_BARRED","USE_MATERIAL_TEMPLATE","ITEMS_WEAPON","OBJECT","HARDENS_WITH_WATER","STATE_NAME","ITEMS_DIGGER","ITEMS_AMMO","ITEMS_WEAPON_RANGED","INORGANIC","ITEMS_ANVIL","MELTING_POINT","STATE_NAME_ADJ","DISPLAY_COLOR","SPEC_HEAT","MATERIAL_VALUE","SHEAR_YIELD","MAX_EDGE","SHEAR_STRAIN_AT_YIELD","TENSILE_STRAIN_AT_YIELD","IMPACT_YIELD","ITEMS_METAL","IMPACT_STRAIN_AT_YIELD","COMPRESSIVE_YIELD","BENDING_FRACTURE","COMPRESSIVE_FRACTURE","COMPRESSIVE_STRAIN_AT_YIELD","CRYSTAL_GLASSABLE","ITEMS_ARMOR","TENSILE_YIELD","TENSILE_FRACTURE","TORSION_YIELD","MOLAR_MASS","TORSION_FRACTURE","SHEAR_FRACTURE","BENDING_STRAIN_AT_YIELD","STATE_COLOR","BENDING_ELASTICITY","STATE_ADJ""METAMORPHIC","IGNEOUS_INTRUSIVE","SEDIMENTARY","SEDIMENTARY_OCEAN_DEEP","IGNITE_POINT","ENVIRONMENT_SPEC","IS_GEM","DISPLAY_UNGLAZED","BLOCK_NAME","NO_STONE_STOCKPILE","IS_STONE","TILE","STOCKPILE_THREAD_METAL","DEEP_SPECIAL","WAFERS","AQUIFER","ITEMS_SOFT","BASIC_COLOR","SOLID_DENSITY","ENVIRONMENT","LIQUID_DENSITY","ITEMS_SCALED","BENDING_YIELD","ABSORPTION","BOILING_POINT","IMPACT_FRACTURE","ITEMS_HARD","BUILD_COLOR","TORSION_STRAIN_AT_YIELD","ITEMS_BARRED","USE_MATERIAL_TEMPLATE","ITEMS_WEAPON","OBJECT","HARDENS_WITH_WATER","STATE_NAME","LAVA","ITEMS_DIGGER","ITEMS_AMMO","ITEMS_WEAPON_RANGED","INORGANIC","ITEMS_ANVIL","MELTING_POINT","STATE_NAME_ADJ","DISPLAY_COLOR","SPEC_HEAT","MATERIAL_VALUE","SEDIMENTARY_OCEAN_SHALLOW","SHEAR_YIELD","MAX_EDGE","SHEAR_STRAIN_AT_YIELD","TENSILE_STRAIN_AT_YIELD","IMPACT_YIELD","ITEMS_METAL","IMPACT_STRAIN_AT_YIELD","COMPRESSIVE_YIELD","BENDING_FRACTURE","COMPRESSIVE_FRACTURE","COMPRESSIVE_STRAIN_AT_YIELD","CRYSTAL_GLASSABLE","ITEMS_ARMOR","TENSILE_YIELD","REACTION_CLASS","TENSILE_FRACTURE","TORSION_YIELD","MOLAR_MASS","TORSION_FRACTURE","SHEAR_FRACTURE","BENDING_STRAIN_AT_YIELD","STATE_COLOR","BENDING_ELASTICITY","IGNEOUS_EXTRUSIVE","STATE_ADJ""MATERIAL_REACTION_PRODUCT","STONE_NAME","METAMORPHIC","IGNEOUS_INTRUSIVE","SEDIMENTARY","SEDIMENTARY_OCEAN_DEEP","IGNITE_POINT","ENVIRONMENT_SPEC","IS_GEM","DISPLAY_UNGLAZED","BLOCK_NAME","NO_STONE_STOCKPILE","IS_STONE","TILE","STOCKPILE_THREAD_METAL","DEEP_SPECIAL","WAFERS","AQUIFER","ITEMS_SOFT","BASIC_COLOR","SOLID_DENSITY","ENVIRONMENT","LIQUID_DENSITY","ITEMS_SCALED","BENDING_YIELD","ABSORPTION","BOILING_POINT","IMPACT_FRACTURE","ITEMS_HARD","BUILD_COLOR","TORSION_STRAIN_AT_YIELD","ITEM_SYMBOL","ITEMS_BARRED","USE_MATERIAL_TEMPLATE","ITEMS_WEAPON","UNDIGGABLE","OBJECT","HARDENS_WITH_WATER","STATE_NAME","DEEP_SURFACE","LAVA","ITEMS_DIGGER","ITEMS_AMMO","ITEMS_WEAPON_RANGED","INORGANIC","ITEMS_ANVIL","MELTING_POINT","STATE_NAME_ADJ","DISPLAY_COLOR","SPEC_HEAT","MATERIAL_VALUE","METAL_ORE","SEDIMENTARY_OCEAN_SHALLOW","SHEAR_YIELD","MAX_EDGE","SHEAR_STRAIN_AT_YIELD","TENSILE_STRAIN_AT_YIELD","IMPACT_YIELD","ITEMS_METAL","IMPACT_STRAIN_AT_YIELD","COMPRESSIVE_YIELD","BENDING_FRACTURE","COMPRESSIVE_FRACTURE","COMPRESSIVE_STRAIN_AT_YIELD","THREAD_METAL","CRYSTAL_GLASSABLE","ITEMS_ARMOR","TENSILE_YIELD","REACTION_CLASS","TENSILE_FRACTURE","TORSION_YIELD","MOLAR_MASS","TORSION_FRACTURE","SHEAR_FRACTURE","BENDING_STRAIN_AT_YIELD","STATE_COLOR","BENDING_ELASTICITY","IGNEOUS_EXTRUSIVE","STATE_ADJ""SOIL_OCEAN","SOIL","MATERIAL_REACTION_PRODUCT","STONE_NAME","METAMORPHIC","IGNEOUS_INTRUSIVE","SEDIMENTARY","SEDIMENTARY_OCEAN_DEEP","IGNITE_POINT","ENVIRONMENT_SPEC","IS_GEM","DISPLAY_UNGLAZED","BLOCK_NAME","NO_STONE_STOCKPILE","IS_STONE","TILE","STOCKPILE_THREAD_METAL","DEEP_SPECIAL","WAFERS","AQUIFER","ITEMS_SOFT","BASIC_COLOR","SOLID_DENSITY","ENVIRONMENT","LIQUID_DENSITY","ITEMS_SCALED","BENDING_YIELD","ABSORPTION","BOILING_POINT","IMPACT_FRACTURE","ITEMS_HARD","BUILD_COLOR","TORSION_STRAIN_AT_YIELD","ITEM_SYMBOL","ITEMS_BARRED","USE_MATERIAL_TEMPLATE","ITEMS_WEAPON","UNDIGGABLE","OBJECT","HARDENS_WITH_WATER","STATE_NAME","DEEP_SURFACE","LAVA","ITEMS_DIGGER","ITEMS_AMMO","ITEMS_WEAPON_RANGED","INORGANIC","ITEMS_ANVIL","MELTING_POINT","STATE_NAME_ADJ","DISPLAY_COLOR","SPEC_HEAT","MATERIAL_VALUE","SOIL_SAND","METAL_ORE","SEDIMENTARY_OCEAN_SHALLOW","SHEAR_YIELD","MAX_EDGE","SHEAR_STRAIN_AT_YIELD","TENSILE_STRAIN_AT_YIELD","IMPACT_YIELD","ITEMS_METAL","IMPACT_STRAIN_AT_YIELD","COMPRESSIVE_YIELD","BENDING_FRACTURE","COMPRESSIVE_FRACTURE","COMPRESSIVE_STRAIN_AT_YIELD","THREAD_METAL","CRYSTAL_GLASSABLE","ITEMS_ARMOR","TENSILE_YIELD","REACTION_CLASS","TENSILE_FRACTURE","TORSION_YIELD","MOLAR_MASS","TORSION_FRACTURE","SHEAR_FRACTURE","BENDING_STRAIN_AT_YIELD","STATE_COLOR","BENDING_ELASTICITY","IGNEOUS_EXTRUSIVE","STATE_ADJ"

};
bool Material::consumeTag(const RawTag& tag){
  if(accepted_tag_names.find(tag.tagname)==accepted_tag_names.end())
    return false;
  //TODO write actual handling stuff
  return true;
}
