Package cross

Source Code of cross.StopCross

package cross;

import game_timer.GameTimer;
import misc.carType;
import route.Route;
import vehicles.Vehicle;
import _main.Game;
/**
* A stopt�bl�s t�pus� keresztez�d�sekn�l l�v� szab�lyokat le�r� oszt�ly.
*
*/
public class StopCross extends Cross {

  //[DOC] nincs primary meg secondary route-ja... 0. primary 1. secondary az Inroutes-ban
  /**
   * Lampcross konstruktor.
   */
  public StopCross(){
    GameTimer.getInstance().registObserver(this);
  }
 
 
  //TODO: [DOC] szekvencia diagramon modositani... az update vehiclein cross hivja a stepintocross-t
  /**
   * Feluldefinialjuk az ososztaly metodusat, mivel minden mas tipusu keresztezodesnek, mas szabalyai vannak
   */
  @Override
  public void updateVehiclesAtCross() {
    try{
      Route primaryRoute = inroutes.get(0);
      Route secondaryRoute = inroutes.get(1);
     
      //egy gyors vizsgalat az utkozesre
      if(primaryRoute.getLastCar() != null && secondaryRoute.getLastCar() != null && secondaryRoute.getLastCar().getCarType() == carType.Robbery){
        Game.getInstance().finishGame();
      }
     
     
      //bepakoljuk a keresztezodesnel varakozo
      if(primaryRoute.getLastCar() != null){
        stepIntoCross(primaryRoute);
      }
      if(primaryRoute.getLastCar() == null && secondaryRoute.getLastCar() != null && vehicleInCross == null){
        //beleptetjuk a masodlagos utrol, ha az elsodlegesen nem voltak es ures a keresztezodes
        stepIntoCross(secondaryRoute);
      }
    } catch(Exception e){
      e.printStackTrace();
    }
   
  }
 
  /**
   * Beallithato vele a keresztezodes fo utszakasza.
   * @param r Az az ut, ami elsobbseget fog elvezni a keresztezodesben.
   */
  public void setPrimaryRoute(Route r){
    if(inroutes.size() > 0)
      inroutes.set(0, r);
    else
      inroutes.add(0, r);
  }
 
  /**
   * Beallithato vele a keresztezodes masodlagos(stop tablas) utszakasza.
   * @param r Az az ut, amelyen a stop tabla fog elhelyezkedni.
   */
  public void setSecondaryRoute(Route r){
    if(inroutes.size() > 1)
      //ha mar be van allitva, akkor felulirjuk a regit
      inroutes.set(1, r);
    else
      //ha meg nincs beallitva, akkor csak addjuk hozza, az adott helyre
      inroutes.add(1, r);
  }
 
  @Override
  public void addInRoutes(Route r) {
    System.out.println("Nem tamogatott fuggveny: StopCross.addInRoutes(). Helyette hasznald: addPrimaryRoute, addSecondaryRoute !");
  }
 
  @Override
  public void onTick() {
    updateVehiclesAtCross();
    vehicleOut();
  }
 
  @Override
  public void addVehicleToCross(Vehicle v) {
    if(vehicleInCross != null && v.getCarType() == carType.Robbery)
      Game.getInstance().finishGame();
    else
      vehicleInCross = v;
  }

}
TOP

Related Classes of cross.StopCross

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.