Files
MinecraftConsoles/Minecraft.World/ModifiableAttributeInstance.h
daoge b3feddfef3 feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict

* feat: TU19 (Dec 2014) Features & Content (#32)

* December 2014 files

* Working release build

* Fix compilation issues

* Add sound to Windows64Media

* Add DLC content and force Tutorial DLC

* Revert "Add DLC content and force Tutorial DLC"

This reverts commit 97a4399472.

* Disable broken light packing

* Disable breakpoint during DLC texture map load

Allows DLC loading but the DLC textures are still broken

* Fix post build not working

* ...

* fix vs2022 build

* fix cmake build

---------

Co-authored-by: Loki <lokirautio@gmail.com>
2026-03-03 03:04:10 +08:00

40 lines
1.1 KiB
C++

#pragma once
#include "AttributeInstance.h"
class ModifiableAttributeInstance : public AttributeInstance
{
private:
BaseAttributeMap *attributeMap;
Attribute *attribute;
unordered_set<AttributeModifier *> modifiers [AttributeModifier::TOTAL_OPERATIONS];
unordered_map<unsigned int, AttributeModifier *> modifierById;
double baseValue;
bool dirty;
double cachedValue;
public:
ModifiableAttributeInstance(BaseAttributeMap *attributeMap, Attribute *attribute);
~ModifiableAttributeInstance();
Attribute *getAttribute();
double getBaseValue();
void setBaseValue(double baseValue);
unordered_set<AttributeModifier *> *getModifiers(int operation);
void getModifiers(unordered_set<AttributeModifier *>& result);
AttributeModifier *getModifier(eMODIFIER_ID id);
void addModifiers(unordered_set<AttributeModifier *> *modifiers);
void addModifier(AttributeModifier *modifier);
private:
void setDirty();
public:
void removeModifier(AttributeModifier *modifier);
void removeModifier(eMODIFIER_ID id);
void removeModifiers();
double getValue();
private:
double calculateValue();
};