All Classes and Interfaces

Class
Description
A specialized dialog component for displaying achievement unlock notifications.
The AchievementsDisplay class is a UI component that renders a table of player achievements on screen.
The AchievementsScreen is a game screen containing the player's achievements.
For determining ActionData objects, no methods.
 
Interface for action states.
Utility class for creating action states.
Interface to define action validators.
Contains a registry of ActionValidators
Class to store data for the Advance setting Each type of advance has their own generator.
Advance auto delay state.
Advance automatically
 
Advance on key input
For JSON values "input"|"auto"|"auto_delay"|"signal".
Advance signal state.
Task-based AI component.
Cast a ray against all colliders that match the layer mask.
 
Renders animations from a texture atlas on an entity.
Interface to inject LevelGameArea into components to safely have access to Entities and Components
Arsenal class to manage the player's unlocked defences.
Allows an entity to attack the closest target entity from a list of potential targets.
The different audio busses that sound can be played on.
Stores data for the audio.play event
Implements the ActionValidator interface for concrete implementation of the validate method.
Stores data for the audio.set event
Implements the ActionValidator interface for concrete implementation of the validate method.
Stores the data for the audio.stop event
Implements the ActionValidator interface for concrete implementation of the validate method.
Created when there is a check in ActionValidator fails.
Stores data for background.
 
Draws a single texture as the world background, positioned at (0,0).
 
Stores data for the background.set event
Implements the ActionValidator interface for concrete implementation of the validate method.
Background state.
 
Base configuration class for achievements.
DeserializedAchievementConfig is a wrapper class for the BaseAchievementConfig class.
Defines a set of properties for all defenders.
An abstract class representing the stats defining an enemy, including combat stats, movement speed,
DeserializedEnemyConfig is a wrapper class for the BaseEnemyConfig class.
Defines a basic set of properties stored in entities config files to be loaded by Entity Factories.
Defines a set of properties for all generators.
Defines a basic set of properties stored in item config files to be loaded by Item Factories.
DeserializedItemConfig is a wrapper class for the BaseItemConfig class.
 
DeserializedLevelConfig is a wrapper class for the BaseLevelConfig class.
BaseSpawnConfig is a class that represents a spawn configuration.
BaseWaveConfig is a class that represents a wave configuration.
Stores beat data.
 
POJO which contains the custom data attached to each box2D entity.
Factory class for creating standardized buttons using the btn-blue texture atlas.
Component that manages camera positioning and rendering for an entity.
可拖拽卡牌:尺寸/位置用“百分比”记忆,窗口变化时自适应缩放但相对位置不变。
Stores character data.
 
 
Stores data for the character.enter event
Implements the ActionValidator interface for concrete implementation of the validate method.
 
Stores data for the character.exit event
Implements the ActionValidator interface for concrete implementation of the validate method.
Character state.
Chases a target entity until they get too far away or line of sight is lost
Stores Choice data.
Stores the data for the choice event
Implements the ActionValidator interface for concrete implementation of the validate method.
Attaches a physics collider to an entity.
 
Component used to store information related to combat such as health, attack, etc.
A generic command class.
Core component class from which all components inherit.
 
Internal type system for components.
Service for managing the config files and data loading of the game.
Periodically spawns "Scrap Metal" currency at random positions on the screen.
Interactive currency item that can be clicked to collect sunlight.
Service for managing in-level currency.
A UI component for displaying the current wave number.
Stores cutscene information.
Cutscene compiler.
 
 
 
 
Loads the JSON from a FileHandle into the relevant DTO classes.
Responsible for managing the state of a cutscene.
 
Service for managing cutscenes throughout the game.
 
 
 
the damage mapping system handles damage interactions between entities.
A command for toggling debug mode on and off.
Provides functionality to draw lines/shapes to the screen for debug purposes.
Input handler for inventory units for mouse input.
 
A default task implementation that stores the associated entity and updates status when starting/stopping a task.
This class listens to events relevant to a ghost entity's state and plays the animation when one of the events is triggered.
Factory class for creating defence entities (e.g., sling shooters).
An extensions of CombatStatsComponent for defender-type entities.
DeserializedDefencesConfig is a wrapper class for the BaseDefenderConfig and BaseGeneratorConfig classes.
Inner class to match the JSON structure with "config" wrapper
 
A flexible dialog component that can display warning, error, or info messages.
Service for managing dialog components throughout the game.
Enum for the different types of dialogs.
Stores the data for the dialogue.chorus event
Implements the ActionValidator interface for concrete implementation of the validate method.
 
Stores the data for the dialogue.hide event
Implements the ActionValidator interface for concrete implementation of the validate method.
 
Stores the data for the dialogue.show event
Implements the ActionValidator interface for concrete implementation of the validate method.
State responsible for all rendering of the dialogue box
DossierDisplay is a class that displays the dossier of the game.
DossierScreen is a screen that displays the dossier of the game.
A draggable character UI component that can be moved around the screen.
A simple overlay image that follows the cursor while dragging.
Implements functions required for dynamic menu sprite operation.
Minimal interface for spawning enemies.
Core entity class.
Provides a global access point for entities to register themselves.
Computes how many enemies to spawn in the current wave and selects a type per spawn request.
Send and receive events between objects.
An event listener which is notified when events occur.
An event listener with 0 arguments
An event listener with 1 argument
An event listener with 2 arguments
An event listener with 3 arguments
Wrapper for reading Java objects from JSON files.
 
Represents an area in the game, such as a level, indoor area, etc.
Displays the name of the current game area.
Class to create and display a window when the game ends.
Controls the game time
The main game class.
Enum for all screens.
 
This class listens to events relevant to a ghost entity's state and plays the animation when one of the events is triggered.
Stores the data for the goto event
Implements the ActionValidator interface for concrete implementation of the validate method.
This factory creates the grid and the tiles in the grid.
Contains additional utility constants and functions for common GridPoint2 operations.
Physics comp
 
 
Keeps an entity idle until a target entity is detected within the attack range.
An InputComponent that supports keyboard and touch input and touch gestures.
Generic class to wrap an InputProcessor so that it acts like an InputComponent.
InputFactory creates inputType-specific inputFactories which can handle various types of input.
Input device types
Provides a global access point for handling user input and creating input handlers.
Inventory class to manage the player's items.
A component intended to be used by the player to track their inventory.
The InventoryDisplay class is a UI component that renders a grid of player inventory items on screen.
The InventoryScreen is a game screen containing the player's inventory.
ItemComponent provides the ability to add an Item Type to an Entity for the purpose of identifying the particular Item an animation Entity is representing.
Enumerators for the supported Item categories
ItemEffectsService is a centralised helper for spawning animations for Items used in-level.
Factory to create item entities with predefined components.
A job system provides a general-purpose way to run multi-threaded code.
KeyboardInputFactory creates input handlers that process keyboard and touch support.
Input handler for the player for keyboard and touch (mouse) input.
Input handler for the debug terminal for keyboard and touch (mouse) input.
 
 
 
 
 
 
 
Creates a level in the game, creates the map, a tiled grid for the playing area and a player unit inventory allowing the player to add units to the grid.
Class that stores an array of tile entities.
The game screen containing the load menu.
A simple loading screen that displays a background image and "Loading..." text.
Handles actions in the load menu.
A UI component for displaying the load menu with current saves.
The game screen containing the main game.
 
 
The game screen containing the main menu.
 
 
ui component for displaying the Main menu.
 
The screen for the mini game.
Wander around by moving a random position within a range of the starting position.
A movement controller moves something to a given a target.
Move to a given position, finishing when you get close enough.
 
Handles actions in the new game menu.
A UI component for displaying the new game menu with save slot selection and name input.
The game screen containing the new game menu.
 
Factory to create obstacle entities.
 
 
 
 
 
 
Stores the data for the parallel event (runs actions at the same time)
Implements the ActionValidator interface for concrete implementation of the validate method.
A pause button component that displays a pause icon.
A pause menu component that displays when the game is paused.
Handles actions for the pause menu buttons.
Displays performance stats about the game for debugging purposes.
Class for loading and saving the user profile / savefile.
Lets an entity be controlled by physics.
 
 
Box2D collision events fire globally on the physics world, not per-object.
Process game physics using the Box2D library.
 
Movement controller for a physics-based entity.
Provides a global access point to the physics engine.
 
