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

Plugin architecture #339

Open
ekolis opened this issue Nov 29, 2024 · 0 comments
Open

Plugin architecture #339

ekolis opened this issue Nov 29, 2024 · 0 comments
Labels
enhancement New feature or request idea A large scope idea that needs to be discussed before it can be implemented.
Milestone

Comments

@ekolis
Copy link
Owner

ekolis commented Nov 29, 2024

What do you want to see?
A proper plugin architecture, where you can replace various stock code (see #322) such as construction queues or vehicles with custom logic that implements the same interfaces.

In a mod definition, you could specify which stock modules you'd want to override and with what classes from what DLLs / scripts. These would correspond to the injected classes in dependency injection.

How would it help players?
Makes modding even more powerful!

Alternatives
???

Screenshots and mockups
N/A

Things to consider
Should we allow DLLs, scripts, or both to be imported?

How can we keep plugins in sync between players in a multiplayer game? Names and version numbers, perhaps?

Are we just giving up on securing the API?

Should the existing injected modules be broken down into smaller pieces or be given virtual methods so they don't have to be replaced wholesale?

Where should these plugins be stored? In a mod directory? In a separate directory hierarchy called Plugins (since probably many mods will use the stock plugins or any other set of plugins)?

Related issues
#322 - dependency injection which makes plugins possible

@ekolis ekolis added enhancement New feature or request idea A large scope idea that needs to be discussed before it can be implemented. labels Nov 29, 2024
@ekolis ekolis added this to the beta-1 milestone Nov 29, 2024
@ekolis ekolis mentioned this issue Dec 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request idea A large scope idea that needs to be discussed before it can be implemented.
Projects
Status: No status
Status: To do
Status: To do
Development

No branches or pull requests

1 participant