LeviLamina
Loading...
Searching...
No Matches
VibrationListener.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/events/gameevents/GameEventListener.h"
7#include "mc/world/events/gameevents/PositionSource.h"
8#include "mc/world/events/gameevents/VibrationInfo.h"
9#include "mc/world/events/gameevents/VibrationSelector.h"
10
11// auto generated forward declare list
12// clang-format off
13class BlockPos;
14class BlockSource;
15class CompoundTag;
16class DataLoadHelper;
17class GameEvent;
18class Vec3;
20struct GameEventContext;
21// clang-format on
22
23class VibrationListener : public ::GameEventListener {
24public:
25 // VibrationListener inner types define
26 enum class OwnerType : int {
27 SculkSensor = 0,
28 SculkShrieker = 1,
29 Warden = 2,
30 Allay = 3,
31 };
32
33public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<8, 72, ::VibrationSelector> mVibrationSelector;
37 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::VibrationListenerConfig>> mConfig;
38 ::ll::TypedStorage<8, 24, ::GameEvents::PositionSource> mPositionSource;
39 ::ll::TypedStorage<4, 4, ::VibrationListener::OwnerType> mOwnerType;
40 ::ll::TypedStorage<4, 4, uint> mRange;
41 ::ll::TypedStorage<8, 64, ::std::optional<::VibrationInfo>> mInFlightVibrationInfo;
42 ::ll::TypedStorage<4, 4, int> mInFlightVibrationTicks;
43 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::GameEvent const>> mLatestReceivedVibration;
44 // NOLINTEND
45
46public:
47 // prevent constructor by default
48 VibrationListener();
49
50public:
51 // virtual functions
52 // NOLINTBEGIN
53 virtual void handleGameEvent(
54 ::GameEvent const& gameEvent,
55 ::GameEventContext const& gameEventContext,
56 ::BlockSource& region
57 ) /*override*/;
58
59 virtual uint getRange() const /*override*/;
60
61 virtual ::GameEvents::PositionSource const& getPositionSource() const /*override*/;
62 // NOLINTEND
63
64public:
65 // member functions
66 // NOLINTBEGIN
67 MCAPI VibrationListener(
68 ::std::unique_ptr<::VibrationListenerConfig>&& config,
69 ::GameEvents::PositionSource positionSource,
70 uint range,
71 ::VibrationListener::OwnerType ownerType
72 );
73
74 MCAPI bool _areAdjacentChunksTicking(::BlockSource& region) const;
75
76 MCAPI void _requestVibrationParticle(::BlockSource& region, ::BlockPos const& originPos, float timeToLive);
77
78 MCAPI bool _tryAdvanceInFlightVibration(::BlockSource& region);
79
80 MCAPI void _trySendSneakCloseToSculkSensorEventPacket(
81 ::BlockSource& gameEvent,
82 ::GameEvent const& gameEventContext,
83 ::GameEventContext const& sensorPos,
84 ::Vec3 const&
85 );
86
87 MCFOLD ::GameEvent const& getLatestReceivedVibration() const;
88
89 MCAPI void load(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
90
91 MCAPI void save(::CompoundTag& tag) const;
92
93 MCAPI void tick(::BlockSource& region);
94 // NOLINTEND
95
96public:
97 // static functions
98 // NOLINTBEGIN
99 MCAPI static bool _isVibrationOccluded(::BlockSource& region, ::Vec3 const& originPos, ::Vec3 const& targetPos);
100
101 MCAPI static bool _shouldIgnoreVibration(
102 ::BlockSource& region,
103 ::GameEvent const& gameEvent,
104 ::GameEventContext const& gameEventContext
105 );
106 // NOLINTEND
107
108public:
109 // constructor thunks
110 // NOLINTBEGIN
111 MCAPI void* $ctor(
112 ::std::unique_ptr<::VibrationListenerConfig>&& config,
113 ::GameEvents::PositionSource positionSource,
114 uint range,
115 ::VibrationListener::OwnerType ownerType
116 );
117 // NOLINTEND
118
119public:
120 // virtual function thunks
121 // NOLINTBEGIN
122 MCAPI void
123 $handleGameEvent(::GameEvent const& gameEvent, ::GameEventContext const& gameEventContext, ::BlockSource& region);
124
125 MCFOLD uint $getRange() const;
126
127 MCFOLD ::GameEvents::PositionSource const& $getPositionSource() const;
128
129
130 // NOLINTEND
131
132public:
133 // vftables
134 // NOLINTBEGIN
135 MCNAPI static void** $vftable();
136 // NOLINTEND
137};
Definition Allay.h:20
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition CompoundTag.h:23
Definition DataLoadHelper.h:20
Definition GameEventListener.h:13
Definition GameEvent.h:9
Definition PositionSource.h:19
Definition Vec3.h:10
Definition VibrationListenerConfig.h:14
static MCAPI void ** $vftable()
Definition Warden.h:21
Definition GameEventContext.h:14