extends Control var power_throttle_timeout: float onready var popup := get_node("/root/main/popup") as ModalPopup onready var file_picker := get_node("/root/main/file_picker") as FileDialog onready var stage := get_node("/root/main/stage") as Stage onready var database := get_node("/root/main/database") as Database onready var controls_sensible_to_keyboard := [ self, file_picker, ] func _init(): Physics2DServer.set_active(false) PhysicsServer.set_active(false) if OS.get_name() == "Android": var permissions := Array(OS.get_granted_permissions()) if permissions.has("android.permission.READ_EXTERNAL_STORAGE") == false \ or permissions.has("android.permission.WRITE_EXTERNAL_STORAGE") == false: OS.request_permissions() func _ready(): Input.set_use_accumulated_input(false) func _process(delta: float): var keyboard_height: int = OS.get_virtual_keyboard_height() for it in controls_sensible_to_keyboard: it.margin_bottom = -keyboard_height if power_throttle_timeout > 0.0: power_throttle_timeout -= delta else: Engine.target_fps = 10 func _input(event: InputEvent): Engine.target_fps = 0 power_throttle_timeout = 3.5 func _unhandled_input(event: InputEvent): Engine.target_fps = 0 power_throttle_timeout = 3.5 func _notification(what: int): if what == MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST: if popup.visible: popup.call_deferred("dismiss") elif file_picker.visible: file_picker.hide() elif stage.visible: stage.discard_action() elif database.selected_idx != -1: database.clear_selection() else: get_tree().quit()