aboutsummaryrefslogtreecommitdiff
path: root/internal/world/mob.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/world/mob.go')
-rw-r--r--internal/world/mob.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/world/mob.go b/internal/world/mob.go
index d3ea05b..e02da53 100644
--- a/internal/world/mob.go
+++ b/internal/world/mob.go
@@ -289,6 +289,13 @@ func (s *MobStore) AllDefIDs() map[string]bool {
return ids
}
+func (s *MobStore) ReloadDefs(dataDir string) {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+ s.defs = make(map[string]*MobDef)
+ s.pathIndex = behavior.BuildPathIndex(filepath.Join(dataDir, "mobs"))
+}
+
func (s *MobStore) GetInstance(id string) *MobInstance {
s.mu.Lock()
defer s.mu.Unlock()
@@ -371,6 +378,16 @@ func (s *MobStore) RemoveInstance(instanceID string) {
delete(s.instances, instanceID)
}
+func (s *MobStore) RemoveMobsInRoom(roomID int) {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+ for id, inst := range s.instances {
+ if inst.RoomID == roomID {
+ delete(s.instances, id)
+ }
+ }
+}
+
func (s *MobStore) SeedMobs(roomID int, entries []RoomMob) {
type defWrapper struct {
def *MobDef