You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What problem does this solve or what need does it fill?
I want to give Plugin consumers an extra level of fine tuning by allowing them to replace preexisting systems in a schedule with their own system.
What solution would you like?
When system foo is replaced with system bar:
foo is removed from the schedule, and bar is added.
All SystemSets that foo was in, bar should be added to.
Preexisting schedule constraints for foo should be copied over to bar.
Any schedule constraint added later to foo should be instead rerouted to bar.
Suggested API:
implApp{// Note that its some new singular `IntoSystemConfig` type rather than the plural `IntoSystemConfigs`.// Allowing multiple systems on either side would make this too complex.pubfnreplace_system<A,B>(&mutself,schedule:implScheduleLabel,from:implIntoSystemConfig<A>,to:implIntoSystemConfig<B>);}
This also means the system to be replaced must be nameable/visible (non-private) to consumers.
What alternative(s) have you considered?
Require consumers to replace whole Plugins.
The text was updated successfully, but these errors were encountered:
Related to #2160, and depending on the implementation details, #279.
alice-i-cecile
changed the title
System Replacement: Fine grained schedule modding
Plugin System Replacement: Fine grained schedule modding
Nov 24, 2023
What problem does this solve or what need does it fill?
I want to give Plugin consumers an extra level of fine tuning by allowing them to replace preexisting systems in a schedule with their own system.
What solution would you like?
When system
foo
is replaced with systembar
:foo
is removed from the schedule, andbar
is added.SystemSet
s thatfoo
was in,bar
should be added to.foo
should be copied over tobar
.foo
should be instead rerouted tobar
.Suggested API:
This also means the system to be replaced must be nameable/visible (non-private) to consumers.
What alternative(s) have you considered?
Require consumers to replace whole Plugins.
The text was updated successfully, but these errors were encountered: