mirror of
https://github.com/thegatesbrowser/godot-multiplayer.git
synced 2025-07-24 16:24:47 -04:00
copy from thegates-jam repo
This commit is contained in:
parent
c1a7ad74e1
commit
1a335de566
523 changed files with 22408 additions and 0 deletions
39
user_data/user_data_manager.gd
Normal file
39
user_data/user_data_manager.gd
Normal file
|
@ -0,0 +1,39 @@
|
|||
extends Node
|
||||
class_name UserDataManager
|
||||
|
||||
@export var user_data_spawner: UserDataSpawner
|
||||
@export var user_data_events: UserDataEvents
|
||||
|
||||
var my_user_data: UserData
|
||||
var user_datas = {} # {Peer ID: UserData}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if Connection.is_server(): return
|
||||
|
||||
user_data_events.set_user_data_manager(self)
|
||||
user_data_spawner.user_data_spawned.connect(user_data_spawned)
|
||||
user_data_spawner.user_data_despawned.connect(user_data_despawned)
|
||||
|
||||
|
||||
func user_data_spawned(id: int, user_data: UserData) -> void:
|
||||
if id == multiplayer.get_unique_id():
|
||||
user_data.is_my_data = true
|
||||
my_user_data = user_data
|
||||
else:
|
||||
user_datas[id] = user_data
|
||||
|
||||
user_data_events.user_data_spawned_emit(id, user_data)
|
||||
|
||||
|
||||
func user_data_despawned(id: int) -> void:
|
||||
if id == multiplayer.get_unique_id():
|
||||
my_user_data = null
|
||||
else:
|
||||
user_datas.erase(id)
|
||||
|
||||
user_data_events.user_data_despawned_emit(id)
|
||||
|
||||
|
||||
func try_get_user_data(id: int) -> UserData:
|
||||
return user_datas[id] if user_datas.has(id) else null
|
Loading…
Add table
Add a link
Reference in a new issue