diff --git a/scripts/Contents/Panels/Starter.gd b/scripts/Contents/Panels/Starter.gd index 3ce0920..cb71bb9 100644 --- a/scripts/Contents/Panels/Starter.gd +++ b/scripts/Contents/Panels/Starter.gd @@ -63,7 +63,6 @@ func startMultiplayerGame(): func startSingleplayerGame(): MultiplayerState.isMultiplayer = false EntityBase.generatePlayer(playerNameInput.text) - UIState.player = EntityBase.findPlayer(playerNameInput.text) WorldManager.rootNode.spawnWave() UIState.closeCurrentPanel() diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index 59224a1..898b344 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -117,6 +117,8 @@ func _ready(): statebar = selfStatebar statebar.entity = self if isPlayer(): + if displayName == MultiplayerState.playerName: + UIState.player = self for i in weaponStore.get_children(): i.hide() weapons.append(i) diff --git a/scripts/Tools/ArrayTool.gd b/scripts/Tools/ArrayTool.gd index 793ad20..5927f5a 100644 --- a/scripts/Tools/ArrayTool.gd +++ b/scripts/Tools/ArrayTool.gd @@ -1,13 +1,21 @@ class_name ArrayTool static func removeAll(array: Array, value) -> Array: - var result = [] - for item in array: - if item != value: - result.append(item) - return result + var result = [] + for item in array: + if item != value: + result.append(item) + return result static func swap(array: Array, a: int, b: int): - var temp = array[a] - array[a] = array[b] - array[b] = temp - return array + var temp = array[a] + array[a] = array[b] + array[b] = temp + return array +static func parseEncodedObject(arr: Array) -> Array: + var result = [] + for item in arr: + if item is EncodedObjectAsID: + result.append(instance_from_id(item.get_instance_id())) + else: + result.append(item) + return result diff --git a/scripts/Tools/Managers/WorldManager.gd b/scripts/Tools/Managers/WorldManager.gd index 6c564f1..69466f1 100644 --- a/scripts/Tools/Managers/WorldManager.gd +++ b/scripts/Tools/Managers/WorldManager.gd @@ -12,6 +12,7 @@ func _ready(): rootNode = self spawner = $%spawner ComponentManager.init() + spawner.spawn_function = justReturn func _physics_process(delta): runningTime += delta * 1000 if EntityBase.mobCount() == 0 and runningTime > 1000: @@ -29,9 +30,12 @@ func spawnWave(): func spawn(node: Node): if MultiplayerState.isMultiplayer: if multiplayer.is_server(): - spawner.spawn(node) + spawner.spawn([node]) else: add_child(node) +func justReturn(data): + print(ArrayTool.parseEncodedObject(data)) + return ArrayTool.parseEncodedObject(data)[0] static func getTime(): return runningTime