func spawnerMenu(s *Session, area types.Area) { utils.ExecMenu("Spawners", s, func(menu *utils.Menu) { for i, spawner := range model.GetAreaSpawners(area.GetId()) { sp := spawner menu.AddActionI(i, spawner.GetName(), func() bool { specificSpawnerMenu(s, sp) return true }) } menu.AddAction("n", "New", func() bool { name := s.getRawUserInput("Name of spawned NPC: ") if name != "" { model.CreateSpawner(name, area.GetId()) } return true }) }) }
func specificAreaMenu(s *Session, area types.Area) { utils.ExecMenu(area.GetName(), s, func(menu *utils.Menu) { menu.AddAction("r", "Rename", func() bool { newName := s.getRawUserInput("New name: ") if newName != "" { area.SetName(newName) } return true }) menu.AddAction("d", "Delete", func() bool { answer := s.getRawUserInput("Are you sure? ") if strings.ToLower(answer) == "y" { model.DeleteArea(area.GetId()) } return false }) menu.AddAction("s", "Spawners", func() bool { spawnerMenu(s, area) return true }) }) }