the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2
3#include "Attribute.h"
4#include "RangedAttribute.h"
5#include "AttributeInstance.h"
6#include "ModifiableAttributeInstance.h"
7#include "ServersideAttributeMap.h"
8
9AttributeInstance *ServersideAttributeMap::getInstance(Attribute *attribute)
10{
11 return BaseAttributeMap::getInstance(attribute);
12}
13
14AttributeInstance *ServersideAttributeMap::getInstance(eATTRIBUTE_ID id)
15{
16 AttributeInstance *result = BaseAttributeMap::getInstance(id);
17
18 // 4J: Removed legacy name
19 // If we didn't find it, search by legacy name
20 /*if (result == NULL)
21 {
22 AUTO_VAR(it, attributesByLegacy.find(name));
23 if(it != attributesByLegacy.end())
24 {
25 result = it->second;
26 }
27 }*/
28
29 return result;
30}
31
32AttributeInstance *ServersideAttributeMap::registerAttribute(Attribute *attribute)
33{
34 AUTO_VAR(it,attributesById.find(attribute->getId()));
35 if (it != attributesById.end())
36 {
37 return it->second;
38 }
39
40 AttributeInstance *instance = new ModifiableAttributeInstance(this, attribute);
41 attributesById.insert(std::pair<eATTRIBUTE_ID, AttributeInstance *>(attribute->getId(), instance));
42
43 // 4J: Removed legacy name
44 // If this is a ranged attribute also add to legacy name map
45 /*RangedAttribute *rangedAttribute = dynamic_cast<RangedAttribute*>(attribute);
46 if (rangedAttribute != NULL && rangedAttribute->getImportLegacyName() != L"")
47 {
48 attributesByLegacy.insert(std::pair<wstring, AttributeInstance*>(rangedAttribute->getImportLegacyName(), instance));
49 }*/
50
51 return instance;
52}
53
54void ServersideAttributeMap::onAttributeModified(ModifiableAttributeInstance *attributeInstance)
55{
56 if (attributeInstance->getAttribute()->isClientSyncable())
57 {
58 dirtyAttributes.insert(attributeInstance);
59 }
60}
61
62unordered_set<AttributeInstance *> *ServersideAttributeMap::getDirtyAttributes()
63{
64 return &dirtyAttributes;
65}
66
67unordered_set<AttributeInstance *> *ServersideAttributeMap::getSyncableAttributes()
68{
69 unordered_set<AttributeInstance *> *result = new unordered_set<AttributeInstance *>();
70 vector<AttributeInstance *> atts;
71 getAttributes(atts);
72 for (int i = 0; i < atts.size(); i++)
73 {
74 AttributeInstance *instance = atts.at(i);
75
76 if (instance->getAttribute()->isClientSyncable())
77 {
78 result->insert(instance);
79 }
80 }
81
82 return result;
83}