the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "net.minecraft.world.entity.ai.attributes.h"
3#include "BaseAttributeMap.h"
4
5BaseAttributeMap::~BaseAttributeMap()
6{
7 for(AUTO_VAR(it,attributesById.begin()); it != attributesById.end(); ++it)
8 {
9 delete it->second;
10 }
11}
12
13AttributeInstance *BaseAttributeMap::getInstance(Attribute *attribute)
14{
15 return getInstance(attribute->getId());
16}
17
18AttributeInstance *BaseAttributeMap::getInstance(eATTRIBUTE_ID id)
19{
20 AUTO_VAR(it,attributesById.find(id));
21 if(it != attributesById.end())
22 {
23 return it->second;
24 }
25 else
26 {
27 return NULL;
28 }
29}
30
31void BaseAttributeMap::getAttributes(vector<AttributeInstance *>& atts)
32{
33 for(AUTO_VAR(it,attributesById.begin()); it != attributesById.end(); ++it)
34 {
35 atts.push_back(it->second);
36 }
37}
38
39void BaseAttributeMap::onAttributeModified(ModifiableAttributeInstance *attributeInstance)
40{
41}
42
43void BaseAttributeMap::removeItemModifiers(shared_ptr<ItemInstance> item)
44{
45 attrAttrModMap *modifiers = item->getAttributeModifiers();
46
47 for(AUTO_VAR(it, modifiers->begin()); it != modifiers->end(); ++it)
48 {
49 AttributeInstance *attribute = getInstance(it->first);
50 AttributeModifier *modifier = it->second;
51
52 if (attribute != NULL)
53 {
54 attribute->removeModifier(modifier);
55 }
56
57 delete modifier;
58 }
59
60 delete modifiers;
61}
62
63void BaseAttributeMap::addItemModifiers(shared_ptr<ItemInstance> item)
64{
65 attrAttrModMap *modifiers = item->getAttributeModifiers();
66
67 for(AUTO_VAR(it, modifiers->begin()); it != modifiers->end(); ++it)
68 {
69 AttributeInstance *attribute = getInstance(it->first);
70 AttributeModifier *modifier = it->second;
71
72 if (attribute != NULL)
73 {
74 attribute->removeModifier(modifier);
75 attribute->addModifier(new AttributeModifier(*modifier));
76 }
77
78 delete modifier;
79 }
80
81 delete modifiers;
82}