LeviLamina
Loading...
Searching...
No Matches
Abilities.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/server/commands/PlayerPermissionLevel.h"
7#include "mc/world/actor/player/AbilitiesIndex.h"
8#include "mc/world/actor/player/Ability.h"
9
10// auto generated forward declare list
11// clang-format off
12class CompoundTag;
13// clang-format on
14
15class Abilities {
16public:
17 // member variables
18 // NOLINTBEGIN
19 ::ll::TypedStorage<4, 240, ::std::array<::Ability, 20>> mAbilities;
20 // NOLINTEND
21
22public:
23 // prevent constructor by default
24 Abilities();
25
26public:
27 // member functions
28 // NOLINTBEGIN
29 MCAPI Abilities(::Abilities const& rhs);
30
31 MCAPI explicit Abilities(bool setToDefaults);
32
33 MCAPI void addSaveData(::CompoundTag& parentTag) const;
34
35 MCFOLD void forEachAbility(
36 ::std::function<void(::Ability&, ::AbilitiesIndex)> const& callback,
37 ::Ability::Options requiredOptions
38 );
39
40 MCAPI void forEachAbility(
41 ::std::function<void(::Ability const&, char const*)> const& callback,
42 ::Ability::Options requiredOptions
43 ) const;
44
45 MCFOLD void forEachAbility(
46 ::std::function<void(::Ability const&, ::AbilitiesIndex)> const& callback,
47 ::Ability::Options requiredOptions
48 ) const;
49
50 MCAPI bool getBool(::AbilitiesIndex ability) const;
51
52 MCAPI float getFloat(::AbilitiesIndex ability) const;
53
54 MCAPI bool isAnyAbilitySet() const;
55
56 MCAPI bool loadSaveData(::CompoundTag const& parentTag);
57
58 MCAPI ::Abilities& operator=(::Abilities const& rhs);
59
60 MCAPI void setAbility(::AbilitiesIndex ability, bool value);
61
62 MCAPI void setAbility(::AbilitiesIndex abilityIndex, float value);
63
64 MCAPI void setAbilityDiff(::AbilitiesIndex ability, bool value, bool& diff);
65
66 MCAPI void setFromPermissions(::PlayerPermissionLevel permissions);
67
68 MCAPI void unSet();
69
70 MCAPI void unSet(::AbilitiesIndex val);
71 // NOLINTEND
72
73public:
74 // static functions
75 // NOLINTBEGIN
76 MCAPI static ::std::array<::Ability const, 20> _initDefaultAbilities();
77
78 MCAPI static char const* getAbilityName(::AbilitiesIndex abilityIndex);
79
80 MCAPI static ::Ability const& getDefault(::AbilitiesIndex abilityIndex);
81
82#ifdef LL_PLAT_C
83 MCAPI static ::std::optional<::std::string> getDiff(::Abilities const& lhs, ::Abilities const& rhs);
84#endif
85
86 MCAPI static ::AbilitiesIndex nameToAbilityIndex(::std::string const& name);
87 // NOLINTEND
88
89public:
90 // static variables
91 // NOLINTBEGIN
92 MCAPI static ::std::array<char const*, 20>& ABILITY_NAMES();
93
94 MCAPI static ::std::string const& DIFF_ABILITIY_AT();
95
96 MCAPI static ::Ability& INVALID_ABILITY();
97
98 MCAPI static ::std::string const& SERIALIZATION_TAG();
99 // NOLINTEND
100
101public:
102 // constructor thunks
103 // NOLINTBEGIN
104 MCAPI void* $ctor(::Abilities const& rhs);
105
106 MCAPI void* $ctor(bool setToDefaults);
107 // NOLINTEND
108};
Definition Ability.h:5
Definition CompoundTag.h:23