Files
hk4e/gdconf/game_data_config.go
2022-12-01 00:22:20 +08:00

73 lines
1.7 KiB
Go

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
}