diff --git a/game/builtin/world.go b/game/builtin/world.go index e8cc3df..cea57b5 100644 --- a/game/builtin/world.go +++ b/game/builtin/world.go @@ -34,7 +34,6 @@ type World[PlayerID comparable] struct { actorGeneratedEventHandles []game.ActorGeneratedEventHandle actorAnnihilationEventHandles []game.ActorAnnihilationEventHandle actorOwnerChangeEventHandles []game.ActorOwnerChangeEventHandle[PlayerID] - worldGeneratedEventHandles []game.WorldGeneratedEventHandle[PlayerID] worldResetEventHandles []game.WorldResetEventHandle[PlayerID] worldReleasedEventHandles []game.WorldReleaseEventHandle[PlayerID] @@ -171,10 +170,12 @@ func (slf *World[PlayerID]) Reset() { slf.owners.Clear() slf.actors.Clear() slf.actorGuid.Store(0) + slf.OnWorldResetEvent() } func (slf *World[PlayerID]) Release() { if !slf.released.Swap(true) { + slf.OnWorldReleaseEvent() slf.Reset() slf.players = nil slf.playerActors = nil @@ -189,16 +190,6 @@ func (slf *World[PlayerID]) Release() { } } -func (slf *World[PlayerID]) RegWorldGeneratedEvent(handle game.WorldGeneratedEventHandle[PlayerID]) { - slf.worldGeneratedEventHandles = append(slf.worldGeneratedEventHandles, handle) -} - -func (slf *World[PlayerID]) OnWorldGeneratedEvent() { - for _, handle := range slf.worldGeneratedEventHandles { - handle(slf) - } -} - func (slf *World[PlayerID]) RegWorldResetEvent(handle game.WorldResetEventHandle[PlayerID]) { slf.worldResetEventHandles = append(slf.worldResetEventHandles, handle) } diff --git a/game/world.go b/game/world.go index 7489ff9..77ae269 100644 --- a/game/world.go +++ b/game/world.go @@ -44,9 +44,6 @@ type World[PlayerID comparable] interface { // Release 释放世界资源,释放后世界将不可用 Release() - // RegWorldGeneratedEvent 世界创建完成时将立即执行被注册的事件处理函数 - RegWorldGeneratedEvent(handle WorldGeneratedEventHandle[PlayerID]) - OnWorldGeneratedEvent() // RegWorldResetEvent 世界被重置后将立即执行被注册的事件处理函数 RegWorldResetEvent(handle WorldResetEventHandle[PlayerID]) OnWorldResetEvent() @@ -71,7 +68,6 @@ type World[PlayerID comparable] interface { } type ( - WorldGeneratedEventHandle[ID comparable] func(world World[ID]) WorldResetEventHandle[ID comparable] func(world World[ID]) WorldReleaseEventHandle[ID comparable] func(world World[ID]) PlayerJoinWorldEventHandle[ID comparable] func(player Player[ID])