the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2
3class ModifiableAttributeInstance;
4
5class BaseAttributeMap
6{
7protected:
8 //unordered_map<Attribute *, AttributeInstance *> attributesByObject;
9#ifdef __ORBIS__
10 unordered_map<eATTRIBUTE_ID, AttributeInstance *, std::hash<int> > attributesById;
11#else
12 unordered_map<eATTRIBUTE_ID, AttributeInstance *> attributesById;
13#endif
14
15public :
16 virtual ~BaseAttributeMap();
17
18 virtual AttributeInstance *getInstance(Attribute *attribute);
19 virtual AttributeInstance *getInstance(eATTRIBUTE_ID name);
20
21 virtual AttributeInstance *registerAttribute(Attribute *attribute) = 0;
22
23 virtual void getAttributes(vector<AttributeInstance *>& atts);
24 virtual void onAttributeModified(ModifiableAttributeInstance *attributeInstance);
25
26 // 4J: Changed these into specialised functions for adding/removing the modifiers of an item (it's cleaner)
27 virtual void removeItemModifiers(shared_ptr<ItemInstance> item);
28 virtual void addItemModifiers(shared_ptr<ItemInstance> item);
29};