LeviLamina
Loading...
Searching...
No Matches
CameraShakeComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/minecraft_camera/CameraShakeType.h"
7
8// auto generated forward declare list
9// clang-format off
10class Random;
11class SimplexNoise;
12class Vec3;
13struct CameraShakeEvent;
14// clang-format on
15
16class CameraShakeComponent {
17public:
18 // member variables
19 // NOLINTBEGIN
20 ::ll::TypedStorage<8, 24, ::std::vector<::CameraShakeEvent>> mShakeEvents;
21 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SimplexNoise>> xAxisNoise;
22 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SimplexNoise>> yAxisNoise;
23 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SimplexNoise>> zAxisNoise;
24 ::ll::TypedStorage<8, 8, double> mLastUpdatedTime;
25 ::ll::TypedStorage<4, 4, float> mNoiseTime;
26 ::ll::TypedStorage<4, 4, float> mShakeIntensity;
27 ::ll::TypedStorage<4, 4, float> mDecayRate;
28 ::ll::TypedStorage<1, 1, ::CameraShakeType> mShakeType;
29 ::ll::TypedStorage<1, 1, bool> mWasShaking;
30 // NOLINTEND
31
32#ifdef LL_PLAT_S
33#else // LL_PLAT_C
34public:
35 // prevent constructor by default
36 CameraShakeComponent& operator=(CameraShakeComponent const&);
37 CameraShakeComponent(CameraShakeComponent const&);
38 CameraShakeComponent();
39
40#endif
41public:
42 // member functions
43 // NOLINTBEGIN
44#ifdef LL_PLAT_C
45 MCFOLD float getDecayRate() const;
46
47 MCAPI double getLastUpdateTime() const;
48
49 MCFOLD float getNoiseTime() const;
50
51 MCFOLD ::std::vector<::CameraShakeEvent>& getShakeEventQueue();
52
53 MCFOLD float getShakeIntensity() const;
54
55 MCFOLD ::CameraShakeType getShakeType() const;
56
57 MCAPI ::Vec3 getShakeVector(float noiseMultiplier, float frequency, float amplitude) const;
58
59 MCAPI void initialize(::Random& random);
60
61 MCAPI ::CameraShakeComponent& operator=(::CameraShakeComponent&&);
62
63 MCAPI bool queueShakeEvent(float intensity, float duration);
64
65 MCAPI void setLastUpdateTime(double newSeconds);
66
67 MCFOLD void setNoiseTime(float noiseTime);
68
69 MCFOLD void setShakeIntensity(float intensity);
70
71 MCFOLD void setShakeType(::CameraShakeType shakeType);
72
73 MCAPI bool shouldShake() const;
74
75 MCAPI void updateShakeNoise(::Random& random);
76#endif
77 // NOLINTEND
78
79public:
80 // static functions
81 // NOLINTBEGIN
82 MCAPI static float getMaxIntensity();
83 // NOLINTEND
84};
Definition Random.h:10
Definition SimplexNoise.h:14
Definition Vec3.h:10
Definition CameraShakeEvent.h:5