Package cross

Source Code of cross.Cross

package cross;

import game_timer.TimerNotify;

import java.util.ArrayList;
import java.util.Map;

import logger.Logger;
import route.Route;
import vehicles.Vehicle;
import _main.Game;

/**
* Cross oszt�ly:
*Ez egy olyan absztrakt keresztez�d�s oszt�ly,
*amib�l �r�k�lnek m�s oszt�lyok (Bank, StopCross, stb.).
*Kezeli a keresztez�d�sben l�v� bemen� �s kimen� utakat, a
*rajtuk l�v� j�rm�veket. Egyszerre csak egy j�rm� lehet a keresztez�d�sben.
*Az oszt�ly implement�lja a TimerNotify interface-t.
*/ 
public abstract class Cross implements TimerNotify {

  private Map m;
  private ArrayList<Route> inroutes = new ArrayList<Route>();
  private ArrayList<Route> outroutes = new ArrayList<Route>();
  private ArrayList<Vehicle> vehicleInCross = new ArrayList<Vehicle>();
 
  /** The vehicles at cross. */
  private ArrayList<Vehicle> vehiclesAtCross = new ArrayList<Vehicle>();

  /**
   * friss�ti a vehiclesAtCross-t a keresztez�d�s bemen� �tjain tal�lhat� aut�kr�l
   *
   */ 
  public void updateVehiclesAtCross() {
    Logger.get().addMethodCall("", "Cross", "updateVehiclesAtCross");
    for(Route r : inroutes){//get dummy cars from the routes
      vehiclesAtCross.add(r.test_getACar());
    }
    stepIntoCross();
    vehicleOut();
    Logger.get().addMethodReturn("", "Cross", "updateVehiclesAtCross");
  }

  /**
   * �tk�z�s figyel�se; ha vannak a keresztez�d�sben �s j�n a bankrabl� befel�,
   * akinek nagyobb a sebess�ge 0-n�l, akkor �tk�z�s lesz
   */
 
  public void collisionDetect() {
    Logger.get().addMethodCall("", "Cross", "collisionDetect");
    Logger.get().addOrdinaryMessage("\tcollision detect logikaja: ha van valaki a keresztezodesbe(tehat a vehicleInCross nem ures) es ugy akar belepni, akkor utkozes tortent!");
    if(vehicleInCross.size() > 0){
      Logger.get().addOrdinaryMessage("\t[A keresztezodesben levo autok szama nagyobb, mint 0: utkozes tortent!]: a Game.finishGame() meghivasa!");
      Game.getInstance().finishGame();
    }   
    Logger.get().addMethodReturn("", "Cross", "collisionDetect");
  }

  /**
   *
   * a keresztez�d�sben l�v� aut�t kil�pteti
   */
  public void vehicleOut() {
    Logger.get().addMethodCall("", "Cross", "vehicleOut");
    Route selectedOutRoute = vehicleInCross.get(0).selectRoute(outroutes);
    selectedOutRoute.addVehicle(vehicleInCross.get(0));
    Logger.get().addMethodReturn("", "Cross", "vehicleOut");
  }

  /**
   *
   * egy �tr�l bel�ptet egy j�rm�t a keresztez�d�sbe (a megadott szab�lyok alapj�n,
   * mely a keresztez�d�s t�pus�t�l f�gg
   */
  public void stepIntoCross() {
    Logger.get().addMethodCall("", "Cross", "stepIntoCross");
    Logger.get().addOrdinaryMessage("[Cross.stepIntoCross]: A [vehiclesAtCross] tombbol a kovetkezo auto kivalasztasa, majd a bemeno uttol valo elkerese!");
    vehicleInCross.add(inroutes.get(0).getAndRemoveLastCar());//get the car and add it to the cross   
    Logger.get().addMethodReturn("", "Cross", "stepIntoCross");
  }

  /**
   *
   * az id�l�ptet� f�ggv�ny; megh�vja a megfelel� f�ggv�nyeket adott id�k�z�nk�nt
   */
  public void onTick() {
    throw new UnsupportedOperationException();
  }

  /**
   * az inroutes t�mbh�z hozz�ad egy bemen� utat
   * @param r bemen� �t hozz�ad�sa
   */
  public void addInRoutes(Route r) {//TODO: addInRoute es nem Routes
    Logger.get().addOrdinaryMessage("[Cross.addInRoutes]: Called! and [inRoute added!]");
    inroutes.add(r);
  }

  /**
   * az outroutes t�mbh�z hozz�ad egy bemen� utat
   * @param r kimen� �t hozz�ad�sa
   */
  public void addOutRoutes(Route r) {//TODO: addOutRoute es nem Routes
    Logger.get().addOrdinaryMessage("[Cross.addOutRoutes]: Called! and [outRoute added!]");
    outroutes.add(r);
  }

  /**
   * Aut�t tesz a keresztez�d�sbe
   * @param v a keresztez�d�sbe teend� aut�
   */
  public void addVehicleToCross(Vehicle v) {
    vehicleInCross.add(v);
  }

}
TOP

Related Classes of cross.Cross

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.