add basic tz data
This commit is contained in:
76
cmd/d2data/d2data/terrorized_levels.json
Normal file
76
cmd/d2data/d2data/terrorized_levels.json
Normal file
@@ -0,0 +1,76 @@
|
||||
[
|
||||
2,
|
||||
8,
|
||||
3,
|
||||
9,
|
||||
10,
|
||||
12,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
4,
|
||||
5,
|
||||
10,
|
||||
14,
|
||||
6,
|
||||
11,
|
||||
15,
|
||||
20,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
37,
|
||||
38,
|
||||
39,
|
||||
41,
|
||||
47,
|
||||
48,
|
||||
49,
|
||||
42,
|
||||
56,
|
||||
57,
|
||||
60,
|
||||
43,
|
||||
44,
|
||||
45,
|
||||
58,
|
||||
61,
|
||||
65,
|
||||
66,
|
||||
74,
|
||||
76,
|
||||
85,
|
||||
83,
|
||||
77,
|
||||
78,
|
||||
88,
|
||||
89,
|
||||
91,
|
||||
80,
|
||||
94,
|
||||
95,
|
||||
100,
|
||||
104,
|
||||
105,
|
||||
106,
|
||||
107,
|
||||
108,
|
||||
110,
|
||||
111,
|
||||
125,
|
||||
115,
|
||||
116,
|
||||
113,
|
||||
114,
|
||||
112,
|
||||
126,
|
||||
118,
|
||||
119,
|
||||
121,
|
||||
128
|
||||
]
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"slices"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
@@ -34,7 +35,7 @@ package area
|
||||
|
||||
var Areas = map[ID]Area{
|
||||
{{- range $key, $value := . }}
|
||||
{{ $key }}: {Name: "{{ $value.LevelName }}", ID: {{ $key }}},
|
||||
{{ $key }}: {Name: "{{ $value.LevelName }}", ID: {{ $key }}, CanBeTerrorized: {{ $value.CanBeTerrorized }}},
|
||||
{{- end }}
|
||||
}`
|
||||
|
||||
@@ -58,8 +59,9 @@ type Skill struct {
|
||||
}
|
||||
|
||||
type Level struct {
|
||||
ID int `json:"Id"`
|
||||
LevelName string `json:"LevelName"`
|
||||
ID int `json:"Id"`
|
||||
LevelName string `json:"LevelName"`
|
||||
CanBeTerrorized bool
|
||||
}
|
||||
|
||||
// Generate static code from https://github.com/blizzhackers/d2data data files.
|
||||
@@ -74,22 +76,14 @@ func main() {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
err = generateFromFile(templateLevels, "cmd/d2data/d2data/levels.json", "pkg/data/area/areas.go", &map[string]Level{})
|
||||
err = generateAreas()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func generateFromFile(templateName, filePath, outPath string, unmarshallStruct interface{}) error {
|
||||
jsonFile, err := os.Open(filePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer jsonFile.Close()
|
||||
|
||||
byteValue, _ := io.ReadAll(jsonFile)
|
||||
|
||||
err = json.Unmarshal(byteValue, &unmarshallStruct)
|
||||
err := unmarshalFile(filePath, &unmarshallStruct)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -104,3 +98,49 @@ func generateFromFile(templateName, filePath, outPath string, unmarshallStruct i
|
||||
|
||||
return t.Execute(file, unmarshallStruct)
|
||||
}
|
||||
|
||||
func generateAreas() error {
|
||||
levels := make(map[string]Level)
|
||||
err := unmarshalFile("cmd/d2data/d2data/levels.json", &levels)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
terrorizedLevels := make([]int, 0)
|
||||
err = unmarshalFile("cmd/d2data/d2data/terrorized_levels.json", &terrorizedLevels)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for k, lvl := range levels {
|
||||
if slices.Contains(terrorizedLevels, lvl.ID) {
|
||||
lvl.CanBeTerrorized = true
|
||||
levels[k] = lvl
|
||||
}
|
||||
}
|
||||
|
||||
t := template.Must(template.New("tpl").Parse(templateLevels))
|
||||
|
||||
file, err := os.Create("pkg/data/area/areas.go")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
return t.Execute(file, levels)
|
||||
}
|
||||
|
||||
func unmarshalFile(filePath string, unmarshallTo interface{}) error {
|
||||
jsonFile, err := os.Open(filePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer jsonFile.Close()
|
||||
|
||||
byteValue, err := io.ReadAll(jsonFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return json.Unmarshal(byteValue, &unmarshallTo)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user