aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/global.gd10
-rw-r--r--client/menu/character_menu.gd4
-rw-r--r--client/player/character/character.gd2
-rw-r--r--client/player/controllable_player.gd1
-rw-r--r--client/player/player.gd9
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