LeviLamina
Loading...
Searching...
No Matches
BreathableComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/block/BlockDescriptor.h"
7
8// auto generated forward declare list
9// clang-format off
10class Actor;
11// clang-format on
12
13class BreathableComponent {
14public:
15 // BreathableComponent inner types define
16 enum class BreathableState : int {
17 InAir = 0,
18 InWater = 1,
19 InLava = 2,
20 InSolids = 3,
21 InBreathableOverrideBlock = 4,
22 InNonBreathableOverrideBlock = 5,
23 };
24
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<4, 4, int> mSuffocateTime;
29 ::ll::TypedStorage<4, 4, float> mInhaleTime;
30 ::ll::TypedStorage<4, 4, int> mAirRegenPerTick;
31 ::ll::TypedStorage<1, 1, bool> mBreathesAir;
32 ::ll::TypedStorage<1, 1, bool> mBreathesWater;
33 ::ll::TypedStorage<1, 1, bool> mBreathesLava;
34 ::ll::TypedStorage<1, 1, bool> mBreathesSolids;
35 ::ll::TypedStorage<1, 1, bool> mGeneratesBubbles;
36 ::ll::TypedStorage<2, 2, short> mAirSupply;
37 ::ll::TypedStorage<2, 2, short> mAirSupplyMax;
38 ::ll::TypedStorage<8, 24, ::std::vector<::BlockDescriptor>> mBreathableBlocks;
39 ::ll::TypedStorage<8, 24, ::std::vector<::BlockDescriptor>> mNonBreathableBlocks;
40 ::ll::TypedStorage<4, 4, ::BreathableComponent::BreathableState> mBreathableState;
41 // NOLINTEND
42
43public:
44 // prevent constructor by default
45 BreathableComponent& operator=(BreathableComponent const&);
46 BreathableComponent(BreathableComponent const&);
47 BreathableComponent();
48
49public:
50 // member functions
51 // NOLINTBEGIN
52 MCAPI bool canBreathe(::Actor const& owner) const;
53
54 MCAPI ::BreathableComponent& operator=(::BreathableComponent&&);
55
56 MCAPI void updateBreathableState(::Actor& owner);
57
58 MCAPI ~BreathableComponent();
59 // NOLINTEND
60
61public:
62 // destructor thunk
63 // NOLINTBEGIN
64 MCAPI void $dtor();
65 // NOLINTEND
66};
Definition Actor.h:113