13class BreathableComponent {
16 enum class BreathableState :
int {
21 InBreathableOverrideBlock = 4,
22 InNonBreathableOverrideBlock = 5,
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;
45 BreathableComponent& operator=(BreathableComponent
const&);
46 BreathableComponent(BreathableComponent
const&);
47 BreathableComponent();
52 MCAPI
bool canBreathe(
::Actor const& owner)
const;
54 MCAPI ::BreathableComponent& operator=(::BreathableComponent&&);
56 MCAPI
void updateBreathableState(
::Actor& owner);
58 MCAPI ~BreathableComponent();