mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-03-01 00:35:36 +08:00
读取角色配置表
This commit is contained in:
72
gdconf/game_data_config.go
Normal file
72
gdconf/game_data_config.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package gdconf
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"hk4e/common/config"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var CONF *GameDataConfig = nil
|
||||
|
||||
type GameDataConfig struct {
|
||||
csvPrefix string
|
||||
jsonPrefix string
|
||||
// 角色
|
||||
AvatarDataMap map[int32]*AvatarData
|
||||
}
|
||||
|
||||
func InitGameDataConfig() {
|
||||
CONF = new(GameDataConfig)
|
||||
CONF.csvPrefix = ""
|
||||
CONF.loadAll()
|
||||
}
|
||||
|
||||
func (g *GameDataConfig) loadAll() {
|
||||
pathPrefix := config.CONF.Hk4e.GameDataConfigPath
|
||||
|
||||
dirInfo, err := os.Stat(pathPrefix)
|
||||
if err != nil || !dirInfo.IsDir() {
|
||||
info := fmt.Sprintf("open game data config dir error: %v", err)
|
||||
panic(info)
|
||||
}
|
||||
|
||||
g.csvPrefix = pathPrefix + "/csv"
|
||||
dirInfo, err = os.Stat(g.csvPrefix)
|
||||
if err != nil || !dirInfo.IsDir() {
|
||||
info := fmt.Sprintf("open game data config csv dir error: %v", err)
|
||||
panic(info)
|
||||
}
|
||||
g.csvPrefix += "/"
|
||||
|
||||
g.jsonPrefix = pathPrefix + "/json"
|
||||
dirInfo, err = os.Stat(g.jsonPrefix)
|
||||
if err != nil || !dirInfo.IsDir() {
|
||||
info := fmt.Sprintf("open game data config json dir error: %v", err)
|
||||
panic(info)
|
||||
}
|
||||
g.jsonPrefix += "/"
|
||||
|
||||
g.load()
|
||||
}
|
||||
|
||||
func (g *GameDataConfig) load() {
|
||||
// 角色
|
||||
g.loadAvatarData()
|
||||
}
|
||||
|
||||
func (g *GameDataConfig) readCsvFileData(fileName string) []byte {
|
||||
fileData, err := os.ReadFile(g.csvPrefix + fileName)
|
||||
if err != nil {
|
||||
info := fmt.Sprintf("open file error: %v", err)
|
||||
panic(info)
|
||||
}
|
||||
// 去除第二三行的内容变成标准格式的csv
|
||||
index1 := strings.Index(string(fileData), "\n")
|
||||
index2 := strings.Index(string(fileData[(index1+1):]), "\n")
|
||||
index3 := strings.Index(string(fileData[(index2+1)+(index1+1):]), "\n")
|
||||
standardCsvData := make([]byte, 0)
|
||||
standardCsvData = append(standardCsvData, fileData[:index1]...)
|
||||
standardCsvData = append(standardCsvData, fileData[index3+(index2+1)+(index1+1):]...)
|
||||
return standardCsvData
|
||||
}
|
||||
Reference in New Issue
Block a user