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

Change id of core content pack from 'dda' to 'bn' #2115

Merged
merged 2 commits into from
Oct 31, 2022

Conversation

olanti-p
Copy link
Contributor

Summary

SUMMARY: Infrastructure "Changed id of core content pack from 'dda' to 'bn'"

Purpose of change

At the moment, DDA and BN share the same core content pack id - dda. Because of that, any external DDA-compatible mod installed on BN will show up as compatible with BN in UI, but will throw arcane errors when attempting to load the world.

Describe the solution

Migrate to new content pack id:

  • Create a new core content pack mod that's just a copy of existing dda mod, but with id bn
  • Make dda into an empty obsolete mod that depends on bn
  • Change all mainline mods to depend on new bn
  • Adjust C++ code to use new id for core content pack

This way:

  • All mainline mods show up as depending on Bright Nights
  • All external mods that haven't migrated will show up as depending on Bright Nights (wrapper), but will keep functioning
  • All existing saves will have the new bn mod automagically loaded because dda now depends on it
  • Once the next stable rolls out and external mods have migrated to depend on bn, we can remove dda mod which will make all mods that depend on dda (DDA mods) incompatible with BN.

Describe alternatives you've considered

Hack it by adding "is_compatible_with_bn": true to MODINFO object.

Testing

  • Created new world with no mods
  • Created new world with mainline mods
  • Created new world with mainline mods before migrating them to new id, Bright Nights (wrapper) gets automatically added to mod list
  • Loaded an existing save that has only dda in its mod list, Bright Nights gets automatically loaded before Bright Nights (wrapper), but save's mod list stays unchanged (expected behavior)
  • Removed dda mod, added dda->bn migration to data/mods/replacements.json and tried to create new (or load existing) world. Result: mods that depend on bn work as expected, mods that depend on dda show missing dependency, saves that use dda have their mod list updated to use bn

@olanti-p olanti-p force-pushed the explicit-bn-compatibility branch from b8014c2 to 40ddc02 Compare October 23, 2022 23:17
@scarf005 scarf005 added src changes related to source code. JSON related to game datas in JSON format. tests changes related to tests mods PR changes related to mods. labels Oct 26, 2022
@Coolthulhu Coolthulhu self-assigned this Oct 30, 2022
@Coolthulhu Coolthulhu merged commit 8c20f74 into cataclysmbnteam:upload Oct 31, 2022
@Coolthulhu
Copy link
Member

Make dda into an empty obsolete mod that depends on bn

That's surprisingly elegant. For some reason I didn't think of it.

chaosvolt added a commit to chaosvolt/cdda-arcana-mod that referenced this pull request Nov 1, 2022
* Made it so thunder gauntlets deal non-elemental damage to justify the life drain always working.
* Made blast damage of veinreaver slightly closer to in line with expected energy expense, buffed throwing damage.
* Standardized DDA version explosive power for blast canisters at 5x the damage values of BN version.
* Update required core mod for BN version and patchmods now that cataclysmbnteam/Cataclysm-BN#2115 has been merged, still gonna have to do this with other mods too.
* Removed the risk of electrical discharge from distortion amplifier motors because it was annoyingly prone to discharging even while the engine is off, when it was intended to only do so when active.
* Per feedback, displacement surge generators have been converted from unlimited electrical energy to an infinite-use motor, power output beefed up to be half that of the distortion amplifier motor.
@olanti-p olanti-p deleted the explicit-bn-compatibility branch December 2, 2022 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JSON related to game datas in JSON format. mods PR changes related to mods. src changes related to source code. tests changes related to tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants