Allow setting and getting beat bar status per NoteField from Lua

This commit is contained in:
tertu marybig
2024-02-15 13:22:26 -08:00
committed by teejusb
parent c4d63052e2
commit acf8be530d
3 changed files with 46 additions and 9 deletions
+26 -1
View File
@@ -46,6 +46,7 @@ NoteField::NoteField()
m_pNoteData = nullptr;
m_pCurDisplay = nullptr;
m_drawing_board_primitive= false;
m_bShowBeatBars = SHOW_BEAT_BARS;
m_textMeasureNumber.LoadFromFont( THEME->GetPathF("NoteField","MeasureNumber") );
m_textMeasureNumber.SetZoom( 1.0f );
@@ -96,6 +97,16 @@ void NoteField::Unload()
memset( m_pDisplays, 0, sizeof(m_pDisplays) );
}
void NoteField::SetBeatBars(bool active)
{
m_bShowBeatBars = active;
}
bool NoteField::GetBeatBars()
{
return m_bShowBeatBars;
}
void NoteField::CacheNoteSkin( const RString &sNoteSkin_ )
{
RString sNoteSkinLower = sNoteSkin_;
@@ -800,7 +811,7 @@ void NoteField::DrawPrimitives()
segs[tst] = &(pTiming->GetTimingSegments(tst));
// Draw beat bars
if( ( GAMESTATE->IsEditing() || SHOW_BEAT_BARS ) && pTiming != nullptr )
if( ( GAMESTATE->IsEditing() || m_bShowBeatBars ) && pTiming != nullptr )
{
const std::vector<TimingSegment *> &tSigs = *segs[SEGMENT_TIME_SIG];
int iMeasureIndex = 0;
@@ -1267,6 +1278,18 @@ public:
return 1;
}
static int GetBeatBars(T* p, lua_State* L)
{
LuaHelpers::Push(L, p->GetBeatBars());
return 1;
};
static int SetBeatBars(T* p, lua_State* L)
{
p->SetBeatBars(BArg(1));
return 0;
}
LunaNoteField()
{
ADD_METHOD(set_step_callback);
@@ -1278,6 +1301,8 @@ public:
ADD_METHOD(did_tap_note);
ADD_METHOD(did_hold_note);
ADD_METHOD(get_column_actors);
ADD_METHOD(GetBeatBars);
ADD_METHOD(SetBeatBars);
}
};
+5
View File
@@ -67,6 +67,9 @@ public:
// public so that the Lua API can access it. -Kyz
std::vector<NoteColumnRenderer> m_ColumnRenderers;
void SetBeatBars(bool active);
bool GetBeatBars();
protected:
void CacheNoteSkin( const RString &sNoteSkin );
void UncacheNoteSkin( const RString &sNoteSkin );
@@ -126,6 +129,8 @@ protected:
BitmapText m_textMeasureNumber;
Quad m_rectMarkerBar;
Quad m_rectAreaHighlight;
bool m_bShowBeatBars;
};
#endif