2025-03-15 21:29:38 +01:00
import { t } from "./i18n/i18n" ;
2025-03-16 14:29:14 +01:00
import { OptionDef , OptionId } from "./types" ;
2025-03-15 21:29:38 +01:00
import { getSettingValue , setSettingValue } from "./settings" ;
2025-03-07 11:34:11 +01:00
export const options = {
2025-03-16 14:29:14 +01:00
sound : {
default : true ,
name : t ( 'main_menu.sounds' ) ,
help : t ( 'main_menu.sounds_help' ) ,
disabled : ( ) = > false ,
} ,
"mobile-mode" : {
default : window . innerHeight > window . innerWidth ,
name : t ( 'main_menu.mobile' ) ,
help : t ( 'main_menu.mobile_help' ) ,
disabled : ( ) = > false ,
} ,
basic : {
default : false ,
name : t ( 'main_menu.basic' ) ,
help : t ( 'main_menu.basic_help' ) ,
disabled : ( ) = > false ,
2025-03-07 11:34:11 +01:00
} ,
2025-03-16 14:29:14 +01:00
pointerLock : {
default : false ,
name : t ( 'main_menu.pointer_lock' ) ,
help : t ( 'main_menu.pointer_lock_help' ) ,
disabled : ( ) = > ! document . body . requestPointerLock ,
} ,
easy : {
default : false ,
name : t ( 'main_menu.kid' ) ,
help : t ( 'main_menu.kid_help' ) ,
disabled : ( ) = > false ,
} ,
// Could not get the sharing to work without loading androidx and all the modern android things so for now I'll just disable sharing in the android app
record : {
default : false ,
name : t ( 'main_menu.record' ) ,
help : t ( 'main_menu.record_help' ) ,
disabled() {
return window . location . search . includes ( "isInWebView=true" ) ;
} ,
2025-03-07 11:34:11 +01:00
} ,
2025-03-11 13:56:42 +01:00
} as const satisfies { [ k : string ] : OptionDef } ;
2025-03-07 11:34:11 +01:00
2025-03-15 21:29:38 +01:00
export function isOptionOn ( key : OptionId ) {
2025-03-16 14:29:14 +01:00
return getSettingValue ( "breakout-settings-enable-" + key , options [ key ] ? . default )
2025-03-15 21:29:38 +01:00
}
export function toggleOption ( key : OptionId ) {
2025-03-16 14:29:14 +01:00
setSettingValue ( "breakout-settings-enable-" + key , ! isOptionOn ( key ) )
2025-03-15 21:29:38 +01:00
}