[GrooveRadar] Added SetFromValues(pn,{f1,f2,f3,f4,f5}) Lua binding.
This commit is contained in:
@@ -78,6 +78,11 @@ void GrooveRadar::SetFromSteps( PlayerNumber pn, Steps* pSteps ) // NULL means n
|
||||
m_GrooveRadarValueMap[pn].SetFromSteps( rv );
|
||||
}
|
||||
|
||||
void GrooveRadar::SetFromValues( PlayerNumber pn, vector<float> vals )
|
||||
{
|
||||
m_GrooveRadarValueMap[pn].SetFromValues(vals);
|
||||
}
|
||||
|
||||
GrooveRadar::GrooveRadarValueMap::GrooveRadarValueMap()
|
||||
{
|
||||
m_bValuesVisible = false;
|
||||
@@ -111,6 +116,22 @@ void GrooveRadar::GrooveRadarValueMap::SetFromSteps( const RadarValues &rv )
|
||||
m_PercentTowardNew = 0;
|
||||
}
|
||||
|
||||
void GrooveRadar::GrooveRadarValueMap::SetFromValues( vector<float> vals )
|
||||
{
|
||||
m_bValuesVisible = true;
|
||||
for( int c=0; c<NUM_SHOWN_RADAR_CATEGORIES; c++ )
|
||||
{
|
||||
const float fValueCurrent = m_fValuesOld[c] * (1-m_PercentTowardNew) + m_fValuesNew[c] * m_PercentTowardNew;
|
||||
m_fValuesOld[c] = fValueCurrent;
|
||||
m_fValuesNew[c] = vals[c];
|
||||
}
|
||||
|
||||
if( !m_bValuesVisible ) // the values WERE invisible
|
||||
m_PercentTowardNew = 1;
|
||||
else
|
||||
m_PercentTowardNew = 0;
|
||||
}
|
||||
|
||||
void GrooveRadar::GrooveRadarValueMap::Update( float fDeltaTime )
|
||||
{
|
||||
ActorFrame::Update( fDeltaTime );
|
||||
@@ -205,11 +226,27 @@ public:
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
static int SetFromValues( T* p, lua_State *L )
|
||||
{
|
||||
PlayerNumber pn = Enum::Check<PlayerNumber>(L, 1);
|
||||
if( !lua_istable(L, 2) || lua_isnil(L,2) )
|
||||
{
|
||||
p->SetEmpty( pn );
|
||||
}
|
||||
else
|
||||
{
|
||||
vector<float> vals;
|
||||
LuaHelpers::ReadArrayFromTable( vals, L );
|
||||
p->SetFromValues(pn, vals);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
static int SetEmpty( T* p, lua_State *L ) { p->SetEmpty( Enum::Check<PlayerNumber>(L, 1) ); return 0; }
|
||||
|
||||
LunaGrooveRadar()
|
||||
{
|
||||
ADD_METHOD( SetFromRadarValues );
|
||||
ADD_METHOD( SetFromValues );
|
||||
ADD_METHOD( SetEmpty );
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user