diff options
| author | workhorse <workhorse@localhost.localdomain> | 2026-06-19 20:24:52 -0400 |
|---|---|---|
| committer | workhorse <workhorse@localhost.localdomain> | 2026-06-19 20:24:52 -0400 |
| commit | 8ee8982b8759bcae116647cc993867f4c8b0a6ce (patch) | |
| tree | ee01f7b1d745cbc94d9981108a1209527487b3e5 /internal/action/recipe.go | |
| parent | 2bec24859af8f03c80a0a58e3240519942450167 (diff) | |
| download | thehouseoficarus-8ee8982b8759bcae116647cc993867f4c8b0a6ce.tar.gz | |
reorganized items, objects, and rooms in directories. oranized module names. added startup checks.
Diffstat (limited to 'internal/action/recipe.go')
| -rw-r--r-- | internal/action/recipe.go | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/internal/action/recipe.go b/internal/action/recipe.go index c1f30fb..5a69195 100644 --- a/internal/action/recipe.go +++ b/internal/action/recipe.go @@ -1,7 +1,6 @@ package action import ( - "os" "path/filepath" "gopkg.in/yaml.v3" @@ -9,7 +8,7 @@ import ( type ConsumeEntry struct { Items []string `yaml:"items"` - Qty int `yaml:"qty"` + Quantity int `yaml:"quantity"` Byproducts []string `yaml:"byproducts"` } @@ -80,25 +79,15 @@ func (s *RecipeStore) LoadByType(recipeType string) ([]RecipeDef, error) { func (s *RecipeStore) loadAllRaw() ([]RecipeDef, error) { dir := filepath.Join(s.dataDir, "recipes") - entries, err := os.ReadDir(dir) - if err != nil { - return nil, err - } var recipes []RecipeDef - for _, e := range entries { - if e.IsDir() || filepath.Ext(e.Name()) != ".yaml" { - continue - } - data, err := os.ReadFile(filepath.Join(dir, e.Name())) - if err != nil { - continue - } + WalkYAMLDir(dir, func(path, id string, data []byte) error { var r RecipeDef if err := yaml.Unmarshal(data, &r); err != nil { - continue + return nil } recipes = append(recipes, r) - } + return nil + }) return recipes, nil } @@ -190,23 +179,23 @@ func (r *RecipeDef) ConsumeAll(hasItem func(string) bool, removeItem func(string found := false for _, id := range e.Items { if hasItem(id) { - removeItem(id, e.Qty) - found = true - break - } - } - if !found { - return false + removeItem(id, e.Quantity) + found = true + break } } - return true + if !found { + return false + } +} +return true } func (r *RecipeDef) HasAllItemsQty(countItem func(string) int) bool { for _, e := range r.Consume { found := false for _, id := range e.Items { - qty := e.Qty + qty := e.Quantity if qty <= 0 { qty = 1 } |
