nodes n stuff

This commit is contained in:
Chris Bell 2024-12-15 00:04:23 -06:00
parent 1b76237d8b
commit 13dda87ea6
2 changed files with 22 additions and 6 deletions

View File

@ -18,6 +18,8 @@ var steam_username: String = ""
var avatar_texture_cache: Dictionary = {} var avatar_texture_cache: Dictionary = {}
var host_id: int = 0 var host_id: int = 0
var node_map: Dictionary = {}
signal lobby_created(lobby_id: int) signal lobby_created(lobby_id: int)
signal lobby_joined(lobby_id: int) signal lobby_joined(lobby_id: int)
signal user_joined_lobby(user_id: int) signal user_joined_lobby(user_id: int)
@ -306,13 +308,22 @@ func read_p2p_packet() -> void:
# Property update packet # Property update packet
if "message" in readable_data and readable_data["message"] == "property_update": 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: 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 the packet to output
print("Packet: %s" % readable_data) 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: func request_player_avatar(user_id: int, size: int = 128) -> void:
var avatar_texture: ImageTexture = null var avatar_texture: ImageTexture = null
Steam.getPlayerAvatar(Steam.AVATAR_LARGE, user_id) 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): 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} var packet_data = {"message":"property_update", "node_id":node_id, "property_name":property_name, "value":value}
send_p2p_packet(0, packet_data) send_p2p_packet(0, packet_data)

View File

@ -32,6 +32,7 @@ var previous_global_rotation: Vector3
func _ready() -> void: func _ready() -> void:
NetworkManager.property_update_received.connect(_on_property_update) NetworkManager.property_update_received.connect(_on_property_update)
NetworkManager.register_node(get_instance_id(), "Player")
func _enter_tree() -> void: func _enter_tree() -> void:
player_tag = get_node("PlayerTag") 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: 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 NetworkManager.node_map.has(node_id):
if node_id == get_instance_id(): var node = NetworkManager.node_map[node_id]
node.set(property_name, value)
print("Received property update: " + property_name + " = " + str(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))