cfg

package
v0.0.0-...-3945403 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Tag = "cfg"
)

Variables

View Source
var DefaultCsvOption = csv.DefaultOption

默认csv设置

Functions

func LoadAllCfgs

func LoadAllCfgs(dir string, loadFilter func(f string) bool) bool

加载所有注册的数据,支持热更新

func LoadCfgFilter

func LoadCfgFilter(fileName string) bool

TODO: 配置数据热更新时,过滤没数据变化的文件,由具体项目业务层实现

func Register

func Register(cfgMgrCtorLoader func() any, order Order) *atomic.Value

注册配置数据

Types

type ActivityCfgMgr

type ActivityCfgMgr struct {
	*DataMap[*pb.ActivityCfg] `cfg:"activitycfg.csv"`
	// contains filtered or unexported fields
}

活动配置数据管理

func GetActivityCfgMgr

func GetActivityCfgMgr() *ActivityCfgMgr

singleton

func (*ActivityCfgMgr) GetActivityCfg

func (m *ActivityCfgMgr) GetActivityCfg(cfgId int32) *pb.ActivityCfg

func (*ActivityCfgMgr) GetConditionMgr

func (m *ActivityCfgMgr) GetConditionMgr() *ConditionMgr

func (*ActivityCfgMgr) GetProgressMgr

func (m *ActivityCfgMgr) GetProgressMgr() *ProgressMgr

func (*ActivityCfgMgr) SetConditionMgr

func (m *ActivityCfgMgr) SetConditionMgr(conditionMgr *ConditionMgr)

func (*ActivityCfgMgr) SetProgressMgr

func (m *ActivityCfgMgr) SetProgressMgr(progressMgr *ProgressMgr)

type AfterLoader

type AfterLoader interface {
	AfterLoad()
}

type DataMap

type DataMap[E internal.CfgData] struct {
	// contains filtered or unexported fields
}

map类型的配置数据管理

func (*DataMap[E]) GetCfg

func (this *DataMap[E]) GetCfg(cfgId int32) E

func (*DataMap[E]) Load

func (this *DataMap[E]) Load(fileName string, loaderOption *LoaderOption) error

加载配置数据,支持json和csv

func (*DataMap[E]) LoadCsv

func (this *DataMap[E]) LoadCsv(fileName string, option *csv.CsvOption) error

从csv文件加载数据

func (*DataMap[E]) LoadJson

func (this *DataMap[E]) LoadJson(fileName string) error

从json文件加载数据

func (*DataMap[E]) Range

func (this *DataMap[E]) Range(f func(e E) bool)

type DataSlice

type DataSlice[E any] struct {
	// contains filtered or unexported fields
}

slice类型的配置数据管理

func (*DataSlice[E]) GetCfg

func (this *DataSlice[E]) GetCfg(index int) E

func (*DataSlice[E]) Len

func (this *DataSlice[E]) Len() int

func (*DataSlice[E]) Load

func (this *DataSlice[E]) Load(fileName string, loaderOption *LoaderOption) error

加载配置数据,支持json和csv

func (*DataSlice[E]) LoadCsv

func (this *DataSlice[E]) LoadCsv(fileName string, option *csv.CsvOption) error

func (*DataSlice[E]) LoadJson

func (this *DataSlice[E]) LoadJson(fileName string) error

从json文件加载数据

func (*DataSlice[E]) Range

func (this *DataSlice[E]) Range(f func(e E) bool)

type ItemCfgMgr

type ItemCfgMgr struct {
	*DataMap[*pb.ItemCfg] `cfg:"itemcfg.csv"`
}

任务配置数据管理

func GetItemCfgMgr

func GetItemCfgMgr() *ItemCfgMgr

singleton

func (*ItemCfgMgr) GetItemCfg

func (m *ItemCfgMgr) GetItemCfg(cfgId int32) *gen.ItemCfgR

提供一个只读接口

type LevelCfgMgr

type LevelCfgMgr struct {
	// 每一级升级所需要的经验
	*DataSlice[*pb.LevelExp] `cfg:"levelcfg.csv"`
}

等级配置数据管理

func GetLevelCfgMgr

func GetLevelCfgMgr() *LevelCfgMgr

singleton

func (*LevelCfgMgr) GetMaxLevel

func (m *LevelCfgMgr) GetMaxLevel() int32

最大等级

func (*LevelCfgMgr) GetNeedExp

func (m *LevelCfgMgr) GetNeedExp(nextLevel int32) int32

下一级所需要经验值

type Loader

type Loader interface {
	Load(fileName string, loaderOption *LoaderOption) error
}

type LoaderOption

type LoaderOption struct {
	// 加载顺序,数值小的,先执行
	// 因为有的数据可能有依赖关系
	Order     int
	CsvOption *csv.CsvOption // csv配置文件才需要

	CfgMgrCtor func() any
	// contains filtered or unexported fields
}

type Order

type Order int
const (
	// 最先加载
	First Order = 0
	// 中间
	Mid Order = 100
	// 最后加载
	Last Order = 10000
)

type QuestCfgMgr

type QuestCfgMgr struct {
	*DataMap[*pb.QuestCfg] `cfg:"questcfg.csv"`
	// contains filtered or unexported fields
}

任务配置数据管理

func GetQuestCfgMgr

func GetQuestCfgMgr() *QuestCfgMgr

singleton

func (*QuestCfgMgr) AfterLoad

func (m *QuestCfgMgr) AfterLoad()

func (*QuestCfgMgr) GetConditionMgr

func (m *QuestCfgMgr) GetConditionMgr() *ConditionMgr

func (*QuestCfgMgr) GetProgressMgr

func (m *QuestCfgMgr) GetProgressMgr() *ProgressMgr

func (*QuestCfgMgr) GetQuestCfg

func (m *QuestCfgMgr) GetQuestCfg(cfgId int32) *pb.QuestCfg

func (*QuestCfgMgr) SetConditionMgr

func (m *QuestCfgMgr) SetConditionMgr(conditionMgr *ConditionMgr)

func (*QuestCfgMgr) SetProgressMgr

func (m *QuestCfgMgr) SetProgressMgr(progressMgr *ProgressMgr)

type TemplateCfgMgr

type TemplateCfgMgr struct {
	ConditionTemplates *DataMap[*pb.ConditionTemplateCfg] `cfg:"condition_template.csv"`
	ProgressTemplates  *DataMap[*pb.ProgressTemplateCfg]  `cfg:"progress_template.csv"`
	Exchanges          *DataMap[*pb.ExchangeCfg]          `cfg:"exchange.csv"`
}

模板配置数据管理

func GetTemplateCfgMgr

func GetTemplateCfgMgr() *TemplateCfgMgr

singleton

func (*TemplateCfgMgr) AfterLoad

func (m *TemplateCfgMgr) AfterLoad()

func (*TemplateCfgMgr) GetExchangeCfg

func (m *TemplateCfgMgr) GetExchangeCfg(cfgId int32) *pb.ExchangeCfg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL