Ref T259, Ref T243 utility functions parts/engine list

This commit is contained in:
Klaus Basan
2018-03-03 17:20:09 +01:00
parent 03af49348b
commit 2f7e119837
4 changed files with 41 additions and 13 deletions

View File

@@ -34,15 +34,29 @@ namespace BlackMisc
CAircraftEngine CAircraftEngineList::getEngine(int engineNumber) const
{
Q_ASSERT(engineNumber >= 0);
Q_ASSERT(engineNumber > 0);
return this->findBy(&CAircraftEngine::getNumber, engineNumber).frontOrDefault();
}
bool CAircraftEngineList::isEngineOn(int engineNumber) const
{
Q_ASSERT(engineNumber > 0);
return this->getEngine(engineNumber).isOn();
}
void CAircraftEngineList::setEngineOn(int engineNumber, bool on)
{
Q_ASSERT(engineNumber > 0);
for (CAircraftEngine &engine : *this)
{
if (engine.getNumber() == engineNumber)
{
engine.setOn(on);
break;
}
}
}
void CAircraftEngineList::initEngines(int engineNumber, bool on)
{
this->clear();
@@ -64,7 +78,7 @@ namespace BlackMisc
for (const auto &e : *this)
{
QJsonObject value = e.toJson();
const QJsonObject value = e.toJson();
map.insert(QString::number(e.getNumber()), value);
}
return map;
@@ -72,11 +86,11 @@ namespace BlackMisc
void CAircraftEngineList::convertFromJson(const QJsonObject &json)
{
clear();
this->clear();
for (const auto &e : json.keys())
{
CAircraftEngine engine;
int number = e.toInt();
const int number = e.toInt();
CJsonScope scope(e);
Q_UNUSED(scope);
engine.convertFromJson(json.value(e).toObject());

View File

@@ -48,11 +48,17 @@ namespace BlackMisc
CAircraftEngineList(const CSequence<CAircraftEngine> &other);
//! Get engine 1..n
//! \remark 1 based, not 0 based
CAircraftEngine getEngine(int engineNumber) const;
//! Engine number 1..x on?
//! \remark 1 based, not 0 based
bool isEngineOn(int engineNumber) const;
//! Set engine on/off
//! \remark 1 based, not 0 based
void setEngineOn(int engineNumber, bool on);
//! Init some engines
void initEngines(int engineNumber, bool on);

View File

@@ -23,12 +23,12 @@ namespace BlackMisc
QString CAircraftParts::convertToQString(bool i18n) const
{
return QStringLiteral("ts: ") % this->getFormattedTimestampAndOffset(true) %
QStringLiteral(" lights: ") % m_lights.toQString(i18n) %
QStringLiteral(" gear down: ") % BlackMisc::boolToYesNo(m_gearDown) %
QStringLiteral(" flaps pct: ") % QString::number(m_flapsPercentage) %
QStringLiteral(" spoilers out: ") % BlackMisc::boolToYesNo(m_spoilersOut) %
QStringLiteral(" engines on: ") % m_engines.toQString(i18n) %
QStringLiteral(" on ground: ") % BlackMisc::boolToYesNo(m_isOnGround);
QStringLiteral(" on ground: ") % BlackMisc::boolToYesNo(m_isOnGround) %
QStringLiteral(" | lights: ") % m_lights.toQString(i18n) %
QStringLiteral(" | gear down: ") % BlackMisc::boolToYesNo(m_gearDown) %
QStringLiteral(" | flaps pct: ") % QString::number(m_flapsPercentage) %
QStringLiteral(" | spoilers out: ") % BlackMisc::boolToYesNo(m_spoilersOut) %
QStringLiteral(" | engines on: ") % m_engines.toQString(i18n);
}
QJsonObject CAircraftParts::toIncrementalJson() const

View File

@@ -68,6 +68,9 @@ namespace BlackMisc
//! Get aircraft lights
CAircraftLights getLights() const { return m_lights; }
//! Reference to lights, meant wor easy direct changes of the values
CAircraftLights &lights() { return m_lights; }
//! Set aircraft lights
void setLights(const CAircraftLights &lights) { m_lights = lights; }
@@ -98,6 +101,9 @@ namespace BlackMisc
//! Get engines
CAircraftEngineList getEngines() const { return m_engines; }
//! Direct access to engines, meant for simple value modifications
CAircraftEngineList &engines() { return m_engines; }
//! Engine with number
CAircraftEngine getEngine(int number) const;
@@ -120,9 +126,11 @@ namespace BlackMisc
void setOnGround(bool onGround) { m_isOnGround = onGround; }
//! Is aircraft on ground? (Smoothly interpolated between 0 and 1.)
//! \remark 1..on ground 0..not on ground
double isOnGroundInterpolated() const;
//! Set aircraft on ground. (Smoothly interpolated between 0 and 1.)
//! \remark 1..on ground 0..not on ground
void setOnGroundInterpolated(double onGround) { m_isOnGroundInterpolated = onGround; }
//! \copydoc BlackMisc::Mixin::String::toQString
@@ -135,9 +143,9 @@ namespace BlackMisc
CAircraftLights m_lights;
CAircraftEngineList m_engines;
int m_flapsPercentage = 0;
bool m_gearDown = false;
bool m_spoilersOut = false;
bool m_isOnGround = false;
bool m_gearDown = false;
bool m_spoilersOut = false;
bool m_isOnGround = false;
double m_isOnGroundInterpolated = -1;
BLACK_METACLASS(