branchrust_reboot/main/ui_store_slim_ramcancel
103 Commits over 365 Days - 0.01cph!
Update: ran Update Urls again
Looks like couple blurhashes got missed
Tests: navigated to dlc page with httpimageloaddelay
Optim: convert DLC tab leftovers to httpimage
- ran Assign Bundle and Update Urls
Tests: navigated to it with httpimagedelay and httpimagefailloads and normal - saw expected textures/blurs
Buildfix: missing files
Tests:none
Update: added assetbundles.listdynamic for debugging
Tests: checked output as I navigated through menus and connected/disconnected to server
Clean: get rid of forceOpen hack, use OnBecomeVisible instead
Tests: clicked through store tabs, joined a server and toggled menu and various screens. disconnected
Optim: have HttpImage unload their images when store tabs are hidden
Need to go through all the screens and verify they get unloaded correctly
Tests: inspected general tab's grid contents while being ingame and toggling menu
Optim: HttpImage - mode texture decoding to worker threads
- added WebUtil.DownloadTextureTemp that uses DownloadHandlerTexture
- disabled texture activation rate limit
Now only a tiny hitch is present
Tests: navigated to store General tab
Optim: HttpImage - rate limit texture activation rate (2 per frame)
Helps with General tab opening, but feels too limiting
Tests: navigated to general tab of store
Update: Add HttpImage.MissingSprite
- reroute all dynamic sprites to MissingSprite
- added store.HttpImageFailLoads to simulate loading failure
Tests: navigated store with failloads 1, skin tiles need fixing
Bugfix(editor): StoreBundleTool - fix missmatching file extension, part 1/4
- ran Update Urls(force)
Tests: navigated through store tabs, only 1 image failing to download
▍▆▄▅▉▋▆▇▆▅▇▉█▇▍ ▇▉▇▄▄▋▊▍▆▌▍█▇▆▅ ▉ ▋▊▉█▇▍▍▉ ▉▅ ▆▋ ▍▄ ▊█▇▇▍▋ ▌▄▌▊▆▇▌▆ ▊▇▍▄ ▅▉▊▍▌▍▉█▉ ▌█▍▉▌▍▆▆█ ▅▍▇▇ ▋▋▌▍▅▄▄▊▌▆ ▅▅▊▇▇▋ ▉▇▋▉ ▆▄▊▍▄█ ▇▊▄▆▆ ▍▊▌▌▍▅▌▌▉▇▌▄▆▋▇ ▆▉▌█▍ ▋▆▋▄ ▊▅▌ ▍▋▊ █▊▊▄▆█▋██▊ ▊▉▆ ▆▇▄▇▅▋▅▌ ▌▊▆ █▊▍▋▆ ▌▆ ▍▅▌▍▆▇ ▅█▌ █▄▇ ▋▆▆ ▄▉▋▊▋▋▅▉▋▊▍▇ ▉▉▉ ▍▆▊█▊█ ▇▇▄▊ ▅▋▌▋▌█▌▄ ▆▊▇ ▄▉▄ ▉ ▌▉▅▆▆ ▄▊▌▇▉▋▋▇
Clean(editor): StoreBundleTool - get rid of last Task usage
Tests: ran Update Urls (force)
Update: StoreBundleTool - improvements and optims
- add a "force" version of Update Urls, incase we got desync between local and remote states
- only run blurhash generation for invalid(or bypassed) image hashes
- shuffle task scheduling to run as much as possible in the background
- support multiple asset path prefixes for cases not in the store folder
Tests: ran Update Urls (force), most upload tasks timeout (rip)
Update: StoreBundleTool - fill in image upload logic
- changed url format
- ran "Update Urls"
Tests: ran full Update Urls - manifest grabbing works, but uploading gets stuck
Merge: from ui_store_slim_ram/blurhash
- New: HttpImage now know how to render blurhash images as loading placeholders
Tests: navigated through store
Update: store DLC background is now dynamically loaded
Tests: opened the page, saw it loading in. swapped tabs, opened pack views
Bugfix(editor): StoreBundleTool - fix bundle assignment setting stale bundle value to props
Tests: ran it on a modified prefab
Update: convert store's general tab background images to be dynamically loaded from bundles and backend
Tests: navigated to general tab and scrolled by. flipped between tabs
Bugfix: fix pack overlay missing images for buttons or main section
Tests: clicked through a couple packs, clicked on all carousel buttons
Update: start saving image StoreITemOverlay's image URLs
- adjust field naming so automation can find and fill in urls
- ran automation
Tests: navigated to bowless crossbow page, some textures are missing (expected)
Bugfix: ensure CoverImage is active when we succesfully load the image
This makes FactoryDoor render correctly
Tests: checked store for factory door
Update: fixup SkinTile to use CoverImage instead of RawImage
- get rid of SkinTile_General that did above but used in only couple places
Tests: navigated through all of store, everything looks correct, only barn door is missing (y tho)
Update: make store page fallback to assets from UI bundle if failed to load textures from backend
- item tile now only initializes once it's shown (as was intended this entire time)
- fixed duplicating OnImageLoaded callbacks
- reactive cover image if httpImage failed
Tests: navigated through store - right images are in place, but wrong layout. need to figure out how to unify it all
Update(editor): UpdateImageUrls - add progress bar and generalize field lookups by naming convention
Tests: ran script with artificial delays during image upload stage
Update(editor): UpdateImageUrls automation - scans referenced store textures and tries to upload changed, while fixing up urls
Tests: most of store UI is now missing images (as there's no backend content)
Update: rewrite prefab scanning to work via SerializedObject/Prop
Unity already solves working with structs, so I'll just use their tech
Tests: partially wrote out url assignment automation, it assigns a struct field. ran bundle assignation
Update: bring over crystalar store prefabs, setup with dynamic refs
- fix a bug with property drawer not being able to handle null/no selection
- run bundle assignation script
Tests: navigated through store in editor, saw it there. clicked to it's page, all sprites and vids were there
Merge: from main
- some bits were manually resolved, will need updating menu prefabs
Update: add store.unloadAssets convar, default true
Controls whether hiding store unloads assets or not. To re-enable requires restarting the game
Tests: navigated store in bundled editor with convar disabled
Bugfix: fix disconnect flow causing double unsubscribe
- introduce UI_Windon::OnVisibilityChanged
- move all the sub/unsub code to it
Tests: editor and standalone, connected to server then disconnected. tried connecting to bad ip while on store page
Bugfix: recache icons when opening menu via escape and arriving at the store
Tests: standalone - connected to the server and opened-closed menu multiple times
Optim: consolidate bundle un-/sub to store opening closing
- force reload the active tab when opening store page
Lets us unload resources while being ingame. Saves us 380MB in textures
Tests: both backends in editor, took snapshots in standalone client. Noticed reopening shop now has borked images in standalone >.>
Bugfix: make sure grids of general store tab get notified about closure
Avoids growing asset bundle ref count
Tests: navigated through abunch of menus, no errors
Update: convert icons on DLC tab to be dynamic refs
- updated StoreBundleTool to auto-update stale properties after bundle assignment
- ran dyn ref bundle assign
- also made CoverImage only do non-unity-null check as it was misfiring
Tests: navigated through in editor both in db and bundle backends, tried standalone
Bugfix: fix loading prefabs from asset bundles via nested components
Tests: booted in bundle editor, was able to click on shop UI
Undo: pulling in originals is unnecessary atm
Not doing it avoids accidentally pulling in unexpected prefabs that can be used outside the dynamic bundle
Tests: none
Update: pull prefab originals if prefab variants were assigned to dynamic bundle
Pulls just 1 prefab, but worth to do anyway. Still chasing why engine fails to load prefabs in bundle mode.
Tests: built new bundles, checked manifest and loaded in editor
Update: gather assets into dynamic UI bundle as a first step, to capture all deps (40MB -> 0.6GB)
- mode ui/menu2 assets from props-other assetscene to prefabs (otherwise no idea how it used to work before)
- also add a bit earlier error checking when loading from bundle
Tests: editor in bundle mode - able to see all but 2 icons, but prefabs are not loading
Bugfix: dynamically load sprites in store's item overlay
- converted some ugly safety code to new IsValid extension
Tests: navigated and clicked through all the shop UI - stuff was there
Bugfix: make shop tiles clickable
- reassigned bundles to resources as some were stale and wrong
- ripped out Update Dyn Ref action, as the data source is now not saved
- also replaced manual FileSystem calls with Load method to keep it clean
- improved dynamic resource logging to know which resource failed to load
Tests: was able to navigate through all menus of shop. gotta fix missing icons in places
Update: Mark all static asset props as NonSerialized
This breaks asset dependency link, can test if everything correctly hooked up
Tests: navigated shop ui - most tiles are there but some not clickable. dlc pages open but missing icons in detail view
Bugfix: ensure coverImage is enabled when initialized after initEmpty
Think it's time to move to standalone testing
Tests: navigated shop UI - all tiles had images