package org.dieubware.etts;
import org.dieubware.etts.Observer;
import org.dieubware.etts.controller.BordersObserver;
import org.dieubware.etts.controller.ItemsObserver;
import org.dieubware.etts.controller.ModelObserver;
import org.dieubware.etts.controller.PlayerObserver;
import org.dieubware.etts.controller.ScoreObserver;
import org.dieubware.etts.controller.StageListener;
import org.dieubware.etts.model.GameModel;
import org.dieubware.etts.model.Items.ItemType;
import org.dieubware.etts.view.GameScreen;
import com.badlogic.gdx.Gdx;
public class GameInterface {
private TimeManager timeManager;
private GameModel model;
private GameScreen screen;
private Observer playerObserver, bordersObserver, modelObserver;
private float screenWidth = 0;
private float screenHeight = 0;
private ScoreObserver scoreObserver;
private ItemsObserver itemsObserver;
public void initGame(GameScreen game) {
screenWidth = Gdx.graphics.getWidth();
screenHeight = Gdx.graphics.getHeight();
screen = game;
model = new GameModel(screenHeight, screenWidth);
timeManager = new TimeManager(model, screen);
screen.setTimeManager(timeManager);
createObservers();
model.setPlayerObserver(playerObserver);
model.setBordersObserver(bordersObserver);
model.setScoreObserver(scoreObserver);
model.addObserver(modelObserver);
model.addItemObserver(itemsObserver);
screen.getStage().addListener(new StageListener(model, screen));
setTestLevel();
}
public void createObservers() {
playerObserver = new PlayerObserver(screen);
bordersObserver = new BordersObserver(screen);
modelObserver = new ModelObserver(screen, this);
scoreObserver = new ScoreObserver(screen);
itemsObserver = new ItemsObserver(screen);
}
public void setTestLevel() {
model.init();
int center = (int)(screenWidth/2);
float pX = center - 90, pY = 5;
model.setPlayerPos(pX, pY);
screen.setPlayerPos(pX, pY, true);
model.initBorders();
}
}