diff --git a/client/autoloads/gamestate.gd b/client/autoloads/gamestate.gd index 00fda5cecfa7925e49c4b045a2972f66dc4adecc..057fd9a877bb244e37f3744c248ab6c4ad5b759e 100644 --- a/client/autoloads/gamestate.gd +++ b/client/autoloads/gamestate.gd @@ -2,12 +2,8 @@ extends Node const GAMEPATH:String = "/root/game/" var players = {} -var pseudos = {} -var skins = {} var maxPlayers:int -var playerArgs = {} - enum {NOT_PLAYING=0, PLAYING=1, WAS_PLAYING=2} var isPlaying:int = NOT_PLAYING @@ -129,9 +125,10 @@ func startGame(players, pseudos, skins): # --- Called by network --- #Â Register the players of the same game func registerPlayer(networkId:int, pseudo:String, skinId:int): - self.players[networkId] = str(networkId) - self.pseudos[networkId] = pseudo - self.skins[networkId] = skinId + self.players[networkId] = { + "pseudo": pseudo, + "skin": skinId + } print("Player added to the game: ", networkId) diff --git a/client/entities/characters/player.gd b/client/entities/characters/player.gd index a8cbb6d1517076c5532a2342fefbd8af970486e6..bbb4a40d1034f69e191eb2acdf7638a283d30399 100644 --- a/client/entities/characters/player.gd +++ b/client/entities/characters/player.gd @@ -26,10 +26,10 @@ func setSkin(skinId:int): 5: "res://models/skins/metal.tres", 6: "res://models/skins/electro.tres" } - print("Set skinID: ", skinId) + if (skinId >= 0 && skinId <= 6): - var mesh = model.get_node("Armature/Mesh") - mesh.set_mesh(skins[skinId]) + var mesh = get_node("Model/Armature/Mesh") + mesh.set_mesh(load(skins[skinId])) # Turn character to the specified direction (-1,1) diff --git a/client/levels/test/game.gd b/client/levels/test/game.gd index 1290c78f9aed7e6a2782a55120331805d776b1a6..52a983b143146c4e102a2470154b0ef415c964ba 100644 --- a/client/levels/test/game.gd +++ b/client/levels/test/game.gd @@ -42,11 +42,11 @@ func _ready(): # get_tree().change_scene("res://scenes/levels/game/game.tscn") #Next evey player will spa every other player including the server's own client! Try to move this to server only - for i in range(len(gamestate.players)): + for peer_id in gamestate.players: var player:Node = player_scene.instance() - player.set_name(str(gamestate.players[i])) - player.setSkin(gamestate.skins[i]) + player.set_name(str(peer_id)) + player.setSkin(gamestate.players[peer_id]["skin"]) get_node("/root/game/").add_child(player) var playerArrow:Node = preload("res://entities/characters/playerArrow.tscn").instance()