diff options
Diffstat (limited to 'client/global.gd')
-rw-r--r-- | client/global.gd | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/client/global.gd b/client/global.gd index a47cff12..2ee550b0 100644 --- a/client/global.gd +++ b/client/global.gd @@ -25,14 +25,15 @@ var default_profile := { "username": "Giovanni", "character": 0, "last_server_url": "", - # HINTS: - "has_seen_nametags": false, - "has_moved": false, - "has_boosted": false, - "has_interacted": false, - "has_rotated": false, - "has_reset": false, - "has_zoomed": false + "hints": { + "has_seen_nametags": false, + "has_moved": false, + "has_boosted": false, + "has_interacted": false, + "has_rotated": false, + "has_reset": false, + "has_zoomed": false + } } var languages := [tr("System default"), "en", "de"] var using_joypad := false @@ -56,6 +57,7 @@ var default_settings := { "debug_info": ToggleSetting.new(tr("Display debug info (Framerate, etc.)"), false), "grass_amount": RangeSetting.new(tr("3D grass amount per grass tile"), 16, 0, 32), "setup_complete": ToggleSetting.new(tr("Initial setup complete. (Uncheck and restart to reenter)"), false), + "tutorial_started": ToggleSetting.new(tr("Tutorial started. (Uncheck and restart to replay)"), false), "latch_boost": ToggleSetting.new(tr("Always extend boost to maximum duration"), true) } @@ -71,17 +73,17 @@ func _ready(): profile = load_dict("user://profile", default_profile) load_settings("user://settings") apply_settings() - + get_viewport().gui_focus_changed.connect(Sound.play_hover_maybe) get_viewport().gui_focus_changed.connect(func (node): focused_node = node) - + func _input(event): if Input.is_action_just_pressed("fullscreen"): Global.set_setting("fullscreen", not Global.get_setting("fullscreen")) save_settings() update_fullscreen() - + # Update using_joypad variable if event is InputEventMouseButton or event is InputEventKey: if using_joypad: @@ -95,7 +97,7 @@ func _input(event): func apply_settings(): update_fullscreen() update_language() - + # Anti-aliasing match get_setting("aa"): 0: @@ -114,12 +116,12 @@ func apply_settings(): get_viewport().msaa_2d = Viewport.MSAA_4X get_viewport().msaa_3d = Viewport.MSAA_4X get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED - + # Temporal Anti-aliasing get_viewport().use_taa = get_setting("taa") - + emit_signal("settings_changed") - + # UI scale match get_setting("ui_scale"): 0: @@ -127,6 +129,10 @@ func apply_settings(): 1: get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED + if not get_setting("tutorial_started"): + for k in profile["hints"].keys(): + set_profile(k, false) + func update_language(): var lang_idx: int = get_setting("language") var lang = languages[lang_idx] @@ -229,6 +235,23 @@ func set_profile(key: String, value): profile[key] = value save_profile() + +func set_hint(key: String, value: bool): + if !profile["hints"].has(key): + push_error("Tried to set hint \"%s\", which does not yet exist (missing key)" % key) + if profile["hints"][key] != value: + if value: + set_setting("tutorial_started", true) + profile["hints"][key] = value + save_profile() + +func get_hint(key: String): + if profile["hints"].has(key): + return profile["hints"][key] + else: + push_error("Tried to access hint \"%s\", which does not exist (missing key)" % key) + return null + static func interpolate(current, target, dt): return target + (current - target) * exp(-dt) |