Action component for interacting with the player.
A ui component for displaying player stats, e.g.
The different positions a character can be displayed on screen.
A priority task is a task that also has a priority.
Represents a user profile in the game.
A UI component for displaying the Profile page with navigation buttons.
Handles actions for the profile menu display.
Service for managing user profiles.
This component ensures that the projectile entity is disposed off when the laser leaves the boundaries of the game window/map.
Factory class for creating projectile entities for defense entities (e.g., sling shoots for sling shooters).
Utility class for generating random numbers and vectors.
Stores information about a raycast hit.
Can be rendered onto the screen given a Sprite batch.
A generic component for rendering an entity.
Core rendering system for the game.
 
Globally accessible service for registering renderable components.
Service for loading resources, e.g.
This class listens to events relevant to a ghost entity's state and plays the animation when one of the events is triggered.
Allows an entity to attack the closest target entity from a list of potential targets.
Factory to create non-playable character (NPC) entities with predefined components.
Loads enemy config data from JSON.
 
Represents a savefile in the game.
Handles actions in the save game menu.
A UI component for displaying the save game menu with save slot selection and name input.
The game screen containing the save game menu.
Interface to define Schema validators.
Component holding the currency value granted by a single sunlight pickup.
 
 
A simplified implementation of the Service Locator pattern: https://martinfowler.com/articles/injection.html#UsingAServiceLocator
Settings menu display and logic.
The game screen containing the settings.
Handles actions for the shop screen.
The shop display component.
A utility class for randomizing the shop items.
 
Cast a ray against all colliders that match the layermask.
Represents a skill in the game's skill tree Each skill has a name, a type of stat it affects, a percentage bonus, a cost and is either un/locked.
Enumeration of all possible stats that a skill can modify.
The SkillSet class manages all available skills in the game and tracks which skills have been unlocked by a player.
SkilltreeActions is a click listener for skill tree buttons.
Displays a button to exit the Main Game screen to the Main Menu screen.
UI component responsible for creating and managing buttons and labels for the skill tree screen.
SkilltreeDisplay is a UI component responsible for rendering the skill tree interface.
The screen that displays the Skill Tree and handles skill unlocking mechanics.
Slot effects that apply ONLY within LevelGameArea.
Slot machine engine to generate random outcomes for UI and trigger corresponding effects.
Enumeration of all possible effects.
Configuration for SlotEngine.
Immutable object representing the result of a spin.
Represents a dedicated game area for the slot machine level.
A 3-reel slot machine UI that lives in the top bar.
 
A map sorted by the value of key with O(1) iteration.
Stores sound data.
 
The Statistics class tracks and stores player/user statistics across the game and manages achievements based on those statistics.
The StatisticsDisplay class is a UI component that renders a table of player Statistics on screen.
The StatisticsScreen is a game screen containing the player's Statistics.
Apply a custom toString() for a class without overriding the class, using a decorator.
Advanced from an external source (e.g.
Advance on choice
 
An AI task can be started and stopped at any time.
 
 
Teleport behaviour component for enemies.
State tracker for a debug terminal.
A ui component for displaying the debug terminal.
Render a static texture.
A component that is used the hitbox calculations of the tiles
Input handler for tiles for mouse input.
A component that is used to track the status of the unit placed on a tile, it is also used for adding and removing the units from the tile.
When this entity touches a valid enemy's hitbox, deal damage to them and apply a knockback.
 
Input handler for the player for keyboard and touch (mouse) input.
Input handler for the debug terminal for keyboard and touch (mouse) input.
The different transitions that can happen to image (character sprites and backgrounds)
Factory class for creating standardized typography using the Jersey10-Regular TTF font.
A generic component for rendering onto the ui.
Reading, Writing, and applying user settings in the game.
Stores chosen display settings.
Stores game settings, can be serialised/deserialised.
Schema Validator for Version 1 of the cutscene schema.
Stores important cutscene data to be passed into ActionValidators
Thrown when any AuthoringError is present after running a SchemaValidator
 
Contains additional utility constants and functions for common Vector2 operations.
Task that does nothing other than waiting for a given time.
The Wallet class enables a player to collect, store and spend coins and skills points which allow purchase of Shop Items and unlocking of Skills to use in-level.
 
 
 
Interface for providing wave configuration data to avoid circular dependencies.
Manages the lifecycle of enemy waves and schedules spawns over time.
 
 
A UI component for displaying a plaque with skill points and coins in the top right corner.
Handles actions for the main map navigation menu.
Represents a node on the world map that can be registered dynamically.
Renders a world map node using the engine's rendering system
Handles player movement and interaction on the world map
Renders the world map background
World map screen
Service for managing world map nodes dynamically.