aboutsummaryrefslogtreecommitdiff
path: root/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-04-25 20:27:53 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-04-25 20:27:53 -0500
commitd06dd9bf82040ad67a6f12fb92fb411770d63f28 (patch)
tree1bff8d00aea8a9b4a9eda3939c3187ee6935777d /libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
parent5a506edb574455ef111d48177497279394e18282 (diff)
Detect native-Linux Stardew Valley, default executables to no-Proton
Add IPluginGame::isNativeLinux() (virtual, default false) so a plugin can advertise that the discovered installation is a native Linux build. Bound through the Python plugin trampoline so basic_games subclasses can override it. Stardew Valley plugin: when the install dir contains the StardewValley launcher script and no Stardew Valley.exe, report isNativeLinux=true and return Linux-side binary names (StardewValley, StardewModdingAPI). Also fix GameDataPath to "Mods" — Linux ships the SMAPI mods dir with a capital M. ExecutablesList::getPluginExecutables: skip the UseProton flag when the plugin reports native Linux, so the spawn path falls into launchDirect() and the game runs without a Wine prefix.
Diffstat (limited to 'libs/plugin_python/src/mobase/wrappers/pyplugins.cpp')
-rw-r--r--libs/plugin_python/src/mobase/wrappers/pyplugins.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp b/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
index bcce0df..c744c7b 100644
--- a/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
+++ b/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
@@ -52,6 +52,7 @@ namespace mo2::python {
"settings"_a)
.def("listSaves", &IPluginGame::listSaves, "folder"_a)
.def("isInstalled", &IPluginGame::isInstalled)
+ .def("isNativeLinux", &IPluginGame::isNativeLinux)
.def("gameIcon", &IPluginGame::gameIcon)
.def("gameDirectory", &IPluginGame::gameDirectory)
.def("dataDirectory", &IPluginGame::dataDirectory)