package models; import entities.*; import entities.modelExtentions.Stage; public class JumpingGameModel implements IModel{ private Gameover gameover; private Time time; private Onground onground; private Ground ground; private Clear clear; private Position position; private Velocity velocity; private Movey movey; private Movex movex; private Acceleration acceleration; private Mass mass; private Force force; private Stage stage; //added public JumpingGameModel() { gameover = new Gameover(); time = new Time(); onground = new Onground(); ground = new Ground(onground); clear = new Clear(); position = new Position(gameover,clear,onground,ground); velocity = new Velocity(position,onground); movey = new Movey(velocity); movex = new Movex(velocity); acceleration = new Acceleration(velocity,onground); mass = new Mass(acceleration); force = new Force(acceleration); stage = new Stage(); // added } public void gravity(double y) { this.force.gravity(y); this.time.gravity(y); } public void closeHole() { this.ground.closeHole(); } public void openHole() { this.ground.openHole(); } public void jump(double y2) { this.movey.jump(y2); } public void run(double x2) { this.movex.run(x2); } public void setMass(double x) { this.mass.setMass(x); } public Pair<Double> getAcceleration() { return acceleration.getValue(); } public double getMovex() { return movex.getValue(); } public double getMass() { return mass.getValue(); } public boolean getClear() { return clear.getValue(); } public boolean getGround() { return ground.getValue(); } public Pair<Double> getForce() { return force.getValue(); } public Pair<Double> getVelocity() { return velocity.getValue(); } public Pair<Double> getPosition() { return position.getValue(); } public boolean getOnground() { return onground.getValue(); } public double getTime() { return time.getValue(); } public double getMovey() { return movey.getValue(); } public boolean getGameover() { return gameover.getValue(); } // added public Stage getStage() { return stage; } // added public void updateGroundFlag() { double x = position.getValue().getLeft(); if (stage.isOpenFlag(x)) ground.openHole(); if (stage.isCloseFlag(x)) ground.closeHole(); } }