#pragma once class SharedMonsterAttributes { public: static Attribute *MAX_HEALTH; static Attribute *FOLLOW_RANGE; static Attribute *KNOCKBACK_RESISTANCE; static Attribute *MOVEMENT_SPEED; static Attribute *ATTACK_DAMAGE; static ListTag *saveAttributes(BaseAttributeMap *attributes); private: static CompoundTag *saveAttribute(AttributeInstance *instance); static CompoundTag *saveAttributeModifier(AttributeModifier *modifier); public: static void loadAttributes(BaseAttributeMap *attributes, ListTag *list); private: static void loadAttribute(AttributeInstance *instance, CompoundTag *tag); public: static AttributeModifier *loadAttributeModifier(CompoundTag *tag); };