// Code generated by xlsx2proto.
// DO NOT EDIT!

package srvdata

import (
	"mongo.games.com/game/proto"
	"mongo.games.com/game/protocol/server"
)

var PBDB_FortuneGod_WeightMgr = &DB_FortuneGod_WeightMgr{pool: make(map[int32]*server.DB_FortuneGod_Weight), Datas: &server.DB_FortuneGod_WeightArray{}}

type DB_FortuneGod_WeightMgr struct {
	Datas *server.DB_FortuneGod_WeightArray
	pool  map[int32]*server.DB_FortuneGod_Weight
}

func (this *DB_FortuneGod_WeightMgr) unmarshal(data []byte) error {
	err := proto.Unmarshal(data, this.Datas)
	if err == nil {
		this.arrangeData()
	}
	return err
}

func (this *DB_FortuneGod_WeightMgr) reunmarshal(data []byte) error {
	newDatas := &server.DB_FortuneGod_WeightArray{}
	err := proto.Unmarshal(data, newDatas)
	if err == nil {
		for _, item := range newDatas.Arr {
			existItem := this.GetData(item.GetId())
			if existItem == nil {
				this.pool[item.GetId()] = item
				this.Datas.Arr = append(this.Datas.Arr, item)
			} else {
				*existItem = *item
			}
		}
	}
	return err
}

func (this *DB_FortuneGod_WeightMgr) arrangeData() {
	if this.Datas == nil {
		return
	}

	dataArr := this.Datas.GetArr()
	if dataArr == nil {
		return
	}

	for _, data := range dataArr {
		this.pool[data.GetId()] = data
	}
}

func (this *DB_FortuneGod_WeightMgr) GetData(id int32) *server.DB_FortuneGod_Weight {
	if data, ok := this.pool[id]; ok {
		return data
	}
	return nil
}

func init() {
	DataMgr.RegisteLoader("DB_FortuneGod_Weight.dat", &ProtobufDataLoader{dh: PBDB_FortuneGod_WeightMgr})
}
