NIP parser v2 (#17)
This commit is contained in:
54705
cmd/d2data/d2data/items.json
Normal file
54705
cmd/d2data/d2data/items.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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 {
|
||||
|
||||
@@ -12,7 +12,6 @@ import (
|
||||
"github.com/hectorgimenez/d2go/pkg/data"
|
||||
"github.com/hectorgimenez/d2go/pkg/data/area"
|
||||
"github.com/hectorgimenez/d2go/pkg/data/item"
|
||||
"github.com/hectorgimenez/d2go/pkg/itemfilter"
|
||||
"github.com/hectorgimenez/d2go/pkg/memory"
|
||||
"github.com/hectorgimenez/d2go/pkg/nip"
|
||||
)
|
||||
@@ -55,9 +54,15 @@ func (w *Watcher) Start(ctx context.Context) error {
|
||||
|
||||
d := w.gr.GetData()
|
||||
for _, i := range d.Items.ByLocation(item.LocationGround) {
|
||||
_, match := itemfilter.Evaluate(i, w.rules)
|
||||
if !match {
|
||||
continue
|
||||
for _, r := range w.rules {
|
||||
match, err := r.Evaluate(i)
|
||||
if err != nil {
|
||||
log.Printf("error evaluating rule: %v", err)
|
||||
continue
|
||||
}
|
||||
if !match {
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
found := false
|
||||
|
||||
Reference in New Issue
Block a user