GithubHelp home page GithubHelp logo

Comments (23)

HebaruSan avatar HebaruSan commented on July 20, 2024
  • Flip the dependency: WildBlue-PlayMode-ClassicStock should depend on ClassicStockResources, not the other way around.

This just seems wrong to me. It's a separate mod that the (non-CKAN) user can choose to install or not. If flipping the dependency was appropriate, then there would be no reason for ClassicStockResources to exist as its own mod outside of the base WildBlueTools. It would just be some additional cfg files in the Templates/ClassicStock folder of that mod.

The current relationship, on the other hand, makes sense to me. In order to use the resources that come with ClassicStockResources, you need the definitions of the ClassicStock play mode and the tools for managing/switching play modes, both of which are in WildBlueTools.

WildBlueTools' installation instructions in Readme.txt in the ZIP say nothing about also needing to install ClassicStockResources:

Wild Blue Tools

A KSP mod that provides common functionality for mods by Wild Blue Industries.

---INSTALLATION---

Copy the contents of the mod's GameData directory into your GameData folder.

Everything about the actual contents and structure of these mods aligns with the current metadata and away from the proposed changes. Is there some contrary objective aspect of it that I'm missing here?

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Found a confounding factor: DSEV bundles ClassicStockResources:

image

So the intention there would seem to be to make the ClassicStockResources configs always available in case the user chooses the ClassicStock play mode. In effect, bundling is an implicit way of defining a dependency without mentioning it in installation instructions.

The same pattern holds for:

  • DSEV
  • Pathfinder
  • MOLE
  • Heisenberg
  • Buffalo

That makes me a lot more comfortable with the idea of flipping the dependency.

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Taking a look at the rest of the metadata, the RationalResources family are the only others depending on ClassicStockResources. The other relationships mentioning that identifier are supports. And I don't think any mods outside the WildBlue family interact with the play mode structure. So the risks for other mods should be minimal.

Alright, I'm turning my key. 🔑
I'll start a pair of PRs in NetKAN and CKAN-meta with these changes to properly reflect the bundling structure.

Thanks for spotting this and being persistent.

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024
  • MAYBE: make WildBlue-PlayMode-Pristine conflict with ClassicStockResources

This might be best handled by leaving the current CSR→CSP dependency in place while adding CSP→CSR (a circular dependency to effectively turn them into one logical mod). Then if you install ClassicStockResources, you're forced into the ClassicStock play mode, and we don't have to mess with the other play modes.

  • MAYBE: make WildBlue-PlayMode-Simplified depend on ClassicStockResources

This wouldn't be a valid state of the WildBlue mods, would it? If you install without CKAN and switch to Simplified play mode, WildBlueTools would rename ClassicStockResources' .cfg files to .txt and they wouldn't be loaded.

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

This might be best handled by leaving the current CSR→CSP dependency in place while adding CSP→CSR (a circular dependency to effectively turn them into one logical mod). Then if you install ClassicStockResources, you're forced into the ClassicStock play mode, and we don't have to mess with the other play modes.

I only did a cursory skim but I'm pretty sure that Simplified play mode uses resources from ClassicStockResources so I don't think this works.

This wouldn't be a valid state of the WildBlue mods, would it? If you install without CKAN and switch to Simplified play mode, WildBlueTools would rename ClassicStockResources' .cfg files to .txt and they wouldn't be loaded.

Should be tested!

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Should be tested!

Done. I installed DSEV and Pathfinder manually, then switched to Simplified (which apparently is known in-game as "Lite Blue"):

image

And now all of ClassicStockResources' .cfg files are renamed to .txt:

image

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

And now all of ClassicStockResources' .cfg files are renamed to .txt:

Did you check every file that is included in the ClassicStockResources ckan module?

image

I'm worried that some of those are required by the Simplified play mode.

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Two files are left as .cfg, the one that defines which files are included in the play mode, and the one that defines the IntakeLqd resource:

image

That name is only used in this one part definition:

image

So we might need to split up ClassicStockResources into a main module (the Common folder) and ClassicStockResources-PlayMode-ClassicStock. Sigh.

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

I don't think we necessarily need two separate modules, right? Simplified play mode is clearly expected to be usable with ClassicStockResources installed. What's the motivation for making ClassicStockResources depend on the play mode?

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Simplified play mode is clearly expected to be usable with ClassicStockResources installed

Why do you say that? So far nothing we've found relates directly to the Simplified play mode.

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

But yes, it does need to be two separate modules, to accurately model the two states of ".cfg files are left alone" (when using ClassicStock play mode) and "all but one .cfg file are renamed to .txt" (when using any other play mode).

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

Yeah I made that comment based on the fact that mods which support the simplified play mode sometimes bundle classic stock resources, and they’re in .cfg form there. But you’re right, if you select simplified mode then those effectively get disabled.

If you install ClassicStockResources outside of ckan, the resources are in .cfg files. Isn’t it possible that some other mod uses those resources directly and doesn’t have anything to do with play modes?

rather than make ClassicStockResources depend on the play mode, why not make the other play modes conflict with ClassicStockResources? That seems correct, meaning that if you have CSR then you must use the corresponding play mode.

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Rather than trying to answer a bunch of hypotheticals, are there actual problems with the current metadata as it stands?

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

Rather than trying to answer a bunch of hypotheticals, are there actual problems with the current metadata as it stands?

Don’t many of the RationalResources family mods depend on CRP or CSR, and if you select CSR you shouldn’t necessarily be forced to install the WBI play mode?

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Does that cause a problem?

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

Not that I know of, but it spiderwebs into other dependencies like Wild Blue Tools and Kerbal Actuators. What does making Classic Stock Resources depending on Classic Stock PlayMode buy us?

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

The current dependencies of ClassicStockResources are:

depends:
  - name: ModuleManager
  - name: ClassicStockResources-PlayMode

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

agh, what??
image

this is madness. Why is a CRP mode there?

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Because you can install ClassicStockResources/Templates/Common/Intakelqd.cfg and have it active while CRP is installed.

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

Because you can install ClassicStockResources/Templates/Common/Intakelqd.cfg and have it active while CRP is installed.

You can but it's a no-op because everything in that file has :NEEDS[!CommunityResourcePack]

from netkan.

HebaruSan avatar HebaruSan commented on July 20, 2024

Sure. Which means that mods that bundle it can be used in other play modes.

from netkan.

ProgrammerFailure avatar ProgrammerFailure commented on July 20, 2024

Hello, I am running into a metadata problem that seems related to this.
I have WBI USI play mode installed:
https://github.com/TheDogKSP/WBIPlaymodeUSI

I am trying to install Pathfinder, which requires classic stock resources, which requires the classic stock playmode. WBI USI playmode isnt an option as a classic stock playmode, so I need to select one of the other classic stock playmode options, all of which are incompatible with WBI USI playmode. This means I am unable to use WBI USI playmode with pathfinder, which was it's intended use, rendering said playmode useless. I think this can be corrected by adding WBI USI as a playmode for Classic stock, or by removing the incompatibility between classic stock resources classic stock playmode.

from netkan.

JonnyOThan avatar JonnyOThan commented on July 20, 2024

@HebaruSan is the solution here to make the USI play mode provide ClassicStockResources-PlayMode?

from netkan.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.