branchrust_reboot/main/ui_store_slim_ramcancel
68 Commits over 334 Days - 0.01cph!
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
Bugfix: restore DLC prefab setup which caused NREs on dlc tile click
- ran dyn ref assign
Tests: clicked through all dlc items - all open
Bugfix: avoid invalidating sprites when shop opens (caused by closing page on warmup)
- Moved tab opening to OnOpened, after dynamic bundle resources were loaded
- also implement better handling of overwrites
Too much time chasing editor boot optim skipping warmup causing weirdness
Tests: could scroll in general shop page, most of the tiles were clickable, only special dlc items were throwing. Still missing icons
Bugfix: rename a field to let StoreBundleTool find replicated ref field
- ran dyn ref & bundle assigns
Tests: can click on featured tiles in store (but tile icon was still missing)
Update: ran "Update UI bundle assignments"
- fixed it up to skip reimporting assets with correct bundle assignations
Tests: checked meta files
Update: progress on reviving dynamic shop assets
- restore most of ui logic to cache/uncache dynamic bundle
- make storeitemdlc use dyn ref for page prefab
- change store logic to create empty tiles on warmup, then fill with content once opened
Tests: ran through the store in the editor. it's broken in a bunch of different ways, but seeing signs of system engaging, so progress
Update: add DynamicFullscreenSprite and DynamicGallerySprite to shadow respective fields on UI_StoreItemOverlayPage
- updated StoreBundleTool to also inspect private fields marked with SerializeField
- updated PageElementDrawer to render DynamicRef fields (and fix layout issues)
- ran UpdateDynRefs
Tests: inspected serialized prefabs
Update: Add DynamicPagePrefab to "shadow" PagePrefab field on ItemStoreTakeover
- added default picker rendering to DynamicResourceRefDrawer
- ran StoreBundleTool to auto-assign DynamicPagePrefab
Tests: inspected the prefab changes
Update: submitting the results of script run
Tests: none
Update(editor): automate copying of original resource to DynamicResourceRef
- change DynamicResourceRef to be a class type (reflection modification on values is quite a bit oh hassle). Will try to fix later if I got time
Tests: ran the new script, checked the modified prefabs
Update: Add DynamicResourceRef to UI_StoreTakeover
- amend prop drawer to invoke the right prop
Tests: none
Clean: remove PathProxyFor
- update StoreBundleTool to work with DynamicResourceRef
Tests: none, not in use yet
Update: Add DynamicResourceRef<T> to replace PathProxyForAttrib
Allows us to both automate more of the dynamic bundle assignment as well as help with future merge conflict resolution
Tests: added it to UI_StoreTakeover and it's drawer
Bugfix(editor): fix store prop drawer failing to draw
- added a fallback path for original image property
Cuased by missing path proxy field that I ripped out during merge
Tests: inspected JungleShowcase ui prefab
Buildfix: fix merge issues
Tests: editor opens
Merge: from main
Been a year, lets see how borked everything is
Bugfix(editor): StoreBundleTool - handle invalid paths
This can happen if the serialized path now points to renamed or deleted resource.
Tests: none, don't have a case like that right now.
Update(editor): StoreBundleTool - stage timings emit volume of work
Makes it easier to confirm if it's doing anything when there are no dirty changes
Tests: ran the tool
Clean(editor): remove Tools/Menu2
Checked both the editor pref by variable and by value, they're not used anywhere
Tests: none, trivial change
Update(editor): StoreBundleTool - scan scriptable objects
- fix assembly scanner skipping public fields if it's type is nested
Tests: created a dummy scriptable object, ran a scan - it got picked up
Updateeditor): StoreBundleTool - activate bundle assignment code
- removed extra logging
Tests: editor compiles
Update(editor): StoreBundleTool - scan for already-assigned-to-bundles resources
- fixed timer reporting invalid times for sections of code
Tests: ran it, doesn't find any diffs with my manual assignments from last month
Update(editor): StoreBundleTool - add proxy path scanning from existing prefabs
Tests: ran the code, checked some of the paths. gotta implement comparison to fully validate
Update(editor): StoreBundleTool - add support for array traversal
Tests: ran the tool, it found all annotated fields
Update(editor): StoreBundleTool - properly implement reflection shortcutting
Tests: stepped through how it's accumulated. will test more later
Update(editor): start of StoreBundleTool - automates bundle assignment for properties with ProxyPathFor attrib
- starting with assembly scanning
Idea is to scan the assembly, detect all the relevant fields, resolve them and assign referenced assets to the bundle
Tests: ran it, doesn't find all fields yet
Update: don't build UI bundle for server bundles
Tests: none, trivial change
Clean: get rid of StoreTakeover internal warmup count
It never goes past 1 since we fixed open order of store
Tests: stuck an assert and validated poked at different menus
Bugfix: ensure StoreItemGrid caches local source bundles
Fixes wrong imges displayed in the shop for specific items
Tests: navigated to store and clicked a bunch of pages. Compared before and after images
Update: reimplement UI_StoreItemGrid population
- Warmup completelly skips initialization of tiles
- Expanded the interface to permit existing custom usage (filtering via search, editor test tools)
Tests: Clicked through a bunch of tabs and tiles, used search
Update: remove extra CacheBundleIcons calls from store tabs
Previously were needed because tab could open before the store - since it was fixed, it's unnecessary
Tests: navigated to store tabs - no errors
Clean: StoreItemGrid.Warmup -> OnOpened
Review feedback pt 2
Tests: none, trivial change
Clean: rename WarmupIcons to CacheBundleIcons
Review feedback pt1
Tests: none, trivial change
Update: AssetDatabaseBackend - throw an error if trying to load an asset that's not part of a dynamic bundle
Tests: clicked through store in editor