@startuml class fr.monkhanny.dorfromantik.game.CustomKeyAdapter { - Board board + <> CustomKeyAdapter(Board) + void keyPressed(KeyEvent) } class fr.monkhanny.dorfromantik.game.ScoreManager { - List pockets - int currentScore + <> ScoreManager() + void addTile(Tile) - Pocket findPocketForTile(Tile,Biome) - void recalculateScore() + int getCurrentScore() } class fr.monkhanny.dorfromantik.game.EscapeMenu { - JButton resumeButton - JButton mainMenuButton - JButton settingsButton + <> EscapeMenu(JFrame,Game) - JButton createButton(String) + void setResumeButtonListener(ActionListener) + void setQuitButtonListener(ActionListener) + void setSettingsButtonListener(ActionListener) + void setMenuVisible(boolean) } class fr.monkhanny.dorfromantik.game.Cell { - Board board + int x + int y + int radius + <> Cell(Board,int,int,int) + Board getBoard() + int getXCoord() + int getYCoord() + int getRadius() + {static} double to360Degrees(double) + void setPosition(int,int) # void paintComponent(Graphics) } class fr.monkhanny.dorfromantik.game.Game { - Random random + <> Game(long) + <> Game() + int getRandomInt(int) } class fr.monkhanny.dorfromantik.game.TilePanningTransition { - Board board - int targetOffsetX - int steps + <> TilePanningTransition(Board,int,int,int) + void start() } class fr.monkhanny.dorfromantik.game.RemainingTilesIndicator { - int remainingTiles - int maxTiles + <> RemainingTilesIndicator(int) + void setRemainingTiles(int) + void draw(Graphics,int,int) + int getTotalHeight() - Polygon createHexagon(int,int,int,int) } class fr.monkhanny.dorfromantik.game.CustomMouseMotionAdapter { - Board board + <> CustomMouseMotionAdapter(Board) + void mouseMoved(MouseEvent) } class fr.monkhanny.dorfromantik.game.Tile { - HashMap sideBiomes + <> Tile(Board,int,int,int,Biome) + <> Tile(Board,int,int,int) + <> Tile(Board,Point,int,Biome) + <> Tile(Board,Point,int) + void setBiomes(Biome) + void assignRandomBiomes() + Biome getBiome(TileOrientation) + Biome getDominantBiome() + Biome[] getBiomes() + void rotate(boolean) + boolean containsBiome(Biome) + boolean isAdjacentTo(Tile) + Tile getNeighbor(TileOrientation) + TileOrientation determineSide(int,int) # void drawTileAt(Graphics,int,int,float) # void paintTile(Graphics,float) } class fr.monkhanny.dorfromantik.game.ScoreDisplay { - int score - Font font - int x + <> ScoreDisplay(Font,int,int) + void setScore(int) + void setPosition(int,int) + void draw(Graphics) } class fr.monkhanny.dorfromantik.game.Pocket { - Biome biome - Set tiles + <> Pocket(Biome) + void addTile(Tile) + int getSize() + Biome getBiome() + Set getTiles() } class fr.monkhanny.dorfromantik.game.Board { - List tiles - List availablePositions - Random random - Game game - JFrame gameFrame - Tile centralTile - double zoomFactor - int offsetX - int offsetY - Tile nextTile - Point mousePosition - int currentScore - Database database - RemainingTilesIndicator remainingTilesIndicator - GameControlsMenu controlsMenu - ScoreManager scoreManager - ScoreDisplay scoreDisplay + <> Board(JFrame,long) + GameControlsMenu getControlsMenu() + void handleMouseMove(java.awt.event.MouseEvent) - void initializeNextTile() + Tile getNextTile() + void handleSpaceKeyPress() + void handleMouseClick(java.awt.event.MouseEvent) - void initializeCentralTile() + void addTile(Tile) + Tile getTileAt(int,int) + Random getRandom() + Game getGame() - void calculateAvailablePositions(Tile) - boolean isTileAtPosition(Point) + void placeTileAtPosition(Point) + void autoReFocus(Tile) + double getZoomFactor() + void setZoomFactor(double) + int getOffsetX() + void setOffsetX(int) + int getOffsetY() + void setOffsetY(int) + void zoomIn() + void zoomOut() + void moveBoard(int,int) + void paintComponent(Graphics) } class fr.monkhanny.dorfromantik.game.PauseGame { - EscapeMenu escapeMenu - GameResumeButtonListener resumeButtonListener - GameQuitButtonListener quitButtonListener - GameSettingsButtonListener settingsButtonListener + <> PauseGame(JFrame,Game) + void keyPressed(KeyEvent) } java.awt.event.KeyAdapter <|-- fr.monkhanny.dorfromantik.game.CustomKeyAdapter fr.monkhanny.dorfromantik.game.JFrame <|-- fr.monkhanny.dorfromantik.game.EscapeMenu fr.monkhanny.dorfromantik.game.JComponent <|-- fr.monkhanny.dorfromantik.game.Cell java.awt.event.MouseMotionAdapter <|-- fr.monkhanny.dorfromantik.game.CustomMouseMotionAdapter fr.monkhanny.dorfromantik.game.Cell <|-- fr.monkhanny.dorfromantik.game.Tile fr.monkhanny.dorfromantik.game.JPanel <|-- fr.monkhanny.dorfromantik.game.Board java.awt.event.KeyAdapter <|-- fr.monkhanny.dorfromantik.game.PauseGame @enduml