aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/ServersideAttributeMap.h
blob: b404eb9e79f6bb0d5e046ffaf31cc5d21933150b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once

#include "BaseAttributeMap.h"

class ServersideAttributeMap : public BaseAttributeMap
{
private:
	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 unordered_set<AttributeInstance *> *getDirtyAttributes();
	virtual unordered_set<AttributeInstance *> *getSyncableAttributes();
};