world: added settings to go online/power on/run on world load
Dieser Commit ist enthalten in:
Ursprung
373af31565
Commit
09e6798e73
@ -287,6 +287,24 @@ void Traintastic::loadWorldPath(const std::filesystem::path& path)
|
||||
#endif
|
||||
settings->lastWorld = world->uuid.value();
|
||||
Log::log(*this, LogMessage::N1027_LOADED_WORLD_X, world->name.value());
|
||||
|
||||
if(world->onlineWhenLoaded)
|
||||
{
|
||||
world->online();
|
||||
}
|
||||
|
||||
if(world->powerOnWhenLoaded)
|
||||
{
|
||||
if(world->runWhenLoaded)
|
||||
{
|
||||
world->run();
|
||||
}
|
||||
else
|
||||
{
|
||||
world->powerOn();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch(const LogMessageException& e)
|
||||
{
|
||||
|
||||
@ -127,6 +127,23 @@ World::World(Private /*unused*/) :
|
||||
name{this, "name", "", PropertyFlags::ReadWrite | PropertyFlags::Store | PropertyFlags::ScriptReadOnly},
|
||||
scale{this, "scale", WorldScale::H0, PropertyFlags::ReadWrite | PropertyFlags::Store | PropertyFlags::ScriptReadOnly, [this](WorldScale /*value*/){ updateScaleRatio(); }},
|
||||
scaleRatio{this, "scale_ratio", 87, PropertyFlags::ReadWrite | PropertyFlags::Store | PropertyFlags::ScriptReadOnly},
|
||||
onlineWhenLoaded{this, "online_when_loaded", false, PropertyFlags::ReadWrite | PropertyFlags::Store | PropertyFlags::NoScript},
|
||||
powerOnWhenLoaded{this, "power_on_when_loaded", false, PropertyFlags::ReadWrite | PropertyFlags::Store | PropertyFlags::NoScript,
|
||||
[this](bool value)
|
||||
{
|
||||
if(!value)
|
||||
{
|
||||
runWhenLoaded = false; // can't run without power
|
||||
}
|
||||
}},
|
||||
runWhenLoaded{this, "run_when_loaded", false, PropertyFlags::ReadWrite | PropertyFlags::Store | PropertyFlags::NoScript,
|
||||
[this](bool value)
|
||||
{
|
||||
if(value)
|
||||
{
|
||||
powerOnWhenLoaded = true; // can't run without power
|
||||
}
|
||||
}},
|
||||
decoderControllers{this, "input_controllers", nullptr, PropertyFlags::ReadOnly | PropertyFlags::SubObject | PropertyFlags::NoStore},
|
||||
inputControllers{this, "input_controllers", nullptr, PropertyFlags::ReadOnly | PropertyFlags::SubObject | PropertyFlags::NoStore},
|
||||
outputControllers{this, "output_controllers", nullptr, PropertyFlags::ReadOnly | PropertyFlags::SubObject | PropertyFlags::NoStore},
|
||||
@ -287,6 +304,10 @@ World::World(Private /*unused*/) :
|
||||
Attributes::addVisible(scaleRatio, false);
|
||||
m_interfaceItems.add(scaleRatio);
|
||||
|
||||
m_interfaceItems.add(onlineWhenLoaded);
|
||||
m_interfaceItems.add(powerOnWhenLoaded);
|
||||
m_interfaceItems.add(runWhenLoaded);
|
||||
|
||||
Attributes::addObjectEditor(decoderControllers, false);
|
||||
m_interfaceItems.add(decoderControllers);
|
||||
Attributes::addObjectEditor(inputControllers, false);
|
||||
|
||||
@ -99,6 +99,9 @@ class World : public Object
|
||||
Property<std::string> name;
|
||||
Property<WorldScale> scale;
|
||||
Property<double> scaleRatio;
|
||||
Property<bool> onlineWhenLoaded;
|
||||
Property<bool> powerOnWhenLoaded;
|
||||
Property<bool> runWhenLoaded;
|
||||
|
||||
ObjectProperty<ControllerList<DecoderController>> decoderControllers;
|
||||
ObjectProperty<ControllerList<InputController>> inputControllers;
|
||||
|
||||
@ -4394,6 +4394,17 @@
|
||||
{
|
||||
"term": "qtapp.about:traintastic_server",
|
||||
"definition": "About Traintastic server"
|
||||
},
|
||||
{
|
||||
"term": "world:online_when_loaded",
|
||||
"definition": "Go online when loaded"
|
||||
},
|
||||
{
|
||||
"term": "world:power_on_when_loaded",
|
||||
"definition": "Power on when loaded"
|
||||
},
|
||||
{
|
||||
"term": "world:run_when_loaded",
|
||||
"definition": "Run when loaded"
|
||||
}
|
||||
|
||||
]
|
||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren