Module
The module is one of the most important parts of the tool and provides a lot of flexibility to the system.
What does it do?
This service is used to setup the system within the scene on runtime. It triggers a host of services to setup and starts the simulation.
What can I do with it?
There are two main factors for the module service which has an impact on what it does; the module settings and the dependency injection.
Module Settings
Can be accessed via the menu bar at the top. CIVIL-AI-SYSTEM -> Module Settings
This is loaded on start and is used to change how the system is setup. This can have an impact in a number of ways which can include loading different versions of structure types, omitting certain systems or changing starting values.
Dependency Injection
This is a method of reducing the hardcoded dependencies between objects by using interfaces. When this is supported there is a need to initialise classes to use the right version of the class and/or to setup factories to allow for them to be selected at runtime. This is all supported within the tool and is done from the module service.