Skip to content

feat: ✨ ML Options: Add the groundwork for loading custom options #145

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

Merged

Conversation

ithinkandicode
Copy link
Collaborator

@ithinkandicode ithinkandicode commented Feb 27, 2023

Adds the ability to manage various ModLoader options through Godot's own GUI.

I've set this up so that you can quickly change the options profile you want to use. There's a file called options_current.tres, which determines the options resource that's currently being used. I've provided a few other profiles too.

I've put all the options stuff in its own directory as there's quite a few files.

ml-options-v2-current

Todo

  • So far I've only integrated the enable_mods option, as I want to get feedback from you guys before this proceeds further. So the other options still need to be integrated. But that would be better in a subsequent PR, so that this one remains focused on just adding the groundwork.
  • I also haven't set this up with the auto install scripts, if someone else could handle that I'd appreciate it greatly as I haven't really worked on that part of the code!

Notes

Docs: https://github.com/GodotModding/godot-mod-loader/wiki/Upcoming-Features#options

Related:

@Qubus0
Copy link
Collaborator

Qubus0 commented Feb 27, 2023

Neat and definitely more user friendly than all the flags. We might want to integrate the flags with the options system though - parse them in the ModLoader _init and only use them later. Flags should override the options though.

I don't think we need all of those examples, the options are pretty self-explanatory, especially if we use export hints like this for dictionaries export(String, DIR) var path_to_mods (see: https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_exports.html)

@ithinkandicode
Copy link
Collaborator Author

ithinkandicode commented Feb 27, 2023

@Qubus0 The examples aren't to help people understand the options, they're for quickly applying options without affecting your current settings:

  • current = Your current settings, can be anything
  • default = Reset to default without affecting current settings
  • disable_mods = Quickly disable all mods
  • production*_ = Deploy for distribution (workshop and non-workshop versions, depending on the game)

So they basically act like profiles. That's why options_current.tres exists, since otherwise all your options would be stored in a single resource, with no way to quickly change option profiles.

I guess it was the being called options_examples that was confusing? I've renamed it to options_profiles

@ithinkandicode
Copy link
Collaborator Author

@Qubus0 Turns out that renaming them to profiles works so much better! Thanks for the feedback

@ithinkandicode
Copy link
Collaborator Author

We might want to integrate the flags with the options system - @Qubus0

See #146 for discussion on things like that, this is just the initial groundwork :)

@ithinkandicode ithinkandicode added this to the ML Options milestone Feb 27, 2023
Copy link
Collaborator

@Qubus0 Qubus0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool stuff, small remarks, overall approved!

@ithinkandicode
Copy link
Collaborator Author

All review issues have been resolved, thanks for the review @Qubus0 :)

@ithinkandicode ithinkandicode merged commit e01a5d5 into GodotModding:development Feb 28, 2023
@ithinkandicode ithinkandicode deleted the options-resources branch February 28, 2023 22:43
@ithinkandicode ithinkandicode modified the milestones: ML Options, v6.0.0 Mar 25, 2023
@ithinkandicode ithinkandicode changed the title ML Options: Add the groundwork for loading custom options feat: ✨ ML Options: Add the groundwork for loading custom options Jun 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants