Repository navigation
Conversation
ChronosWS
force-pushed
the
feat/resource-manager
branch
from
October 26, 2026 14:46
9e0d09f to
ca679b1
Compare
ChronosWS
force-pushed
the
feat/resource-manager
branch
from
October 28, 2026 00:40
9fae734 to
e50daea
Compare
Introduce the byte/provider layer, resource configuration, registry and metadata APIs without changing decoding or wiring migration consumers. Temporarily allow dead_code and unused_imports only on the Resources module declaration; the dependent migration removes this allowance.
2 of 7 tasks
Replace the obsolete Resources engine with pack backends, suppliers, repository sources, and reloadable managers. Initialize resource views in AppCore and retain verified installer JARs for format metadata. Preserve the existing asset stack while consumer adoption remains deferred.
Add 211 API-focused resource tests with shared trait assertions and backend fixtures, including test-only supplier helpers and RAII cleanup. Fix ZIP empty-directory listing parity discovered by the regression tests: construct the prefix as root + directory + slash, matching Vanilla even for an empty directory.
Add direct ResourceId::from_parts construction with private parsing helpers. Add 15 black-box path_validation cases covering resource representability and pack path containment.
Make selected resource content transferable through Arc suppliers and Send readers, with pinned ZIP generations and atomic close state. Load the sound registry from the active resource manager and hand selected content to the audio worker for decoding. Invalidate cached buffers on resource activation while retaining incremental streaming without buffering full encoded audio. Plumb borrowed resources through existing audio callers and update the resource contract documentation.
Move remaining non-shader consumers to ResourceManager with typed and constant resource IDs and resource-backed font, model, and texture reads. Integrate local and server pack selection with the shared resource view, separate application activation from UI catalog capabilities, and bootstrap headless and benchmark consumers through resources. Remove the legacy resource-pack manager and filesystem resolver. Preserve the separate audio migration and the resource-system foundation beneath it.
ChronosWS
force-pushed
the
feat/resource-manager
branch
from
November 2, 2026 14:34
3701f46 to
f0fd90b
Compare
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.
Depends on #822
Type of change
Overview
This is the companion to PR #822 which introduces the Resource system. This migrates from the original per-consumer serialization and resource handling code to the centralized system with shared loading and consistent lookup/behavior. Additionally, live resource pack changes are now supported while you are connected to a game server. No general asset-format rewrite is included; the aim is more consistent and extensible resource handling.
Compatibility
Review Notes
Most of the changes in this PR are relatively mechanical and so hopefully are easy to review. Idiosyncratic resource access is replaced by calls to the ResourceManager. Resource id's now have a typed constructor (including compile-time variants). Asset loading is not refactored here but the edges of that system are touched. Unit tests for the ResourceManager don't appear here - they are in #822.
Testing and validation
just client-pre-propens_two_worlds_in_one_processtest.cargo check -p pomme-client --all-targets--features test-harness,cpu-bench,ttf-fontsgit diff --checkValidation used the pinned nightly toolchain and Vulkan SDK 1.4.363.0 sourced with
setup-env.sh --set-dep-ld. The default-feature check and client test build emit two non-fatal dead-code warnings (Action::default_keyandTerrainVertices::vanilla); the official strict Clippy gates pass. This does not claim exhaustive coverage of every resource API or platform.Manual validation has also been completed, including theme changes and adding/removing resource packs during a connected session.