Intialize and cleanup repo
This commit is contained in:
21
client/scripts/systems/LoginManager.gd
Normal file
21
client/scripts/systems/LoginManager.gd
Normal file
@ -0,0 +1,21 @@
|
||||
extends Node
|
||||
|
||||
|
||||
func _ready():
|
||||
$"/root/MusicManager".play_music("wizards")
|
||||
$Button.connect("button_down", self, "_on_button_press")
|
||||
$"/root/NetworkManager".connect("error_occured", self, "_on_error")
|
||||
$"/root/NetworkManager".connect("logged_in", self, "_on_login")
|
||||
|
||||
func _on_error():
|
||||
$ErrorDialog/ErrorLabel.text = $"/root/NetworkManager".error_info
|
||||
$ErrorDialog.popup_centered()
|
||||
|
||||
func _on_button_press():
|
||||
if($"/root/NetworkManager".connected):
|
||||
$"/root/NetworkManager".disconnect_from_server()
|
||||
else:
|
||||
$"/root/NetworkManager".connect_as_user($LineEdit.text)
|
||||
|
||||
func _on_login():
|
||||
get_tree().change_scene("res://scenes/game.scn")
|
49
client/scripts/systems/WorldManager.gd
Normal file
49
client/scripts/systems/WorldManager.gd
Normal file
@ -0,0 +1,49 @@
|
||||
extends Node
|
||||
|
||||
|
||||
func _ready():
|
||||
$Tiles.clear()
|
||||
$"/root/NetworkManager".connect("world_data_recieved", self, "_on_world_update")
|
||||
$"/root/NetworkManager".request_world_map()
|
||||
|
||||
func _on_world_update():
|
||||
var data = $"/root/NetworkManager".world_data.split('\n')
|
||||
for tileUpdate in data:
|
||||
if len(tileUpdate) > 3:
|
||||
if ',' in tileUpdate:
|
||||
var tile_data = tileUpdate.split(',')
|
||||
if ':' in tile_data[2]:
|
||||
var pos : Vector2 = $Tiles.map_to_world(Vector2(int(tile_data[0]), int(tile_data[1])))
|
||||
if 'player:' in tile_data[2]:
|
||||
print(tile_data)
|
||||
var player_name = tile_data[2].substr(len('player:'))
|
||||
print(player_name)
|
||||
if $"/root/NetworkManager".username == player_name:
|
||||
$Player.position = pos
|
||||
else:
|
||||
update_entity(player_name, pos, "player")
|
||||
else:
|
||||
var entity_data = tile_data[2].split(':')
|
||||
update_entity(entity_data[1], pos, entity_data[0])
|
||||
|
||||
else:
|
||||
$Tiles.set_cell(int(tile_data[0]), int(tile_data[1]), int(tile_data[2]))
|
||||
if $Loading != null:
|
||||
$Loading.queue_free()
|
||||
|
||||
func display_error(error):
|
||||
print("Error " + error)
|
||||
|
||||
func update_entity(entity_id : String, pos : Vector2, type : String):
|
||||
var entity : Node2D = get_node_or_null( str(type + "-" + entity_id))
|
||||
if not entity:
|
||||
var entity_location = "res://nodes/entities/" + type + ".tscn"
|
||||
if File.new().file_exists(entity_location):
|
||||
var gobj = load(entity_location)
|
||||
entity = gobj.instance()
|
||||
add_child(entity, true)
|
||||
entity.set_name(str(type + "-" + entity_id))
|
||||
else:
|
||||
display_error("Trying to load entity of type: " + type + ", but failed.")
|
||||
if entity:
|
||||
entity.position = pos
|
Reference in New Issue
Block a user