Skip to content

Commit

Permalink
Merge pull request #709 from Zagrios/chore/rework-advanced-launch
Browse files Browse the repository at this point in the history
Chore/rework advanced launch
  • Loading branch information
Zagrios authored Dec 22, 2024
2 parents 8776b03 + a45af5b commit a3503a1
Show file tree
Hide file tree
Showing 26 changed files with 319 additions and 129 deletions.
10 changes: 7 additions & 3 deletions assets/jsons/translations/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "Ein unbekannter Fehler ist aufgetreten ¯\\_(ツ)_/¯",
"warning": "Achtung",
"continue": "Weiter",
"shared": "Geteilt"
"shared": "Geteilt",
"pin": "Anheften",
"unpin": "Lösen"
},
"title-bar": {
"outdated": "veraltet"
Expand All @@ -48,11 +50,13 @@
"debug-description": "Aktiviert das Ausgabeprotokollfenster für IPA. Dies zeigt die Debug-Konsole, welche die Mods verwenden.",
"outdated-tippy": "Diese Version ist veraltet, und einige Mods oder Funktionen funktionieren möglicherweise nicht wie erwartet. Es wird empfohlen, die empfohlene Version ({recommendedVersion}) von Beat Saber zu verwenden, um die neuesten Funktionen und Fehlerbehebungen zu genießen.",
"advanced-launch": {
"button": "Erweiterter Start",
"button": "Startoptionen",
"placeholder": "Weitere Argumente, bspw: --revert; --nowait"
},
"skipsteam": "Steam überspringen",
"skipsteam-description": "Verhindert, dass Steam automatisch mit Beat Saber geöffnet wird. Aktivieren Sie dies, wenn Sie eine andere VR-Laufzeit wie WiVRn oder Monado verwenden, mit der SteamVR interferieren könnte."
"skipsteam-description": "Verhindert, dass Steam automatisch mit Beat Saber geöffnet wird. Aktivieren Sie dies, wenn Sie eine andere VR-Laufzeit wie WiVRn oder Monado verwenden, mit der SteamVR interferieren könnte.",
"map-editor": "Karteneditor",
"map-editor-description": "Starte den offiziellen Beat Saber-Karteneditor anstelle des Spiels."
},
"maps": {
"search-bar": {
Expand Down
10 changes: 7 additions & 3 deletions assets/jsons/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "An unknown error occurred ¯\\_(ツ)_/¯",
"warning": "Warning",
"continue": "Continue",
"shared": "Shared"
"shared": "Shared",
"pin": "Pin",
"unpin": "Unpin"
},
"title-bar": {
"outdated": "outdated"
Expand All @@ -48,11 +50,13 @@
"debug-description": "Enables the output log window for IPA. This will show the debug console that mods use.",
"outdated-tippy": "This version is outdated, and some mods or features may no longer work as expected. Prefer using the recommended version ({recommendedVersion}) of Beat Saber to enjoy the latest features and bugfixes.",
"advanced-launch": {
"button": "Advanced launch",
"button": "Launch options",
"placeholder": "Additional arguments ex: --revert; --nowait"
},
"skipsteam": "Skip Steam",
"skipsteam-description": "Stops Steam from opening automatically with Beat Saber, enable if you are using a different VR runtime like WiVRn or Monado that SteamVR may interfere with."
"skipsteam-description": "Stops Steam from opening automatically with Beat Saber, enable if you are using a different VR runtime like WiVRn or Monado that SteamVR may interfere with.",
"map-editor": "Map Editor",
"map-editor-description": "Start the official Beat Saber map editor instead of the game."
},
"maps": {
"search-bar": {
Expand Down
10 changes: 7 additions & 3 deletions assets/jsons/translations/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "Se ha producido un error desconocido ¯\\_(ツ)_/¯",
"warning": "Advertencia",
"continue": "Continuar",
"shared": "Compartido"
"shared": "Compartido",
"pin": "Fijar",
"unpin": "Desfijar"
},
"title-bar": {
"outdated": "obsoleto"
Expand All @@ -48,7 +50,7 @@
"debug-description": "Habilita la ventana de registro de salida para IPA. Esto mostrará la consola de depuración que usan los mods.",
"outdated-tippy": "Esta versión está desactualizada, y algunos mods o funciones pueden no funcionar como se espera. Es mejor usar la versión recomendada ({recommendedVersion}) de Beat Saber para disfrutar de las últimas características y correcciones.",
"advanced-launch": {
"button": "Opciones avanzadas",
"button": "Opciones de lanzamiento",
"placeholder": "Argumentos adicionales ej: --revert; --no-wait"
}
},
Expand All @@ -62,7 +64,9 @@
"delete-duplicate-maps": "Borrar duplicados"
},
"skipsteam": "Saltar Steam",
"skipsteam-description": "Evita que Steam se abra automáticamente con Beat Saber, habilita esto si estás usando un runtime de VR diferente como WiVRn o Monado que SteamVR podría interferir."
"skipsteam-description": "Evita que Steam se abra automáticamente con Beat Saber, habilita esto si estás usando un runtime de VR diferente como WiVRn o Monado que SteamVR podría interferir.",
"map-editor": "Editor de mapas",
"map-editor-description": "Inicia el editor oficial de mapas de Beat Saber en lugar del juego."
},
"tabs": {
"maps": {
Expand Down
10 changes: 7 additions & 3 deletions assets/jsons/translations/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "Une erreur inconnue s'est produite ¯\\_(ツ)_/¯",
"warning": "Attention",
"continue": "Continuer",
"shared": "Partagé"
"shared": "Partagé",
"pin": "Épingler",
"unpin": "Désépingler"
},
"title-bar": {
"outdated": "obsolète"
Expand All @@ -48,11 +50,13 @@
"debug-description": "Active la fenêtre de log pour IPA. Cela affichera la console de débogage utilisée par les mods.",
"outdated-tippy": "Cette version est obsolète et certains mods ou fonctionnalités peuvent ne plus fonctionner comme prévu. Préférez utiliser la version recommandée ({recommendedVersion}) de Beat Saber pour profiter des dernières fonctionnalités et correctifs.",
"advanced-launch": {
"button": "Lancement avancé",
"button": "Options de lancement",
"placeholder": "Arguments supplémentaires ex: --revert; --nowait"
},
"skipsteam": "Ignorer Steam",
"skipsteam-description": "Empêche Steam de s'ouvrir automatiquement avec Beat Saber, activez-le si vous utilisez un autre runtime VR comme WiVRn ou Monado avec lequel SteamVR pourrait interférer."
"skipsteam-description": "Empêche Steam de s'ouvrir automatiquement avec Beat Saber, activez-le si vous utilisez un autre runtime VR comme WiVRn ou Monado avec lequel SteamVR pourrait interférer.",
"map-editor": "Éditeur de map",
"map-editor-description": "Lance l'éditeur officiel de map de Beat Saber au lieu du jeu."
},
"maps": {
"search-bar": {
Expand Down
6 changes: 4 additions & 2 deletions assets/jsons/translations/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "不明なエラーが発生しました (´・ω・`)",
"warning": "警告",
"continue": "続ける",
"shared": "共有"
"shared": "共有",
"pin": "固定",
"unpin": "固定解除"
},
"title-bar": {
"outdated": "時代遅れ"
Expand All @@ -48,7 +50,7 @@
"debug-description": "IPAの出力ログウィンドウを有効にします。これはMODのデバッグコンソールを表示します。",
"outdated-tippy": "このバージョンは古いため、一部のMODや機能が期待通りに動作しない可能性があります。最新の機能やバグ修正を楽しむには、推奨バージョン ({recommendedVersion}) のBeat Saberを使用することをお勧めします。",
"advanced-launch": {
"button": "高度な起動",
"button": "起動オプション",
"placeholder": "追加引数 例:--revert; --nowait"
},
"skipsteam": "Steamをスキップ",
Expand Down
10 changes: 7 additions & 3 deletions assets/jsons/translations/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "알 수 없는 오류가 발생했습니다 (´・ω・`)",
"warning": "경고",
"continue": "계속",
"shared": "공유"
"shared": "공유",
"pin": "고정",
"unpin": "고정 해제"
},
"title-bar": {
"outdated": "구식"
Expand All @@ -48,11 +50,13 @@
"debug-description": "IPA 출력 로그 창을 활성화하여 MOD의 디버그 콘솔을 표시합니다.",
"outdated-tippy": "이 버전은 오래되어 일부 모드나 기능이 예상대로 작동하지 않을 수 있습니다. 최신 기능과 버그 수정을 사용하려면 권장 버전({recommendedVersion})의 Beat Saber를 사용하는 것이 좋습니다.",
"advanced-launch": {
"button": "고급 실행",
"button": "실행 옵션",
"placeholder": "추가 인수 예: --revert; --nowait"
},
"skipsteam": "Steam 실행 건너뛰기",
"skipsteam-description": "Beat Saber와 함께 Steam이 자동으로 열리는 것을 방지합니다. SteamVR이 간섭할 수 있는 WiVRn 또는 Monado와 같은 다른 VR 런타임을 사용하는 경우 활성화하세요."
"skipsteam-description": "Beat Saber와 함께 Steam이 자동으로 열리는 것을 방지합니다. SteamVR이 간섭할 수 있는 WiVRn 또는 Monado와 같은 다른 VR 런타임을 사용하는 경우 활성화하세요.",
"map-editor": "맵 편집기",
"map-editor-description": "게임 대신 공식 Beat Saber 맵 편집기를 실행해."
},
"maps": {
"search-bar": {
Expand Down
10 changes: 7 additions & 3 deletions assets/jsons/translations/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "Неизвестная ошибка ¯\\_(ツ)_/¯",
"warning": "Внимание",
"continue": "Продолжить",
"shared": "Общий"
"shared": "Общий",
"pin": "Закрепить",
"unpin": "Открепить"
},
"title-bar": {
"outdated": "устаревший"
Expand All @@ -48,11 +50,13 @@
"debug-description": "Включает окно логов для IPA. В окне будут отображаться логи модов.",
"outdated-tippy": "Эта версия устарела, и некоторые моды или функции могут работать не так, как ожидалось. Рекомендуется использовать рекомендуемую версию ({recommendedVersion}) Beat Saber, чтобы воспользоваться последними функциями и исправлениями ошибок.",
"advanced-launch": {
"button": "Расширенный запуск",
"button": "Параметры запуска",
"placeholder": "Параметры запуска, например: --revert; --nowait"
},
"skipsteam": "Пропустить Steam",
"skipsteam-description": "Предотвращает автоматическое открытие Steam с Beat Saber, включите, если вы используете другую VR-среду, такую как WiVRn или Monado, с которой SteamVR может мешать."
"skipsteam-description": "Предотвращает автоматическое открытие Steam с Beat Saber, включите, если вы используете другую VR-среду, такую как WiVRn или Monado, с которой SteamVR может мешать.",
"map-editor": "Редактор карт",
"map-editor-description": "Запусти официальный редактор карт Beat Saber вместо игры."
},
"maps": {
"search-bar": {
Expand Down
10 changes: 7 additions & 3 deletions assets/jsons/translations/zh-tw.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"unknown": "發生了一個錯誤 ¯\\_(ツ)_/¯",
"warning": "警告",
"continue": "繼續",
"shared": "共享"
"shared": "共享",
"pin": "固定",
"unpin": "取消固定"
},
"title-bar": {
"outdated": "過時"
Expand All @@ -48,11 +50,13 @@
"debug-description": "為 IPA 啟用輸出日誌窗口。 會顯示所用 Mod 的 debug 輸出",
"outdated-tippy": "此版本已過時,某些模組或功能可能無法按預期運作。建議使用推薦版本的 Beat Saber ({recommendedVersion}),以享受最新功能和修復。",
"advanced-launch": {
"button": "高級啟動",
"button": "啟動選項",
"placeholder": "額外啟動參數,例如: --revert; --nowait"
},
"skipsteam": "跳過 Steam",
"skipsteam-description": "防止 Steam 與 Beat Saber 自動打開,如果您使用的是其他 VR 執行時,如 WiVRn 或 Monado,SteamVR 可能會干擾,請啟用此選項。"
"skipsteam-description": "防止 Steam 與 Beat Saber 自動打開,如果您使用的是其他 VR 執行時,如 WiVRn 或 Monado,SteamVR 可能會干擾,請啟用此選項。",
"map-editor": "地圖編輯器",
"map-editor-description": "啟動官方的 Beat Saber 地圖編輯器,而不是遊戲。"
},
"maps": {
"search-bar": {
Expand Down
10 changes: 7 additions & 3 deletions assets/jsons/translations/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"Unknown": "发生了一个错误 ¯\\_(ツ)_/¯",
"warning": "警告",
"continue": "继续",
"shared": "共享"
"shared": "共享",
"pin": "固定",
"unpin": "取消固定"
},
"title-bar": {
"outdated": "过时"
Expand All @@ -48,11 +50,13 @@
"debug-description": "为 IPA 启用输出日志窗口。 会显示所用 Mod 的 debug 输出",
"outdated-tippy": "此版本已过时,某些模组或功能可能无法按预期运行。建议使用推荐版本的 Beat Saber ({recommendedVersion}),以享受最新功能和修复。",
"advanced-launch": {
"button": "高级启动",
"button": "启动选项",
"placeholder": "额外启动参数,例如: --revert; --nowait"
},
"skipsteam": "跳过 Steam",
"skipsteam-description": "防止 Steam 与 Beat Saber 自动打开,如果您使用的是其他 VR 运行时,如 WiVRn 或 Monado,SteamVR 可能会干扰,请启用此选项。"
"skipsteam-description": "防止 Steam 与 Beat Saber 自动打开,如果您使用的是其他 VR 运行时,如 WiVRn 或 Monado,SteamVR 可能会干扰,请启用此选项。",
"map-editor": "地图编辑器",
"map-editor-description": "启动官方的 Beat Saber 地图编辑器,而不是游戏。"
},
"maps": {
"search-bar": {
Expand Down
11 changes: 8 additions & 3 deletions src/main/services/bs-launcher/abstract-launcher.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { sToMs } from "../../../shared/helpers/time.helpers";
import { LinuxService } from "../linux.service";
import { bsmSpawn } from "main/helpers/os.helpers";
import { IS_FLATPAK } from "main/constants";
import { LaunchMods } from "shared/models/bs-launch/launch-option.interface";

export abstract class AbstractLauncherService {

Expand All @@ -24,16 +25,20 @@ export abstract class AbstractLauncherService {
if(!launchOptions.version.steam && !launchOptions.version.oculus){
launchArgs.push("--no-yeet")
}
if (launchOptions.oculus) {
if(launchOptions.launchMods?.includes(LaunchMods.OCULUS)) {
launchArgs.push("-vrmode");
launchArgs.push("oculus");
}
if (launchOptions.desktop) {
if(launchOptions.launchMods?.includes(LaunchMods.FPFC)) {
launchArgs.push("fpfc");
}
if (launchOptions.debug) {
if(launchOptions.launchMods?.includes(LaunchMods.DEBUG)) {
launchArgs.push("--verbose");
}
if(launchOptions.launchMods?.includes(LaunchMods.EDITOR)) {
launchArgs.push("editor");
}

if (launchOptions.additionalArgs) {
launchArgs.push(...launchOptions.additionalArgs);
}
Expand Down
22 changes: 14 additions & 8 deletions src/main/services/bs-launcher/bs-launcher.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { SteamLauncherService } from "./steam-launcher.service";
import { OculusLauncherService } from "./oculus-launcher.service";
import { BSVersion } from "shared/bs-version.interface";
import { BsStore } from "../../../shared/models/bs-store.enum";
import { LaunchMod, LaunchMods } from "shared/models/bs-launch/launch-option.interface";

export class BSLauncherService {
private static instance: BSLauncherService;
Expand Down Expand Up @@ -94,6 +95,14 @@ export class BSLauncherService {
}

private shortcutParamsToLaunchOption(params: ShortcutParams): LaunchOption{

const launchMods: LaunchMod[] = [];

if(params.oculusMode === "true"){ launchMods.push(LaunchMods.OCULUS); }
if(params.desktopMode === "true"){ launchMods.push(LaunchMods.FPFC); }
if(params.debug === "true"){ launchMods.push(LaunchMods.DEBUG); }
if(params.skipSteam === "true"){ launchMods.push(LaunchMods.SKIP_STEAM); }

const res: LaunchOption = {
version: {
BSVersion: params.version,
Expand All @@ -102,11 +111,8 @@ export class BSLauncherService {
oculus: params.versionOculus === "true",
ino: +params.versionIno
},
oculus: params.oculusMode === "true",
desktop: params.desktopMode === "true",
debug: params.debug === "true",
additionalArgs: params.additionalArgs,
skipSteam: params.skipSteam === "true",
launchMods,
};

return res;
Expand All @@ -120,11 +126,11 @@ export class BSLauncherService {
if(launchOptions.version.oculus){ res.versionOculus = `${launchOptions.version.oculus}`; }
if(launchOptions.version.ino){ res.versionIno = `${launchOptions.version.ino}`; }

if(launchOptions.oculus){ res.oculusMode = "true"; }
if(launchOptions.desktop){ res.desktopMode = "true"; }
if(launchOptions.debug){ res.debug = "true"; }
if(launchOptions.launchMods?.includes(LaunchMods.OCULUS)){ res.oculusMode = "true"; }
if(launchOptions.launchMods?.includes(LaunchMods.FPFC)){ res.desktopMode = "true"; }
if(launchOptions.launchMods?.includes(LaunchMods.DEBUG)){ res.debug = "true"; }
if(launchOptions.additionalArgs){ res.additionalArgs = launchOptions.additionalArgs; }
if(launchOptions.skipSteam){ res.skipSteam = "true"; }
if(launchOptions.launchMods?.includes(LaunchMods.SKIP_STEAM)){ res.skipSteam = "true"; }

return res;
}
Expand Down
Loading

0 comments on commit a3503a1

Please sign in to comment.