1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-30 07:51:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Tools/Managers/WorldManager.gd
T
fallingshrimp 427ca484d1 refactor(网络同步): 重构实体同步逻辑和玩家生成流程
- 将EntityBase的health改为@export变量以便同步
- 添加MultiplayerSynchronizer节点处理网络同步
- 修改Wave.next()方法处理EncodedObjectAsID类型
- 添加findPlayer方法通过名称查找玩家
- 调整玩家生成流程,确保UIState.player正确设置
2025-11-14 22:44:26 +08:00

40 lines
905 B
GDScript

extends Node2D
class_name WorldManager
static var rootNode: WorldManager
static var tree: SceneTree
static var runningTime: int = 0
static var peer: ENetMultiplayerPeer
static var spawner: MultiplayerSpawner
func _ready():
tree = get_tree()
rootNode = self
spawner = $%spawner
ComponentManager.init()
func _physics_process(delta):
runningTime += delta * 1000
if EntityBase.mobCount() == 0 and runningTime > 1000:
UIState.setPanel("MakeFeed")
@rpc("authority")
func nextWave(waves: Array):
Wave.next(waves)
func spawnWave():
var waves = Wave.spawn()
nextWave(waves)
if MultiplayerState.isMultiplayer and multiplayer.is_server():
nextWave.rpc(waves)
func spawn(node: Node):
if MultiplayerState.isMultiplayer:
if multiplayer.is_server():
spawner.spawn(node)
else:
add_child(node)
static func getTime():
return runningTime
static func spawnNode(node: Node):
rootNode.spawn(node)