4jcraft/Minecraft.World/AI/Attributes/AttributeInstance.h
2026-03-21 15:10:07 -05:00

24 lines
858 B
C++

#pragma once
#include "AttributeModifier.h"
class AttributeInstance {
public:
virtual ~AttributeInstance() {}
virtual Attribute* getAttribute() = 0;
virtual double getBaseValue() = 0;
virtual void setBaseValue(double baseValue) = 0;
virtual double getValue() = 0;
virtual std::unordered_set<AttributeModifier*>* getModifiers(
int operation) = 0;
virtual void getModifiers(
std::unordered_set<AttributeModifier*>& result) = 0;
virtual AttributeModifier* getModifier(eMODIFIER_ID id) = 0;
virtual void addModifiers(
std::unordered_set<AttributeModifier*>* modifiers) = 0;
virtual void addModifier(AttributeModifier* modifier) = 0;
virtual void removeModifier(AttributeModifier* modifier) = 0;
virtual void removeModifier(eMODIFIER_ID id) = 0;
virtual void removeModifiers() = 0;
};