Etterna 0.74.4
Loading...
Searching...
No Matches
ReceptorArrowRow.h
1#ifndef RECEPTOR_ARROW_ROW_H
2#define RECEPTOR_ARROW_ROW_H
3
4#include "Etterna/Actor/Base/ActorFrame.h"
5#include "Etterna/Models/Misc/GameConstantsAndTypes.h"
6#include "NoteDisplay.h"
7#include "ReceptorArrow.h"
8
9class PlayerState;
12{
13 public:
15 ~ReceptorArrowRow() override;
16 void Update(float fDeltaTime) override;
17 void DrawPrimitives() override;
18 void DrawOverlay();
19
20 void Load(const PlayerState* pPlayerState, float fYReverseOffset);
21 void SetColumnRenderers(std::vector<NoteColumnRenderer>& renderers);
22 [[nodiscard]] int GetRendererCount() const
23 {
24 if (m_renderers != nullptr)
25 return m_renderers->size();
26 return 0;
27 }
28
29 [[nodiscard]] int GetReceptorCount() const
30 {
31 return m_ReceptorArrow.size();
32 }
33
34 // Initialization happens before Loading
35 [[nodiscard]] bool isInitialized() const { return GetReceptorCount() > 0; }
36 [[nodiscard]] bool isLoaded() const { return GetRendererCount() > 0; }
37
38 void Step(int iCol, TapNoteScore score);
39 void SetPressed(int iCol);
40
41 void SetFadeToFailPercent(float fFadeToFailPercent)
42 {
43 m_fFadeToFailPercent = fFadeToFailPercent;
44 }
45 float m_fYReverseOffsetPixels;
46
47 protected:
48 const PlayerState* m_pPlayerState;
49 float m_fFadeToFailPercent;
50
51 std::vector<NoteColumnRenderer> const* m_renderers;
52 std::vector<ReceptorArrow*> m_ReceptorArrow;
53 std::vector<ReceptorArrow*> m_OverlayReceptorArrow;
54};
55
56#endif
A container for other Actors.
Definition ActorFrame.h:8
The player's indivdual state.
Definition PlayerState.h:30
A row of ReceptorArrow objects.
Definition ReceptorArrowRow.h:12
void DrawPrimitives() override
Draw the primitives of the Actor.
Definition ReceptorArrowRow.cpp:101