Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Loadout Items ADR #1830

Merged
merged 1 commit into from
Jul 31, 2024
Merged

Add Loadout Items ADR #1830

merged 1 commit into from
Jul 31, 2024

Conversation

erri120
Copy link
Member

@erri120 erri120 commented Jul 31, 2024

Also fixes the count on the loadout card.

Part of #1763.

@erri120 erri120 requested a review from a team July 31, 2024 11:10
@erri120 erri120 self-assigned this Jul 31, 2024
@erri120 erri120 mentioned this pull request Jul 31, 2024
70 tasks
@Sewer56
Copy link
Member

Sewer56 commented Jul 31, 2024

This works for me, but I'll leave it for @halgari and @Al12rs to add any addendums they wish to.

Previous Resources:

@Sewer56
Copy link
Member

Sewer56 commented Jul 31, 2024

I think what would help in understanding, is also giving an example of how a conventional 'mod' is represented with the new system.

I wasn't involved in original planning of LoadoutItems, but with the current system, as I understand it given around 1.5 hours of poking around for GC stuff:

  • Each file is a LoadoutFile -> LoadoutItemWithTargetPath -> LoadoutItem (arrow meaning inheritance)
  • An installed archive (formerly 'Mod') is a LoadoutItemGroup which does not contain a parent.
    • Each file from that archive has the LoadoutItemGroup set as the parent.
    • Any file with custom metadata should extend LoadoutFile, and contain a custom marker.
    • Any group (e.g. type of mod, RedMod etc.) should extend LoadoutItemGroup with custom marker.
  • Items are stored in library by linking a LoadoutItemGroup with a LibraryItem in what's essentially a join table. (Edit: Entries of these tables are themselves LoadoutItems)

This works for me, but these kinds of relationships should be stated clearly somewhere in dev docs; in order to try better document the system.

@Sewer56
Copy link
Member

Sewer56 commented Jul 31, 2024

Aah, this also needs to update mkdocs.yml.

@halgari halgari merged commit b5cae92 into Nexus-Mods:main Jul 31, 2024
12 checks passed
@erri120 erri120 deleted the feat/1763-adr branch August 1, 2024 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants