game_sync/srvdata/task.go

45 lines
1.0 KiB
Go

package srvdata
import (
"mongo.games.com/game/protocol/server"
"sort"
)
func init() {
DataMgr.RegisterLoader("DB_Task.dat", TaskMgr)
}
var TaskMgr = &Task{}
type Task struct {
ActivityType map[int32][]*server.DB_Task
TaskType map[int32][]*server.DB_Task
}
func (m *Task) Load(fileFullPath string) error {
m.ActivityType = make(map[int32][]*server.DB_Task)
m.TaskType = make(map[int32][]*server.DB_Task)
for _, v := range PBDB_TaskMgr.Datas.GetArr() {
m.ActivityType[v.GetActivityType()] = append(m.ActivityType[v.GetActivityType()], v)
m.TaskType[v.GetTaskType()] = append(m.TaskType[v.GetTaskType()], v)
}
for _, v := range m.ActivityType {
sort.Slice(v, func(i, j int) bool {
return v[i].GetOrder() < v[j].GetOrder()
})
}
return nil
}
func (m *Task) Reload(fileFullPath string) error {
return m.Load(fileFullPath)
}
func (m *Task) GetActivityType(tp int32) []*server.DB_Task {
return m.ActivityType[tp]
}
func (m *Task) GetTaskType(tp int32) []*server.DB_Task {
return m.TaskType[tp]
}