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

24 lines
868 B
C++

#pragma once
#include "BaseAttributeMap.h"
class ServersideAttributeMap : public BaseAttributeMap {
private:
std::unordered_set<AttributeInstance*> dirtyAttributes;
protected:
// 4J: Remove legacy name
// unordered_map<eATTRIBUTE_ID, AttributeInstance *> attributesByLegacy;
public:
// 4J-JEV: Changed from ModifiableAttributeInstance to AttributeInstance as
// they are not 'covariant' on PS4.
virtual AttributeInstance* getInstance(Attribute* attribute);
virtual AttributeInstance* getInstance(eATTRIBUTE_ID id);
virtual AttributeInstance* registerAttribute(Attribute* attribute);
virtual void onAttributeModified(
ModifiableAttributeInstance* attributeInstance);
virtual std::unordered_set<AttributeInstance*>* getDirtyAttributes();
virtual std::unordered_set<AttributeInstance*>* getSyncableAttributes();
};