NIP parser v2 (#17)

This commit is contained in:
Héctor Giménez
2024-05-05 12:15:08 +09:00
committed by GitHub
parent 0d5c108721
commit bb0ec2555d
28 changed files with 56618 additions and 1385 deletions

54705
cmd/d2data/d2data/items.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,7 @@ package skill
var Desc = map[ID]Description{
{{- range $key, $value := . }}
{{ $key }}: {Page: {{ $value.SkillPage }}, Row: {{ $value.SkillRow }}, Column: {{ $value.SkillColumn }}, ListRow: {{ $value.ListRow }}, IconCel: {{ $value.IconCel }} },
{{ $key }}: {Page: {{ $value.SkillPage }}, Row: {{ $value.SkillRow }}, Column: {{ $value.SkillColumn }}, ListRow: {{ $value.ListRow }}, IconCel: {{ $value.IconCel }}},
{{- end }}
}`
@@ -25,7 +25,7 @@ package skill
var Skills = map[ID]Skill{
{{- range $key, $value := . }}
{{ $key }}: {Name: "{{ $value.Name }}", ID: {{ $key }}, LeftSkill: {{ if eq $value.Leftskill 1 }}true{{ else }}false{{ end }}, RightSkill: {{ if eq $value.Rightskill 1 }}true{{ else }}false{{ end }} },
{{ $key }}: {Name: "{{ $value.Name }}", ID: {{ $key }}, LeftSkill: {{ if eq $value.Leftskill 1 }}true{{ else }}false{{ end }}, RightSkill: {{ if eq $value.Rightskill 1 }}true{{ else }}false{{ end }}},
{{- end }}
}`
@@ -39,6 +39,16 @@ var Areas = map[ID]Area{
{{- end }}
}`
const templateItems = `// Code generated by d2data. DO NOT EDIT.
// source: cmd/d2data/d2data/items.json
package item
var Desc = map[int]Description{
{{- range $key, $value := . }}
{{ $value.ID }}: {Name: "{{ $value.Name }}", ID: {{ $value.ID }}, Code: "{{ $value.Code }}", NormalCode: "{{ $value.NormalCode }}", UberCode: "{{ $value.UberCode }}", UltraCode: "{{ $value.UltraCode }}", InventoryWidth: {{ $value.Width }}, InventoryHeight: {{ $value.Height }}, MinDefense: {{ $value.MinDefense }}, MaxDefense: {{ $value.MaxDefense }}},
{{- end }}
}`
type skillDesc struct {
Skilldesc string `json:"skilldesc"`
SkillPage int `json:"SkillPage"`
@@ -64,6 +74,19 @@ type Level struct {
CanBeTerrorized bool
}
type itemDesc struct {
Name string `json:"name"`
Code string `json:"code"`
NormalCode string `json:"normcode"`
UberCode string `json:"ubercode"`
UltraCode string `json:"ultracode"`
Width int `json:"invwidth"`
Height int `json:"invheight"`
ID int `json:"classid"`
MinDefense int `json:"minac"`
MaxDefense int `json:"maxac"`
}
// Generate static code from https://github.com/blizzhackers/d2data data files.
func main() {
err := generateFromFile(templateSkillDesc, "cmd/d2data/d2data/skilldesc.json", "pkg/data/skill/skilldesc.go", &map[string]skillDesc{})
@@ -80,6 +103,11 @@ func main() {
if err != nil {
log.Fatal(err)
}
err = generateFromFile(templateItems, "cmd/d2data/d2data/items.json", "pkg/data/item/items.go", &map[string]itemDesc{})
if err != nil {
log.Fatal(err)
}
}
func generateFromFile(templateName, filePath, outPath string, unmarshallStruct interface{}) error {