nodes n stuff
This commit is contained in:
parent
1b76237d8b
commit
13dda87ea6
@ -18,6 +18,8 @@ var steam_username: String = ""
|
||||
var avatar_texture_cache: Dictionary = {}
|
||||
var host_id: int = 0
|
||||
|
||||
var node_map: Dictionary = {}
|
||||
|
||||
signal lobby_created(lobby_id: int)
|
||||
signal lobby_joined(lobby_id: int)
|
||||
signal user_joined_lobby(user_id: int)
|
||||
@ -306,13 +308,22 @@ func read_p2p_packet() -> void:
|
||||
# Property update packet
|
||||
if "message" in readable_data and readable_data["message"] == "property_update":
|
||||
if "node_id" in readable_data and "property_name" in readable_data and "value" in readable_data:
|
||||
property_update_received.emit(readable_data["node_id"], readable_data["property_name"], readable_data["value"])
|
||||
emit_signal("property_update_received", readable_data["node_id"], readable_data["property_name"], readable_data["value"])
|
||||
print("Received property update packet for node %d: %s = %s" % [readable_data["node_id"], readable_data["property_name"], readable_data["value"]]))
|
||||
|
||||
|
||||
# Print the packet to output
|
||||
print("Packet: %s" % readable_data)
|
||||
|
||||
|
||||
func register_node(node_id: int, node: Node):
|
||||
if node_id in node_map:
|
||||
printerr("Node ID already registered.")
|
||||
else:
|
||||
node_map[node_id] = node
|
||||
|
||||
|
||||
|
||||
func request_player_avatar(user_id: int, size: int = 128) -> void:
|
||||
var avatar_texture: ImageTexture = null
|
||||
Steam.getPlayerAvatar(Steam.AVATAR_LARGE, user_id)
|
||||
@ -370,3 +381,5 @@ func _on_game_started():
|
||||
func sync_property(node_id: int, property_name: String, value: Variant):
|
||||
var packet_data = {"message":"property_update", "node_id":node_id, "property_name":property_name, "value":value}
|
||||
send_p2p_packet(0, packet_data)
|
||||
|
||||
|
||||
|
@ -32,6 +32,7 @@ var previous_global_rotation: Vector3
|
||||
|
||||
func _ready() -> void:
|
||||
NetworkManager.property_update_received.connect(_on_property_update)
|
||||
NetworkManager.register_node(get_instance_id(), "Player")
|
||||
|
||||
func _enter_tree() -> void:
|
||||
player_tag = get_node("PlayerTag")
|
||||
@ -152,7 +153,9 @@ func set_is_piloting(state: bool):
|
||||
|
||||
|
||||
func _on_property_update(node_id: int, property_name: String, value: Variant) -> void:
|
||||
printerr("Recieved property update but node_id is wrong?: " + property_name + " = " + str(value))
|
||||
if node_id == get_instance_id():
|
||||
if NetworkManager.node_map.has(node_id):
|
||||
var node = NetworkManager.node_map[node_id]
|
||||
node.set(property_name, value)
|
||||
print("Received property update: " + property_name + " = " + str(value))
|
||||
set(property_name, value)
|
||||
else:
|
||||
printerr("Received property update but node_id is wrong? Got " + str(get_instance_id()) + " but got " + str(node_id))
|
||||
|
Loading…
Reference in New Issue
Block a user