# All Classes and Interfaces

Class
Description
AbandonedShipCard
Represents a card that allows players to interact with an abandoned ship in the game.
AbandonedStationCard
Represents a card that allows players to interact with an abandoned station in the game.
AbandonRaceCommand
Represents a command sent from the client to the server to abandon the race.
AlienColor
Enumeration representing the available alien colors in the game.
AlienLifeSupport
Represents a specialized component which, if attached to the ship next to a cabin, ensures it can contain alien inhabitants.
AsyncRunner
The `AsyncRunner` class provides a utility for executing tasks asynchronously using a single-threaded `ExecutorService`.
AsyncRunner.SafeRunnable
A functional interface similar to `Runnable`, but allows for methods that can throw `Exception`.
AttachComponentCommand
Represents a command sent from the client to the server to attach a component to a specific position on the ship grid.
BatteryComponent
Represents a component with a specific capacity for storing batteries, This class allows for modifications to its current capacity while ensuring it does not exceed its predefined limits.
Cabin
Represents a cabin component in the game, capable of holding human crew members or alien inhabitants with specific life support requirements.
Cannon
Represents a Cannon component with configurable power and orientation.
CannonHit
The `CannonHit` class represents a cannon hit, which is a game element characterized by specific side and size.
Card
Represents a generic card used in the game.
CardFactory
`CardFactory` is responsible for managing and handling a collection of cards used in the game.
CardManagerController
Controller for managing card display and player interactions during card resolution phases.
CardViewAssemble
Controller for displaying a sub-deck of cards during the assembly phase.
CargoHold
Represents a cargo hold component capable of storing goods with specific constraints.
ClientData
Represents the client data within the system, managing the association between a client represented by a VirtualView and its corresponding player information.
ClientModel
Manages the client-side model, handling game state, player data, and interactions with the UI and server.
ClientServerCommand
Represents a command that can be sent from a client to the server.
ClientState
Enumeration representing the different states a client can be in during the game.
CloseStageManager
Singleton manager for handling the closing of all application stages.
Color
Enumeration representing the available colors in the game.
CombatZoneCard
Represents a specific card in the game that triggers the "Combat Zone" scenario.
CommandHandler
Handles the execution of commands received from the `CommandParser`.
CommandParser
Parses user input commands and dispatches them to the appropriate handler.
Component
Represents a general component in the game, serving as the base class for various specialized components.
ConnectionResponse
Represents the possible responses to a connection attempt to a game.
ConnectionResponseCommand
Represents a command sent from the server to the client as a response to a connection attempt.
Connector
Enumeration representing the different types of connectors available in the game.
Context
This class is used to make call to setCardContext and applyEffect uniform between all the specific card types.
ContextValidator
The `ContextValidator` class provides static methods to validate and manage the context of card and effect activations within the game.
Controller
The Controller class manages player interactions, communication between clients and the server during the game, and some game logic.
ControllerManager
The ControllerManager class handles the management of game controllers, client connections, managing the starting and closing of games.
CreateGameCommand
Represents a command sent from a client to the server to request the creation of a new game.
CrewPlacingPhaseCommand
Represents a command sent from the server to the client to start the crew placing phase.
CrewSelectionController
Controller for the crew selection phase of the game.
CurrentPhase
The CurrentPhase class represents the current phase of a game.
Dashboard
Controller for the main game dashboard during flight phase 1.
Dashboard2
Controller for the main game dashboard during flight phase 2.
Deck
The `Deck` class represents a collection of cards used within the game.
DiceResultCommand
Represents a command sent from the server to the client to communicate the result of a dice roll.
DrawCardCommand
Represents a command sent from the client to the server to draw a new card.
DrawFaceDownComponentCommand
Represents a command sent from the client to the server to draw a face-down component.
DrawFaceUpComponentCommand
Represents a command sent from the client to the server to draw a specific face-up component.
DrawFromReservedCommand
Represents a command sent from the client to the server to draw a component from the reserved components.
EffectResolutionCommand
Represents a command sent from the server to the client to put the client in effect resolution state.
EffectType
The `EffectType` enum represents the different types of effects that can be associated with cards in the game.
EndAssemblePhaseCommand
Represents a command sent from the client to the server to signal the end of the assemble phase.
EndCrewPlacingPhaseCommand
Represents a command sent from the client to the server to signal the end of the crew placing phase for the specified client.
Engine
The Engine class represents an engine component that extends the Component class.
EpidemicCard
Represents an Epidemic card in the game.
ExceptionCommand
Represents a command sent from the server to the client to communicate an exception that occurred on the server-side.
FinalStageController
Controller for displaying the final game results and player rankings.
FinishFinalHourglassCommand
Represents a command sent from the server to the client to indicate that the final hourglass timer has finished.
FlightPhaseCommand
Represents a command sent from the server to the client to start the flight phase of the game.
Game
Represents a Galaxy Trucker game session.
Gameboard
The Gameboard class represents the board used in the game, containing a specified number of boxes based on the game level.
GameSelectorController
Controller for the game selection screen.
GetFaceUpComponentListCommand
Represents a command sent from the client to the server to request the list of available face-up components.
GetSubDeckCommand
Represents a command sent from the client to the server to request a sub-deck of cards.
Good
Enumeration representing different types of goods with their associated values.
Gui
Main JavaFX application class that serves as the central controller for the GUI.
GuiRenderer
Singleton implementation of the UiRenderer interface for JavaFX-based GUI rendering.
HourGlass
Represents a countdown timer with a default duration of 90 seconds.
IncrementCommand
Represents a command sent from the client to the server to perform an increment operation, used to keep track of clients' connections.
JoinGameCommand
Represents a command sent from a client to the server to request to join an existing game.
LeaveGameCommand
Represents a command sent from a client to the server to request to leave the current game.
LockClientCommand
Represents a command sent from the server to the client to lock the client's user interface and input.
Main
MainCabin
Represents the main cabin component of a spaceship.
Meteor
The `Meteor` class represents a meteor, which is a game element characterized by specific side and size.
MeteorSwarmCard
The `MeteorSwarmCard` class represents a card that reproduces the effect of a meteor swarm in the game.
NameErrorException
NewLeaderCommand
Represents a command sent from the server to the client to inform about a change in game leader status.
NoCardsLeftException
NotifyDefeatCommand
Represents a command sent from the server to the client to notify them of their defeat.
OpenSpaceCard
Represents an "Open Space" card in the game.
OpponentShipController
Controller for displaying an opponent's ship in a separate window.
OrientationShield
Enumeration representing the four diagonal orientations for shield components.
Phase
Enumeration representing the different phases of the game Each phase corresponds to a specific stage in the game lifecycle, from initialization to game completion
PingCommand
Represents a command sent from the client to the server to check the connection status.
PingCommand
Represents a command sent from the server to the client to test the connection.
PingErrorException
PiratesCard
The PiratesCard class represents a card in the game that introduces a pirate encounter.
PlaceCrewMemberCommand
Represents a command sent from the client to the server to place a crew member or an alien of a specific color on a cabin in a specified position.
PlaceRocketCommand
Represents a command sent from the client to the server to place the player's rocket at a specific position.
PlanetsCard
The PlanetsCard class represents a card in the game that allows a player to interact with different planets and collect goods from them while losing some days of travel.
Player
Represents a player in a game, identified by a unique ID and nickname, with associated game-specific objects like a rocket and a ship.
PlayerJoinedCommand
Represents a command sent from the server to the client to notify about a new player joining the game.
PutDownComponentCommand
Represents a command sent from the client to the server to put down a component.
RemoveComponentCommand
Represents a command sent from the client to the server to remove a component from a specific position.
RmiClient
The `RmiClient` class represents the client-side implementation for RMI communication in the application.
RmiServer
The RmiServer class is an implementation of the VirtualServer interface, extending UnicastRemoteObject.
Rocket
Represents a player's rocket on the game's gameboard, which can be assigned a color and position.
RollDiceCommand
Represents a command sent from the client to the server to request a dice roll.
RoundResultCommand
Represents a command sent from the server to the client to notify the result of a round during specific cards' effect application.
SelectedTileController
Controller for managing the selected component tile during the ship assembly phase.
ServerClientCommand
Represents a command that can be sent from the server to a client.
SetCardContextCommand
Represents a command sent from the client to the server to perform some action before applying a card's effect.
SetEffectContextCommand
Represents a command sent from the client to the server to set contextual information and to apply the current card's effect.
SetGameLevelCommand
Represents a command sent from the client to the server to set the game level or difficulty.
SetGameLevelCommand
Represents a command sent from the server to the client to set the game level.
SetMaxPlayersCommand
Represents a command sent from the client to the server to set the maximum number of players for a game.
SetNicknameCommand
Represents a command sent from the client to the server to set the client's nickname.
SetNicknameCommand
Represents a command sent from the server to the client to prompt the client to set its nickname.
SetUuidCommand
Represents a command sent from the server to the client to set the client's UUID.
SharedRmiSocket
The SharedRmiSocket class is responsible for starting both RMI and Socket servers.
ShieldGenerator
Represents a shield generator component that can protect specific sides of the spaceship.
Ship
Represents a player's spaceship in the game, managing components placement, grid layout, combat mechanics, and ship validation.
ShowCardCommand
Represents a command sent from the server to the client to display a specific card.
ShowComponentCommand
Represents a command sent from the server to the client to display a specific ship component.
ShowFaceUpComponentListCommand
Represents a command sent from the server to the client to display a list of face-up components.
ShowFinalRankingCommand
Represents a command sent from the server to the client to display the final ranking of players.
ShowGameListCommand
Represents a command sent from the server to the client to display a list of available games.
ShowSecondsLeftCommand
Represents a command sent from the server to the client to display the remaining seconds for an hourglass timer.
ShowSecondsLeftForGuiCommand
Represents a command sent from the server to the client (specifically for GUI) to display the remaining seconds for an hourglass timer.
ShowShipCommand
Represents a command sent from the client to the server to request a certain player's updated ship.
ShowShipCommand
Represents a command sent from the server to the client to display a specific ship.
ShowSubDeckCommand
Represents a command sent from the server to the client to display a sub-deck of cards.
ShowUpdateCommand
Represents a command sent from the server to the client to display a general update message.
Side
Enumeration representing the four cardinal sides or directions.
Size
The `Size` enum represents the size of a game element.
SlaversCard
The SlaversCard class represents a card in the game that introduces slavers encounter.
SmugglersCard
The PiratesCard class represents a card in the game that introduces smugglers encounter.
SocketClient
The `SocketClient` class represents the client-side implementation for Socket communication in the application.
SocketClientHandler
The `SocketClientHandler` class is a server-side component responsible for managing the communication with a single connected client in a socket-based network environment.
SocketServer
The SocketServer class represents a server that listens for client connections, manages them, and delegates their requests to the ControllerManager for processing.
SocketServerHandler
The `SocketServerHandler` class acts as a client-side proxy for the server in a socket-based communication.
Stage2Controller
Controller for the ship assembly phase (Stage 2) of the game.
StardustCard
Represents the stardust card in the game, a specific type of card that applies an effect where a player's rocket moves back based on the number of exposed connectors on their ship.
StartAssemblingPhaseCommand
Represents a command sent from the server to the client to start the assembling phase of the game.
StartFinalHourGlassCommand
Represents a command sent from the client to the server to start the final hourglass timer.
StartGameCommand
Represents a command sent from the server to the client to signal the start of the game.
StartHourGlassCommand
Represents a command sent from the client to the server to initiate an hourglass timer.
Tiles
The Tiles class represents a collection of components used within the game.
TuiRenderer
`TuiRenderer` is an implementation of the `UiRenderer` interface that provides a Text-based User Interface (TUI) for the game.
TurnChangeCommand
Represents a command sent from the server to the client to notify a change in turn.
UiRenderer
This interface defines the methods for any User Interface (UI) in the application.
UpdateHandler
The `UpdateHandler` class provides static methods to manage and dispatch game updates to connected clients.
UpdateMessage
The `UpdateMessage` enum represents a set of predefined messages that are used to communicate the status of a game-related event to a client.
UpdatePositionsCommand
Represents a command sent from the server to the client to update players' positions.
ViewGameCommand
Represents a command sent from the client to the server to request to view the list of available games.
VirtualServer
This interface defines the methods for server-side operations that can be invoked remotely by a client.
VirtualView
This interface defines the methods for client-side display and input operations that can be remotely invoked by the server.
WaitingRoomController
Controller for the waiting room between game phases.