From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/Abilities.cpp | 77 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Minecraft.World/Abilities.cpp (limited to 'Minecraft.World/Abilities.cpp') 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 -- cgit v1.2.3