Plugin Points
There are places in Source where plugins can connect: shorthand is Plugin Points.
Here are some of them.
- Extend IDataPluginDataModel
- This means your plugin can be added to the plugin data model list in Source.
- You can write persistence
- Great way to store custom data
- Extend IPluginPreInitialise, IPluginInitialise, IPluginFinalise, IPluginRunStart, IPluginBeforeStep, IPluginAfterStep and/or IPluginRunEnd,
- You get a method that will be called at points in the run cycle
- Extend IAddProvenance or IStoreProvenance
- Similar to IPluginPreInitialise etc, except can't change state.
- Designed to add or store provenance
- Extend IControllerExtension and add a MenuItemAttribute
- You'll end up in the menu!
- e.g. [MenuItem("Floodplain Harvesting", MenuType.Tools, 999, ScenarioType.RiverManager)]