AnimalSelectionActions - UQcsse3200/2024-studio-2 GitHub Wiki
AnimalSelectionActions
Overview
The AnimalSelectionActions
class manages the actions and interactions related to the animal selection process within the game. This class is responsible for handling user input, such as clicking on animal images or buttons, and triggering corresponding game logic like selecting an animal, showing dialog boxes, or transitioning to different screens.
Purpose
The AnimalSelectionActions
class is responsible for:
- Handling user interactions with the animal selection UI, including clicks on animal images and buttons.
- Managing the selection of animals and visually indicating the selected animal.
- Displaying dialogs to provide feedback or alerts to the player.
- Transitioning to the main game screen or returning to the main menu based on user actions.
Structure
Constructor
The constructor initializes the AnimalSelectionActions
class by setting up references to the display and dialog helper, and it also adds listeners to the UI elements.
public AnimalSelectionActions(AnimalSelectionDisplay display, DialogHelper dialogHelper, GdxGame game) {
this.display = display;
this.dialogHelper = dialogHelper;
this.game = game;
addListeners();
}
Methods
addListeners(): Attaches click listeners to the animal images, buttons, select button, and back button. These listeners trigger specific actions when the UI elements are interacted with.
private void addListeners() {
// To setup listeners for animal images, buttons, select, and back buttons
}
selectAnimal(Image animalImage): Highlights the selected animal and updates the selected Animal Image reference.
private void selectAnimal(Image animalImage) {
if (selectedAnimalImage != null) {
selectedAnimalImage.setColor(1, 1, 1, 1);
}
selectedAnimalImage = animalImage;
selectedAnimalImage.setColor(1, 0, 0, 1);
logger.debug("Animal selected: {}", animalImage.getName());
}
showSelectionAlert(): Displays an alert dialog if the player attempts to proceed without selecting an animal
private void showSelectionAlert() {
Dialog dialog = new Dialog("Alert", display.getSkin()) {
@Override
protected void result(Object object) {
}
};
dialog.text("Please select an animal first.");
dialog.button("OK", true);
dialog.show(display.getStage());
}
Dependencies
This class relies on the following components:
- AnimalSelectionDisplay: Provides the UI elements that this class interacts with.
- DialogHelper: A helper class for displaying dialog boxes within the game.
- GdxGame: The main game class, used for transitioning between screens.
Usage
To use AnimalSelectionActions, instantiate it within the AnimalSelectionScreen class or another relevant context, passing the necessary dependencies:
AnimalSelectionActions actions = new AnimalSelectionActions(display, dialogHelper, game);