|
extends Node
|
|
|
|
|
|
signal graphics_settings_changed(resolution: Vector2, fullscreen: bool, vsync: bool)
|
|
|
|
|
|
const BLOCK_PREFAB: PackedScene = preload("res://scenes/blocks/block.tscn")
|
|
const DROPPED_BLOCK_PREFAB: PackedScene = preload("res://scenes/blocks/dropped_block.tscn")
|
|
|
|
|
|
var enable_waila: bool = true ## Enable `What Am I Looking At` UI
|
|
var enable_block_highlight: bool = true
|
|
|
|
var graphics_settings: Dictionary[String, Variant] = {
|
|
"resolution": Vector2i.ZERO,
|
|
"fullscreen": false,
|
|
"vsync": false,
|
|
}
|
|
|
|
|
|
func _init() -> void:
|
|
graphics_settings_changed.connect(_on_graphics_settings_changed)
|
|
|
|
|
|
func apply_graphics_settings() -> void:
|
|
if graphics_settings.fullscreen:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
|
else:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
|
|
|
get_window().size = graphics_settings.resolution
|
|
|
|
if graphics_settings.vsync:
|
|
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED)
|
|
else:
|
|
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
|
|
|
|
|
|
func _on_graphics_settings_changed(resolution: Vector2i, fullscreen: bool, vsync: bool) -> void:
|
|
graphics_settings.resolution = resolution
|
|
graphics_settings.fullscreen = fullscreen
|
|
graphics_settings.vsync = vsync
|
|
|
|
apply_graphics_settings()
|