// Code generated by excel export. DO NOT EDIT. package data var SkillPool = &skillPoolConfig{} func init() { _allList = append(_allList, SkillPool) } type ( SkillPoolRow struct { PoolID int32 `json:"PoolID"` // 池ID SkillID int32 `json:"SkillID"` // 技能ID Weight int32 `json:"Weight"` // 权重 } skillPoolConfig struct { baseConfig list []*SkillPoolRow // all list poolIDListMaps map[int32][]*SkillPoolRow // key:poolID poolIDSkillIDUniMaps map[int32]map[int32]*SkillPoolRow // key:poolID, skillID } ) func (p *skillPoolConfig) Name() string { return "skill_pool" } func (p *skillPoolConfig) Init() { p.poolIDListMaps = map[int32][]*SkillPoolRow{} p.poolIDSkillIDUniMaps = map[int32]map[int32]*SkillPoolRow{} } func (p *skillPoolConfig) OnLoad(maps interface{}, reload bool) (int, error) { if reload && p.denyLoad { return 0, nil } var list []*SkillPoolRow if err := DecodeData(maps, &list); err != nil { return 0, err } p.list = list poolIDListMaps := map[int32][]*SkillPoolRow{} for _, row := range list { poolIDListMaps[row.PoolID] = append(poolIDListMaps[row.PoolID], row) } p.poolIDListMaps = poolIDListMaps poolIDSkillIDUniMaps := map[int32]map[int32]*SkillPoolRow{} for _, row := range list { itemMap := poolIDSkillIDUniMaps[row.PoolID] if itemMap == nil { itemMap = map[int32]*SkillPoolRow{} poolIDSkillIDUniMaps[row.PoolID] = itemMap } itemMap[row.SkillID] = row } p.poolIDSkillIDUniMaps = poolIDSkillIDUniMaps return len(list), nil } // func (p *skillPoolConfig) OnAfterLoad(_ bool) { // } func (p *skillPoolConfig) List() []*SkillPoolRow { return p.list } func (p *skillPoolConfig) ListByPoolID(poolID int32) ([]*SkillPoolRow, bool) { value, found := p.poolIDListMaps[poolID] return value, found } func (p *skillPoolConfig) ListContainPoolID(poolID int32) bool { _, found := p.poolIDListMaps[poolID] return found } func (p *skillPoolConfig) GetByPoolIDSkillID(poolID int32, skillID int32) (*SkillPoolRow, bool) { mapItem, found := p.poolIDSkillIDUniMaps[poolID] if !found { return nil, false } value, found := mapItem[skillID] return value, found } func (p *skillPoolConfig) ContainPoolIDSkillID(poolID int32, skillID int32) bool { mapItem, found := p.poolIDSkillIDUniMaps[poolID] if !found { return false } _, found = mapItem[skillID] return found }