feat: add individual food and ingredient editing with multi-select and search - #5
Open
aiden0rchad wants to merge 2 commits into
Open
aiden0rchad wants to merge 2 commits into
aiden0rchad wants to merge 2 commits into
Conversation
…ions, and DLC mappings - Add 601 EquipmentItem rows (weapons, harpoons, charms, diving gear) and 48 SubEquipment rows into reference.sqlite, mapped to their save-side equipment TIDs. - Integrate official game localization tables across English, Korean, Simplified Chinese, and Traditional Chinese for 1,236 unique item and equipment text keys. - Prioritize direct TID matches over ItemDataID references, ensuring charms like 3017001 resolve to their equipped charm name (Dolphin Necklace / 돌고래의 목걸이 / 海豚項鍊) rather than the raw unappraised pickup key Unidentified LongDash. - Enhance prettify with prefix stripping (Item_JDLC_, Item_) and CamelCase handling for untranslated DLC/cutscene items (Memory of Yoshie). - Fall back to localized "item" instead of repeating slot IDs (#id #id) when an unknown item is encountered in the inventory list. - Support multi-language item search in ReferenceDB.searchItems matching across localized strings, developer keys, and numeric IDs. - Add DLC 2 (May / Guilty Gear 14252101) and DLC 4 (In the Jungle 14252301) to dlcTypeToID in IngredientOps and craftDLCTypeToID in CraftMaterialOps. - Add Scripts/build_reference_db.py to regenerate reference.sql and reference.sqlite deterministically from game tables and text assets. - Add test suite in NewEquipmentAndItemLookupTests and update ExpandedEditingTests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds individual food and ingredient editing in the Restaurant section, allowing players to inspect, search, and selectively adjust their stock instead of only having bulk-fill operations.
Context & Need
Currently, the Restaurant section only offers bulk actions (
Max Owned Ingredients,Max All Ingredients,Max Branch Ingredients). Players who want to manage specific kitchen ingredients without maxing out their entire pantry and spoiling in-game progression had no way to view or edit individual ingredients.Key Changes
Per-Ingredient Inspection & Inline Editing (
TableRows.swift,ContentView.swift):fork.knife), localized name, numeric ID, main restaurant count, and branch restaurant stock badge (Branch: X) if non-zero.+10and+50buttons to easily bump stock.Maxbutton that clamps directly to that ingredient's official tier cap (6666,666,66, or999).In-Stock vs All-Ingredients Browsing (
ContentView.swift,SaveEditorModel.swift):128): Ingredients currently held in the save.462): Browse and search any ingredient in the game (even unowned ones with count0), allowing players to add and unlock any ingredient by setting its count.Multi-Selection & Batch Operations:
+10 Selected,+50 Selected,Max Selected,Select All, andClear.⌘Z).Multi-Language Search (
ReferenceDB.swift):Core Engine Support (
IngredientOps.swift,FishOps.swift):IngredientSlotstruct.SaveDocument.ingredientItems() -> [IngredientSlot].SaveDocument.setIngredient(id:count:branchCount:parentID:) -> Boolwhich updates existing entries or injects missing entries matching the game's 9-key schema.String Catalog & Localizations (
Localizable.xcstrings):Scripts/check_catalog.py(0 format or terminology violations).Tests & Tooling:
DaveSaveCoreTests/IngredientOpsTests.swift(ingredientItemsEnumeratesSortedAndExtractsCounts,setIngredientUpdatesExistingAndInjectsMissing,searchIngredientsMatchesAcrossLanguages).ExpandedEditingTests.swift(ingredientRowsInStockAndAll,setAndAdjustIngredientCount,batchAdjustAndMaximizeIngredients).Scripts/package_app.shfor standalone CLI/local packaging without full Xcode.