go_dreamfactory/modules/mainline/comp_configure.go

128 lines
3.3 KiB
Go

package mainline
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
)
const (
game_mainlinechapter = "game_mainlinechapter.json"
game_mainlineeasy = "game_mainlineeasy.json"
game_mainlinehard = "game_mainlinehard.json"
game_mainlinepurgatory = "game_mainlinepurgatory.json"
)
///配置管理基础组件
type configureComp struct {
modules.MCompConfigure
module *Mainline
}
//组件初始化接口
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.ModuleCompBase.Init(service, module, comp, options)
this.module = module.(*Mainline)
err = this.LoadMultiConfigure(map[string]interface{}{
game_mainlinechapter: cfg.NewGame_mainlineChapter,
game_mainlineeasy: cfg.NewGame_mainlineEasy,
game_mainlinehard: cfg.NewGame_mainlineHard,
game_mainlinepurgatory: cfg.NewGame_mainlinePurgatory,
})
return
}
//读取配置数据
func (this *configureComp) GetConfigure(name string) (v interface{}, err error) {
return configure.GetConfigure(name)
}
func (this *configureComp) GetMainlineChapter(id int32) (data *cfg.Game_mainlineChapterData) {
if v, err := this.GetConfigure(game_mainlinechapter); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_mainlineChapter
ok bool
)
if configure, ok = v.(*cfg.Game_mainlineChapter); !ok {
this.module.Errorf("%T no is *cfg.Game_mainlineChapterData", v)
return
}
if data, ok = configure.GetDataMap()[id]; ok {
return
}
}
return
}
// 获取简单的关卡配置信息
func (this *configureComp) GetMainlineEasyChapter(id int32) (data *cfg.Game_mainlineEasyData) {
if v, err := this.GetConfigure(game_mainlineeasy); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_mainlineEasy
ok bool
)
if configure, ok = v.(*cfg.Game_mainlineEasy); !ok {
this.module.Errorf("%T no is *cfg.Game_mainlineEasyData", v)
return
}
if data, ok = configure.GetDataMap()[id]; ok {
return
}
}
return
}
// 获取炼狱级别难度的关卡配置
func (this *configureComp) GetMainlinePurgatoryChapter(id int32) (data *cfg.Game_mainlinePurgatoryData) {
if v, err := this.GetConfigure(game_mainlinepurgatory); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_mainlinePurgatory
ok bool
)
if configure, ok = v.(*cfg.Game_mainlinePurgatory); !ok {
this.module.Errorf("%T no is *cfg.Game_mainlinePurgatoryData", v)
return
}
if data, ok = configure.GetDataMap()[id]; ok {
return
}
}
return
}
// 获取困难的关卡配置
func (this *configureComp) GetMainlineHardChapter(id int32) (data *cfg.Game_mainlineHardData) {
if v, err := this.GetConfigure(game_mainlinehard); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_mainlineHard
ok bool
)
if configure, ok = v.(*cfg.Game_mainlineHard); !ok {
this.module.Errorf("%T no is *cfg.Game_mainlineHardData", v)
return
}
if data, ok = configure.GetDataMap()[id]; ok {
return
}
}
return
}