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)]