-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainMenuControllerBuilder.java
71 lines (57 loc) · 2.24 KB
/
MainMenuControllerBuilder.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package controller.menu.builder;
import controller.GameController;
import controller.command.*;
import controller.command.game.ExitGameCommand;
import controller.command.game.LoadGameCommand;
import controller.command.game.NewGameCommand;
import controller.menu.element.ButtonController;
import controller.menu.MainMenuController;
import model.Position;
import model.menu.Button;
import model.menu.Menu;
import java.util.List;
public class MainMenuControllerBuilder extends MenuControllerBuilder {
private final GameController gameController;
public MainMenuControllerBuilder(GameController gameController) {
this.gameController = gameController;
}
@Override
protected List<ButtonController> getButtons() {
List<ButtonController> buttons = super.getButtons();
addNewGameButton(buttons);
addLoadGameButton(buttons);
addExitButton(buttons);
return buttons;
}
private void addNewGameButton(List<ButtonController> buttons) {
Button newGameButton = new Button(new Position(10, 6), "NEW GAME");
Command newGameCommand = new NewGameCommand(this.gameController);
buttons.add(new ButtonController(newGameButton, newGameCommand));
}
private void addLoadGameButton(List<ButtonController> buttons) {
Button loadGameButton = new Button(new Position(10, 11), "LOAD GAME");
Command loadGameCommand = new LoadGameCommand(this.gameController, "save.data");
buttons.add(new ButtonController(loadGameButton, loadGameCommand));
}
private void addExitButton(List<ButtonController> buttons) {
Button exitGameButton = new Button(new Position(10, 16), "EXIT");
Command exitGameCommand = new ExitGameCommand(this.gameController);
buttons.add(new ButtonController(exitGameButton, exitGameCommand));
}
@Override
protected MainMenuController getMenuController(Menu menu) {
return new MainMenuController(menu, this.gameController);
}
@Override
protected int getHeight() {
return this.gameController.getWindowHeight();
}
@Override
protected int getWidth() {
return this.gameController.getWindowWidth();
}
@Override
public String getTitle() {
return "FARMVILLE";
}
}