From 096b505cfacf0b3cbffc7ade5338492ac6d67477 Mon Sep 17 00:00:00 2001 From: derek Date: Thu, 27 Feb 2025 17:06:49 -0600 Subject: [PATCH] added leaderboard drop down menu and started on leaderboard test --- MainMenu.tscn | 73 +++++++++++++++--- ...k-hand-drawn-scribble-line_78370-1424.avif | Bin 0 -> 10308 bytes ...k-hand-drawn-scribble-line_78370-1424.avif | Bin 0 -> 10308 bytes scripts/LevelManager.gd | 4 +- scripts/game_globals.gd | 6 +- scripts/main_menu.gd | 32 +++++--- scripts/playlist_generator.gd | 8 +- scripts/save_load.gd | 64 +++++++++++---- 8 files changed, 145 insertions(+), 42 deletions(-) create mode 100644 assets/Shaders/check-mark-hand-drawn-scribble-line_78370-1424.avif create mode 100644 check-mark-hand-drawn-scribble-line_78370-1424.avif diff --git a/MainMenu.tscn b/MainMenu.tscn index f00cfe9..3486d51 100644 --- a/MainMenu.tscn +++ b/MainMenu.tscn @@ -1,9 +1,16 @@ -[gd_scene load_steps=5 format=3 uid="uid://sa1d1rftyn87"] +[gd_scene load_steps=9 format=3 uid="uid://sa1d1rftyn87"] [ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_haaol"] [ext_resource type="PackedScene" uid="uid://dpootbr7qgac1" path="res://Tools/playlist_generator.tscn" id="2_2rg1o"] [ext_resource type="Theme" uid="uid://clek42ofxr45f" path="res://DefaultTheme.tres" id="2_3fflq"] [ext_resource type="FontFile" uid="uid://d2h2tjhxiv5wo" path="res://assets/fonts/White On Black.ttf" id="2_ac165"] +[ext_resource type="Theme" uid="uid://buma708jpxqrn" path="res://Clean_theme.tres" id="4_ydrbj"] +[ext_resource type="Shader" path="res://assets/Shaders/blur.gdshader" id="6_x75tm"] +[ext_resource type="Texture2D" uid="uid://bt6utik8unkxa" path="res://assets/Textures/ObjectTextures/money.png" id="7_ia0hc"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_htvli"] +shader = ExtResource("6_x75tm") +shader_parameter/strength = 1.0 [node name="MainMenu" type="Control" groups=["ui"]] layout_mode = 3 @@ -44,16 +51,17 @@ layout_mode = 2 size_flags_vertical = 3 alignment = 1 -[node name="leaderboard_name" type="TextEdit" parent="MarginContainer/VBoxContainer/HBoxContainer"] -clip_contents = false +[node name="OptionButton" type="OptionButton" parent="MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 -size_flags_horizontal = 3 theme = ExtResource("2_3fflq") -theme_override_font_sizes/font_size = 51 -placeholder_text = "Leaderboard name" +selected = 0 +item_count = 1 +popup/item_0/text = "Global" -[node name="Confirmed" type="CheckButton" parent="MarginContainer/VBoxContainer/HBoxContainer"] +[node name="Add Leaderboard" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 +theme = ExtResource("4_ydrbj") +text = "+" [node name="Continue" type="Button" parent="MarginContainer/VBoxContainer"] layout_mode = 2 @@ -67,7 +75,54 @@ theme_override_fonts/font = ExtResource("2_ac165") theme_override_font_sizes/font_size = 150 text = "exit" -[connection signal="text_changed" from="MarginContainer/VBoxContainer/HBoxContainer/leaderboard_name" to="." method="_on_leaderboard_name_text_changed"] -[connection signal="toggled" from="MarginContainer/VBoxContainer/HBoxContainer/Confirmed" to="." method="_on_confirmed_toggled"] +[node name="Add Leaderboard Menu" type="Control" parent="."] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="ColorRect" type="ColorRect" parent="Add Leaderboard Menu"] +material = SubResource("ShaderMaterial_htvli") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.737255) + +[node name="MarginContainer" type="MarginContainer" parent="Add Leaderboard Menu"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -300.0 +offset_top = -75.0 +offset_right = 300.0 +offset_bottom = 75.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="Add Leaderboard Menu/MarginContainer"] +layout_mode = 2 + +[node name="TextEdit" type="TextEdit" parent="Add Leaderboard Menu/MarginContainer/HBoxContainer"] +custom_minimum_size = Vector2(800, 0) +layout_mode = 2 +size_flags_vertical = 3 +theme = ExtResource("2_3fflq") +theme_override_font_sizes/font_size = 41 +placeholder_text = "Leaderboard Name" + +[node name="Button" type="Button" parent="Add Leaderboard Menu/MarginContainer/HBoxContainer"] +layout_mode = 2 +icon = ExtResource("7_ia0hc") + +[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/Add Leaderboard" to="." method="_on_add_leaderboard_pressed"] [connection signal="pressed" from="MarginContainer/VBoxContainer/Continue" to="." method="_on_continue_pressed"] [connection signal="pressed" from="MarginContainer/VBoxContainer/Exit" to="." method="_on_exit_pressed"] diff --git a/assets/Shaders/check-mark-hand-drawn-scribble-line_78370-1424.avif b/assets/Shaders/check-mark-hand-drawn-scribble-line_78370-1424.avif new file mode 100644 index 0000000000000000000000000000000000000000..b48f21c5fa369a5cce9545551f5209edbf5aed1a GIT binary patch literal 10308 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 void: SaveLoad.load_persistent_data() @@ -12,18 +16,18 @@ func _enter_tree() -> void: # Called when the node enters the scene tree for the first time. func _ready() -> void: - confirmed.button_pressed = true - leaderboard_name.text = GameGlobals.leaderboard_name playlist_generator.load_playlist() - print("leaderboard : ",GameGlobals.leaderboard_name) + option_button.clear() + for i in GameGlobals.all_user_leaderboards[GameGlobals.user_id]: + option_button.add_item(i) + option_button.selected = GameGlobals.last_leaderboard_id + continue_text_check() func _on_continue_pressed() -> void: var level var load_to_gamemode - if GameGlobals.leaderboard_name != leaderboard_name.text: - GameGlobals.leaderboard_name = leaderboard_name.text playlist_generator.load_playlist() @@ -36,14 +40,20 @@ func _on_continue_pressed() -> void: load_to_gamemode = GameGlobals.current_gamemode SaveLoad.save_persistent_data() - + SaveLoad.load_user_data() + SaveLoad.save_user_data() get_tree().change_scene_to_file(level) print("LEVEL : ",GameGlobals.current_level) func _on_exit_pressed() -> void: get_tree().quit() +func continue_text_check(): + if SaveLoad.check_user_data_exists(): + continue_button.text = "Continue" + else: + continue_button.text = "New Game" -func _on_leaderboard_name_text_changed() -> void: - GameGlobals.leaderboard_name = leaderboard_name.text - confirmed.button_pressed = false + +func _on_add_leaderboard_pressed() -> void: + add_leaderboard_menu.visible = true diff --git a/scripts/playlist_generator.gd b/scripts/playlist_generator.gd index 4afe380..0ad8683 100644 --- a/scripts/playlist_generator.gd +++ b/scripts/playlist_generator.gd @@ -24,7 +24,7 @@ func _process(delta: float) -> void: func generate_playlist() -> void: - var playlist_name = only_valid_chars(GameGlobals.leaderboard_name) + var playlist_name = only_valid_chars(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]) var playlist = [] print("PLAYLIST CREATED FOR THE : ",playlist_name) for i in rounds: @@ -55,15 +55,15 @@ func only_valid_chars(input_string: String) -> String: return valid_chars func save_playlist(playlist): - var playlist_name = str(only_valid_chars(GameGlobals.leaderboard_name)) + var playlist_name = str(only_valid_chars(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id])) var playlist_path : String = "user://"+ playlist_name + "_playlist.save" var file = FileAccess.open(playlist_path, FileAccess.WRITE) - file.store_var(only_valid_chars(GameGlobals.leaderboard_name)) + file.store_var(only_valid_chars(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id])) file.store_var(playlist) file.close() func load_playlist(): - var playlist_path : String = "user://" + str(only_valid_chars(GameGlobals.leaderboard_name)) + "_playlist.save" + var playlist_path : String = "user://" + str(only_valid_chars(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id])) + "_playlist.save" if FileAccess.file_exists(playlist_path): var file = FileAccess.open(playlist_path, FileAccess.READ) var key = file.get_var() diff --git a/scripts/save_load.gd b/scripts/save_load.gd index 2ed7220..21bd112 100644 --- a/scripts/save_load.gd +++ b/scripts/save_load.gd @@ -13,27 +13,41 @@ var current_ammo var reserve_ammo ## SAVE DATA PATHS - +var persistent_data_save_path = "user://persistent_data.save" func _ready() -> void: SignalBus.shot_fired.connect(shot_fired) func save_persistent_data(): - var file = FileAccess.open("user://persistent_data.save", FileAccess.WRITE) + var file = FileAccess.open(persistent_data_save_path, FileAccess.WRITE) + file.store_var(GameGlobals.user_id) - var all_user_leaderboards_file = [] - for i in GameGlobals.all_user_leaderboards: - all_user_leaderboards_file.append(GameGlobals.current_user_leaderboards) + file.store_var(GameGlobals.last_leaderboard_id) + file.store_var(GameGlobals.user_names) + file.store_var(GameGlobals.all_user_leaderboards) + file.close() func load_persistent_data(): - var file = FileAccess.open("user://persistent_data.save", FileAccess.WRITE) - GameGlobals.user_id = file.get_var() - GameGlobals.all_user_leaderboards = file.get_var() - file.close() + if FileAccess.file_exists(persistent_data_save_path): + var file = FileAccess.open(persistent_data_save_path, FileAccess.READ) + + var user_id = file.get_var() + var last_leaderboard_id = file.get_var() + var user_names = file.get_var() + var all_user_leaderboards = file.get_var() + + GameGlobals.user_id = str(user_id) + GameGlobals.last_leaderboard_id = str(last_leaderboard_id) + GameGlobals.user_names = user_names + GameGlobals.all_user_leaderboards = all_user_leaderboards + + file.close() + else: + print("No file found...") func save_user_data(): - var user_save_path = str("user://user_",GameGlobals.user_id,"_data.save") + var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.leaderboard_name),"_leaderboard","_data.save") var file = FileAccess.open(user_save_path, FileAccess.WRITE) #cache data before saving and creating checksum in case it changes between data saving and checksum generating @@ -65,12 +79,19 @@ func save_user_data(): file.close() +func check_user_data_exists(): + var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]),"_leaderboard","_data.save") + if FileAccess.file_exists(user_save_path): + return true + else: + return false + func load_user_data(): - var user_save_path = str("user://user_",GameGlobals.user_id,"_data.save") + var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]),"_leaderboard","_data.save") if FileAccess.file_exists(user_save_path): var file = FileAccess.open(user_save_path, FileAccess.READ) GameGlobals.last_hit_path = file.get_var() - GameGlobals.leaderboard_name = file.get_var() + var file_leaderboard_name = file.get_var() GameGlobals.current_level = str(file.get_var()) var money = set_nulls_zero(file.get_var()) var deposited_money = set_nulls_zero(file.get_var()) @@ -82,6 +103,12 @@ func load_user_data(): var held_guns_encoded = file.get_var() + GameGlobals.money = money + GameGlobals.deposited_money = deposited_money + GameGlobals.health = health + GameGlobals.high_score = high_score + GameGlobals.player_deaths = player_deaths + GameGlobals.shots_fired = shots_fired GameGlobals.held_guns = load_resource_path(held_guns_encoded) GameGlobals.gun_ammo = file.get_var() GameGlobals.ammo_reserve = file.get_var() @@ -92,7 +119,7 @@ func load_user_data(): var checksum = file.get_var() print("Checksum : ",checksum) - var check_data = [user_save_path,GameGlobals.leaderboard_name,money,deposited_money,health,high_score,player_deaths,shots_fired] + var check_data = [user_save_path,file_leaderboard_name,money,deposited_money,health,high_score,player_deaths,shots_fired] print("CHECK DATA : ",check_data) print("CHECKSUM CALC : ",HelperFuncs.checksum(check_data)) file.close() @@ -103,6 +130,16 @@ func load_user_data(): print("DATA NOT VALID") else: print("no data saved...") + GameGlobals.money = 0 + GameGlobals.deposited_money = 0 + GameGlobals.health = 10 + GameGlobals.high_score = 0 + GameGlobals.player_deaths = 0 + GameGlobals.shots_fired = 0 + GameGlobals.held_guns = [] + GameGlobals.gun_ammo = {} + GameGlobals.ammo_reserve = {} + GameGlobals.current_gun_index = 0 func save_game_data(level_name): @@ -130,7 +167,6 @@ func save_game_data(level_name): file.store_line(json_string) file.close() - save_persistent_data() func check_save_game_exists(level_name): var game_save_path = str("user://",GameGlobals.leaderboard_name,"_",level_name,"_gamesave.save")