CollisionBox – The basic physics component added to any physics object. Based on MonoGame.Extended.RectangleF class, contains all additional functionality necessary for platformer physics with custom collision and overlap events.
Collision/Overlap info – All information associated with a collision or overlap event, created and passed to event handlers when event called.
PhysicsHandler – The core class that handles all physics interactions with layers based on object labels and masks for collision and overlap with other objects.
CellGrid – Container used for PhysicsHandler layers in order to cull unnecessary comparisons in collision and overlap updates.
NPCDialogueSystem – Core class for holding and managing all interactions, with functionality for weighted selection of possible interactions based on conditions. Reads and separates interactions from a tsv created by our writer, sending unparsed interactions to interaction class.
NPCDialogueInteraction – Class for a single interaction, with all relevant information and events. Parses information when loaded, sending unparsed individual line info to dialogue line class.
NPCDialogueLine – Class for a single line of dialogue. Contains the all relevant information for a single line of dialogue, parsed fully when loaded.
NavMesh – Class containing all relevant information about a character’s navigation map, including edges. Generated on construction.
NavMap – Class containing all possible navigation points, generated dynamically when entity is created based on collision box size and wall tile information.
NavPoint – Information about a single point with relevant tile and platform type information.
BaseCharacter – A basic abstract class for movement and animation behavior shared by all characters.
AICharacter – An abstract class inheriting from BaseCharacter for all behavior control and navigation shared by all AI characters. Uses a simple state machine for behavior.
Enemy – Class used by all enemy objects inheriting from AICharacter, with all relevant information to define individual monster types and behavior states with wandering, attacking, and cool down.
NPC – Refugee class inheriting from AICharacter with behavior states for wandering and conversing.
TileMap – Extends the MonoGame.Extended.Tiled tile map loading and rendering classes to generate collision objects, populate spawn/forage points, world lights, and manage map entities.
SpawnPoint – Abstract class for all information common for game entity spawn locations, including type or range of types that can be spawned at given location.
EnemySpawn – Inherits from SpawnPoint, defining Spawn() to create a new enemy of given type at spawn point.
ItemSpawn – Inherits from SpawnPoint, defining Spawn() for a dropped item.
ForageSpot – Class containing all relevant texture and growth information for a foraging location of type given by the TileMap.
ForageInfo – Static class defining growth and name information for all possible foraging types.
PickupItem – Simple class for items that have been dropped, with collision and despawn timer.
LightManager – Class managing static and dynamic light objects, as well as formatting arrays of data for the shader.
AreaLight/DirectionalLight – Classes for easily defining relevant information for a given light object.
CastShadows – A custom HLSL shader that casts rays from light sources given light info and occlusion mask to calculate light value of each given pixel, assigning the value to the alpha of the pixel. Smooth shadow render target is then drawn with a custom HLSL shader created by a teammate to map opacity to a dither spritesheet.
WeatherElement – Abstract class for general information about a given type of weather common among all weather, including a generated noise texture.
Rain –
C# class – Generates a random noise texture and manages scroll of rain falling as well as direction.
Shader – An HLSL shader that draws only the pixels above a given density value as the specified color.
Fog –
C# class – Generates an OpenSimplex noise texture with horizontal wrap and manages horizontal scroll of fog.
Shader – An HLSL shader that uses a vertical falloff and density to determine the opacity based on the noise texture of a given pixel, finally clamping opacity values based on a user defined step value and drawing pixel as specified color.
TextureWrap – An HLSL shader that draws a texture in a given space with a given offset, tiling to fill in the space. Used by both weather classes for continuous textures.
Extends the MonoGame.Extended.OrthographicCamera class to manage pixel dimensions of game world in both windowed and full screen views, as well as controlling camera movement with the player’s location, world bounds, and player bounds.
A series of debug views that can be cycled between for both the game world camera overlay and a smaller mini-display of the entire current scene. States include camera debug, physics debug, AI debug, and player debug.
Simple class managing the loaded in sprite fonts and adding functionality for formatted printing of text with different alignments and custom parsing for line breaks.
An extension of the XNA Texture2D class, adding functionality for reading in a json file associated with a texture to generate a texture atlas. Contains functionality for different methods of drawing textures from atlas, as well as a default error texture.
A scene which uses the main graphics thread to display the amount of time spent loading and the current batch being loaded. ThreadPool is then used to load, initialize, and generate all game content, tracked by the main thread to give user feedback.