LeviLamina
Loading...
Searching...
No Matches
Ability.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5class Ability {
6public:
7 // Ability inner types define
8 enum class Type : uchar {
9 Invalid = 0,
10 Unset = 1,
11 Bool = 2,
12 Float = 3,
13 };
14
15 enum class Options : uchar {
16 // bitfield representation
17 None = 0,
18 NoSave = 1 << 0,
19 CommandExposed = 1 << 1,
20 PermissionsInterfaceExposed = 1 << 2,
21 };
22
23 union Value {
24 public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<1, 4, bool> mBoolVal;
28 ::ll::TypedStorage<4, 4, float> mFloatVal;
29 // NOLINTEND
30 };
31
32public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<1, 1, ::Ability::Type> mType;
36 ::ll::TypedStorage<4, 4, ::Ability::Value> mValue;
37 ::ll::TypedStorage<1, 1, ::Ability::Options> mOptions;
38 // NOLINTEND
39};
Definition Ability.h:5
Definition Options.h:32
Definition Ability.h:23