N_WolfCurses - Maxwolf/WolfCurses GitHub Wiki
Core library, holds the simulation application abstract class. Any new simulations will need to have their primary entry point inherit this class.
Class | Description | |
---|---|---|
![]() |
ArrayExtensions | Helper methods for working with arrays. |
![]() |
AttributeExtensions | Meant for dealing with attributes and grabbing all the available classes of a given type with specified attribute using generics. |
![]() |
EnumerableExtension | Collection of extension methods used for manipulating a enumerable collection of objects. |
![]() |
InputManager | Deals with keep track of input to the simulation via whatever form that may end up taking. The default implementation is a text user interface (TUI) which allows for the currently accepted commands to be seen and only then accepted. |
![]() |
Module | Base implementation of the IModule interface which allows for some overrides to be virtual so every implementation doesn't have to use them. |
![]() |
Randomizer | Used for rolling the virtual dice in the simulation to determine the outcome of various events. |
![]() |
SceneGraph | Provides base functionality for rendering out the simulation state via text user interface (TUI). This class has no idea about how other modules work and only serves to query them for string data which will be compiled into a console only view of the simulation which is intended to be the lowest level of visualization but theoretically anything could be a renderer for the simulation. |
![]() |
SimulationApp | Base simulation application class object. This class should not be declared directly but inherited by actual instance of game controller. |
![]() |
StringExtensions | Utility class that contains useful extension methods that make working with strings a little easier and less repetitive. |
![]() |
TypeExtensions | Helper class that deals with activating classes without using the actual activator class because that requires and empty parameterless constructor and we cannot always guarantee we will be able have one. Using these methods don't require a constructor to be used and furthermore the use of expressions to generate them ensures caching so penalty for type activation is only hit once on first instance creation. |
![]() ![]() |
TypeExtensions.New(T) | Create expression is effectively cached and incurs penalty only the first time the type is loaded. Will handle value types too in an efficient manner. |
![]() |
Window(TCommands, TData) | Facilitates the ability to control the entire simulation with the passes interface reference. Server simulation keeps track of all currently loaded game modes and will only tick the top-most one so they can be stacked and clear out until there are none. |
![]() |
WindowData | Used to make sure that every Windows info class has a basic data structure that we can rely on for creating it via Windows factory. |
![]() |
WindowFactory | Factory pattern for creating game modes on the fly during runtime based on enumeration input parameter. |
![]() |
WindowManager | Builds up a list of game modes and their states using reflection and attributes. Contains methods to add game modes to running simulation. Can also remove modes and modify them further with states. |
Interface | Description | |
---|---|---|
![]() |
IModule | The Module interface. |
![]() |
ITick | Used by simulation and all attached modes and their states. Allows them to receive ticks and understand the difference between a system tick that occurs unpredictably and a simulation tick which occurs at fixed intervals based on the tick delta of incoming system ticks adding up to whatever constant is set in the core simulation. |
![]() |
IWindow | Underlying game Windows interface, used by base simulation to keep track of what data should currently have control over the simulation details. Only top most game Windows will ever be ticked. |
Delegate | Description | |
---|---|---|
![]() |
SceneGraph.ScreenBufferDirty | Fired when the screen back buffer has changed from what is currently being shown, this forces a redraw. |