facility.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Code generated by excel export. DO NOT EDIT.
  2. package data
  3. import (
  4. "f1-game/internal/types"
  5. )
  6. var Facility = &facilityConfig{}
  7. func init() {
  8. _allList = append(_allList, Facility)
  9. }
  10. type (
  11. FacilityRow struct {
  12. ID int32 `json:"ID"` // ID
  13. PreFacilities types.PairList[int32, int32] `json:"PreFacilities"` // 前置建筑
  14. }
  15. facilityConfig struct {
  16. baseConfig
  17. list []*FacilityRow // all list
  18. idUniMaps map[int32]*FacilityRow // key:id
  19. }
  20. )
  21. func (p *facilityConfig) Name() string {
  22. return "facility"
  23. }
  24. func (p *facilityConfig) Init() {
  25. p.idUniMaps = map[int32]*FacilityRow{}
  26. }
  27. func (p *facilityConfig) OnLoad(maps interface{}, reload bool) (int, error) {
  28. if reload && p.denyLoad {
  29. return 0, nil
  30. }
  31. var list []*FacilityRow
  32. if err := DecodeData(maps, &list); err != nil {
  33. return 0, err
  34. }
  35. p.list = list
  36. idUniMaps := map[int32]*FacilityRow{}
  37. for _, row := range list {
  38. idUniMaps[row.ID] = row
  39. }
  40. p.idUniMaps = idUniMaps
  41. return len(list), nil
  42. }
  43. // func (p *facilityConfig) OnAfterLoad(_ bool) {
  44. // }
  45. func (p *facilityConfig) List() []*FacilityRow {
  46. return p.list
  47. }
  48. func (p *facilityConfig) GetByID(id int32) (*FacilityRow, bool) {
  49. value, found := p.idUniMaps[id]
  50. return value, found
  51. }
  52. func (p *facilityConfig) ContainID(id int32) bool {
  53. _, found := p.idUniMaps[id]
  54. return found
  55. }