diff options
author | tpart <tpart120@proton.me> | 2024-06-26 12:51:39 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2024-06-26 12:51:39 +0200 |
commit | 0e8c607ae4fa9e09b56bd0ab4c112dec668941ed (patch) | |
tree | 1c7a6c44b40cbbdb771498d6ad4b8ab24f05cd19 | |
parent | 5cfdd1ce41240b4b4ffff225cf8b70470f30f33d (diff) | |
download | hurrycurry-0e8c607ae4fa9e09b56bd0ab4c112dec668941ed.tar hurrycurry-0e8c607ae4fa9e09b56bd0ab4c112dec668941ed.tar.bz2 hurrycurry-0e8c607ae4fa9e09b56bd0ab4c112dec668941ed.tar.zst |
Make hairstyle visible in multiplayer; Refactor settings to use godot's built-in system
-rw-r--r-- | client/global.gd | 10 | ||||
-rw-r--r-- | client/menu/character_menu.gd | 4 | ||||
-rw-r--r-- | client/player/character/character.gd | 2 | ||||
-rw-r--r-- | client/player/controllable_player.gd | 1 | ||||
-rw-r--r-- | client/player/player.gd | 9 |
5 files changed, 17 insertions, 9 deletions
diff --git a/client/global.gd b/client/global.gd index 6d4cf4fc..70601eae 100644 --- a/client/global.gd +++ b/client/global.gd @@ -14,20 +14,22 @@ func _ready(): load_profile() func save_profile(): - print("Save profile") var f = FileAccess.open("user://profile", FileAccess.WRITE) - f.store_line(JSON.stringify(settings)) + f.store_var(settings.duplicate(true)) + + print("Saved settings: ", settings) func load_profile(): # TOCTOU here. Godot docs says its fine. if not FileAccess.file_exists("user://profile"): print("Skip profile load") return - print("Load profile") var f = FileAccess.open("user://profile", FileAccess.READ) - settings = JSON.parse_string(f.get_line()) + settings = f.get_var() # Add missing keys for k in DEFAULT_SETTINGS.keys(): if !settings.has(k): settings[k] = DEFAULT_SETTINGS[k] + + print("Loaded settings: ", settings) diff --git a/client/menu/character_menu.gd b/client/menu/character_menu.gd index 90bc9648..f4b878be 100644 --- a/client/menu/character_menu.gd +++ b/client/menu/character_menu.gd @@ -22,10 +22,6 @@ func _ready(): $VBoxContainer/top_panel/a/username.text = Global.settings["username"] character.select_hairstyle(Global.settings["character"]) -func _notification(what): - if what == NOTIFICATION_PREDELETE: - Global.save_profile() - func _on_back_pressed(): $SceneTransition.transition_to("res://menu/main_menu.tscn") diff --git a/client/player/character/character.gd b/client/player/character/character.gd index c6ca9b50..224eb356 100644 --- a/client/player/character/character.gd +++ b/client/player/character/character.gd @@ -60,6 +60,8 @@ func _process(delta): play_animation(next_animation) func select_hairstyle(id: int): + if id < 0: + id *= -1 # TODO: Select customer character var target = hairstyles.keys()[id] for k in hairstyles.keys(): if k == target: diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index c4691b67..903f22c7 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -34,6 +34,7 @@ func _ready(): timer.connect("timeout", func(): game.mp.send_position(position_, rotation_) ) + super() func _process(delta): var input = Vector2(Input.get_axis("left", "right"), Input.get_axis("forward", "backwards")).normalized() diff --git a/client/player/player.gd b/client/player/player.gd index 4a5cfa6a..4806b19d 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -32,12 +32,13 @@ var bubble: ChatBubble = preload("res://player/chat_bubble.tscn").instantiate() var hand: Item = null var hand_base: Node3D = Node3D.new() +var character_idx: int var _anim_angle: float = 0.0 const HAND_BASE_POSITION: Vector3 = Vector3(0, .25, .4) -func _init(_id: int, new_name: String, pos: Vector2, _character: int, new_game: Game): +func _init(_id: int, new_name: String, pos: Vector2, new_character_idx: int, new_game: Game): add_child(character) position_ = pos name = new_name @@ -47,6 +48,12 @@ func _init(_id: int, new_name: String, pos: Vector2, _character: int, new_game: add_child(hand_base) add_child(bubble) + + character_idx = new_character_idx + + +func _ready(): + character.select_hairstyle(character_idx) func update_position(new_position: Vector2, new_rotation: float): position_ = new_position |