WindowChanger.gd 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. extends Node
  2. func window_mode_changed(new_value := 0) -> void:
  3. match new_value:
  4. 0:
  5. DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
  6. DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, false)
  7. 1:
  8. DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
  9. DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
  10. 2:
  11. DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
  12. DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
  13. Settings.file.video.mode = new_value
  14. func null_function(_fuck_you := 0) -> void:
  15. pass
  16. func window_size_changed(new_value := 0) -> void:
  17. get_tree().root.content_scale_aspect = Window.CONTENT_SCALE_ASPECT_EXPAND if new_value == 1 else Window.CONTENT_SCALE_ASPECT_KEEP
  18. Settings.file.video.size = new_value
  19. func vsync_changed(new_value := 0) -> void:
  20. DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if new_value == 1 else DisplayServer.VSYNC_DISABLED)
  21. Settings.file.video.vsync = new_value
  22. func drop_shadows_changed(new_value := 0) -> void:
  23. Settings.file.video.drop_shadows = new_value
  24. func scaling_changed(new_value := 0) -> void:
  25. get_tree().root.content_scale_stretch = Window.CONTENT_SCALE_STRETCH_INTEGER if new_value == 0 else Window.CONTENT_SCALE_STRETCH_FRACTIONAL
  26. Settings.file.video.scaling = new_value
  27. func visuals_changed(new_value := 0) -> void:
  28. get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_VIEWPORT if new_value == 0 else Window.CONTENT_SCALE_MODE_CANVAS_ITEMS
  29. RenderingServer.viewport_set_snap_2d_transforms_to_pixel(get_tree().root.get_viewport_rid(), not new_value)
  30. Settings.file.video.visuals = new_value
  31. func hud_style_changed(new_value := 0) -> void:
  32. Settings.file.video.hud_size = new_value
  33. func language_changed(new_value := 0) -> void:
  34. TranslationServer.set_locale(Global.lang_codes[new_value])
  35. Settings.file.game.lang = Global.lang_codes[new_value]
  36. %Flag.region_rect.position.x = new_value * 16
  37. func set_value(value_name := "", value := 0) -> void:
  38. {
  39. "mode": window_mode_changed,
  40. "size": window_size_changed,
  41. "vsync": vsync_changed,
  42. "drop_shadows": drop_shadows_changed,
  43. "scaling": scaling_changed,
  44. "visuals": visuals_changed,
  45. "palette": null_function,
  46. "hud_size": hud_style_changed,
  47. "hud_style": hud_style_changed
  48. }[value_name].call(value)