diff options
Diffstat (limited to 'Minecraft.World/Abilities.cpp')
| -rw-r--r-- | Minecraft.World/Abilities.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Minecraft.World/Abilities.cpp b/Minecraft.World/Abilities.cpp new file mode 100644 index 00000000..06006860 --- /dev/null +++ b/Minecraft.World/Abilities.cpp @@ -0,0 +1,77 @@ +#include "stdafx.h" +#include "com.mojang.nbt.h" +#include "Abilities.h" + +Abilities::Abilities() +{ + invulnerable = false; + flying = false; + mayfly = false; + instabuild = false; + mayBuild = true; + flyingSpeed = 0.05f; + walkingSpeed = 0.1f; + +#ifdef _DEBUG_MENUS_ENABLED + debugflying = false; +#endif +} + +void Abilities::addSaveData(CompoundTag *parentTag) +{ + CompoundTag *tag = new CompoundTag(); + + tag->putBoolean(L"invulnerable", invulnerable); + tag->putBoolean(L"flying", flying); + tag->putBoolean(L"mayfly", mayfly); + tag->putBoolean(L"instabuild", instabuild); + tag->putBoolean(L"mayBuild", mayBuild); + tag->putFloat(L"flySpeed", flyingSpeed); + tag->putFloat(L"walkSpeed", walkingSpeed); + + parentTag->put(L"abilities", tag); + +} + +void Abilities::loadSaveData(CompoundTag *parentTag) +{ + if (parentTag->contains(L"abilities")) + { + CompoundTag *tag = parentTag->getCompound(L"abilities"); + + invulnerable = tag->getBoolean(L"invulnerable"); + flying = tag->getBoolean(L"flying"); + mayfly = tag->getBoolean(L"mayfly"); + instabuild = tag->getBoolean(L"instabuild"); + + if (tag->contains(L"flySpeed")) + { + flyingSpeed = tag->getFloat(L"flySpeed"); + walkingSpeed = tag->getFloat(L"walkSpeed"); + } + if (tag->contains(L"mayBuild")) + { + mayBuild = tag->getBoolean(L"mayBuild"); + } + } +} + +float Abilities::getFlyingSpeed() +{ + return flyingSpeed; +} + +void Abilities::setFlyingSpeed(float value) +{ + this->flyingSpeed = value; +} + +float Abilities::getWalkingSpeed() +{ + return walkingSpeed; +} + +void Abilities::setWalkingSpeed(float value) +{ + this->walkingSpeed = value; +}
\ No newline at end of file |
