|
|
@@ -1,15 +1,15 @@
|
|
|
package controller;
|
|
|
|
|
|
+import controller.tiles.interactive.*;
|
|
|
+import controller.tiles.interactive.AnimalEnclosureController;
|
|
|
import model.GameModel;
|
|
|
import model.GameSaver;
|
|
|
import model.Item;
|
|
|
import model.items.ITEM_NAME;
|
|
|
-import model.tiles.InteractiveTile;
|
|
|
+import model.tiles.InteractiveTileModel;
|
|
|
import util.GAMESTATE;
|
|
|
import view.GamePanel;
|
|
|
-import view.tile.interactive.*;
|
|
|
|
|
|
-import java.awt.*;
|
|
|
import java.io.Serializable;
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
@@ -22,35 +22,48 @@ public class GameController implements Runnable, Serializable {
|
|
|
private transient GamePanel view;
|
|
|
private boolean running = true;
|
|
|
private int fps = 60;
|
|
|
- public transient ArrayList<InteractiveTile> interactiveTiles;
|
|
|
+ public transient ArrayList<InteractiveTileController> interactiveTileControllers;
|
|
|
|
|
|
public GameController() {
|
|
|
this.keyHandler = new KeyHandler(this);
|
|
|
this.gameModel = new GameModel();
|
|
|
this.view = new GamePanel(this);
|
|
|
- interactiveTiles = new ArrayList<>();
|
|
|
+ interactiveTileControllers = new ArrayList<>();
|
|
|
setStartInventory();
|
|
|
setupInteractiveTiles();
|
|
|
}
|
|
|
|
|
|
private void setupInteractiveTiles() {
|
|
|
- Lighthouse lighthouse = new Lighthouse(24, 20, this);
|
|
|
- view.tileManager.addInteractiveTile(lighthouse);
|
|
|
|
|
|
- Mine mine = new Mine(25, 20, this);
|
|
|
- view.tileManager.addInteractiveTile(mine);
|
|
|
|
|
|
- Barracks barracks = new Barracks(26, 20, this);
|
|
|
- view.tileManager.addInteractiveTile(barracks);
|
|
|
+ LighthouseController lighthouse = new LighthouseController(this, setupInteractiveTileModel(24, 20));
|
|
|
+ addInteractiveTile(lighthouse);
|
|
|
|
|
|
- IronMine ironMine = new IronMine(27, 20, this);
|
|
|
- view.tileManager.addInteractiveTile(ironMine);
|
|
|
+ MineController mineController = new MineController(this, setupInteractiveTileModel(25,20));
|
|
|
+ addInteractiveTile(mineController);
|
|
|
|
|
|
- AnimalEnclosure animalEnclosure = new AnimalEnclosure(28, 20, this);
|
|
|
- view.tileManager.addInteractiveTile(animalEnclosure);
|
|
|
+ BarracksController barracksController = new BarracksController(this, setupInteractiveTileModel(26, 20));
|
|
|
+ addInteractiveTile(barracksController);
|
|
|
|
|
|
- Sawmill sawmill = new Sawmill(29, 20, this);
|
|
|
- view.tileManager.addInteractiveTile(sawmill);
|
|
|
+ IronMineController ironMineController = new IronMineController(this, setupInteractiveTileModel(27, 20));
|
|
|
+ addInteractiveTile(ironMineController);
|
|
|
+
|
|
|
+ AnimalEnclosureController animal = new AnimalEnclosureController(this, setupInteractiveTileModel(28, 20));
|
|
|
+ addInteractiveTile(animal);
|
|
|
+
|
|
|
+ SawmillController sawmillController = new SawmillController(this, setupInteractiveTileModel(29, 20));
|
|
|
+ addInteractiveTile(sawmillController);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addInteractiveTile(InteractiveTileController controller) {
|
|
|
+ getView().tileManager.addInteractiveTile(controller);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InteractiveTileModel setupInteractiveTileModel(int worldGridX, int worldGridY){
|
|
|
+ InteractiveTileModel model = new InteractiveTileModel(worldGridX, worldGridY, getView().tileSize, getView().tileSize);
|
|
|
+ gameModel.addModel(model);
|
|
|
+ return model;
|
|
|
}
|
|
|
|
|
|
private void setStartInventory() {
|
|
|
@@ -84,6 +97,7 @@ public class GameController implements Runnable, Serializable {
|
|
|
GameSaver.saveGame(this);
|
|
|
view.gameState = GAMESTATE.PLAY;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -156,7 +170,7 @@ public class GameController implements Runnable, Serializable {
|
|
|
|
|
|
|
|
|
public void loadInteractiveTiles() {
|
|
|
- interactiveTiles = new ArrayList<>();
|
|
|
+ interactiveTileControllers = new ArrayList<>();
|
|
|
setupInteractiveTiles();
|
|
|
}
|
|
|
}
|