/* Write by
* Ekkalak Leelasornchai 5830622421
* Burin Naowarat 5831034621
* Progmeth project
*/
package model;
import java.util.Random;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
public class CrossStation extends Station{
public CrossStation(double x, double y) {
super(x, y);
// TODO Auto-generated constructor stub
}
public void AddPassenger(){
Random R = new Random();
int r = R.nextInt(3);
Passenger p = null;
if(r%3 == 0)p = new SquarePassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(r%3 == 1) p = new ArcPassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(r%3 == 2) p = new TrianglePassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
passengers.add(p);
}
public void draw(GraphicsContext gc) {
// TODO Auto-generated method stub
gc.setLineWidth(4.0);
gc.setStroke(Color.BLACK);
double[] X1 = new double[]{getX()+7,getX()+17,getX()+17,getX()+24,getX()+24,getX()+17,getX()+17,getX()+7,getX()+7,getX(),getX(),getX()+7};
double[] Y1 = new double[]{getY(),getY(),getY()+7,getY()+7,getY()+17,getY()+17,getY()+24,getY()+24,getY()+17,getY()+17,getY()+7,getY()+7};
gc.strokePolygon(X1,Y1,12);
}
@Override
public double getCenterX() {
// TODO Auto-generated method stub
return x+12;
}
@Override
public double getCenterY() {
// TODO Auto-generated method stub
return y+12;
}
@Override
public String getType() {
// TODO Auto-generated method stub
return "Cross";
}
@Override
public synchronized void recievePeople(Passenger p) {
// TODO Auto-generated method stub
Passenger newP = null;
if(p.getType().compareTo("Square") == 0 ) newP = new SquarePassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(p.getType().compareTo("Arc") == 0 ) newP = new ArcPassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(p.getType().compareTo("Cross") == 0 ) newP = new CrossPassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(p.getType().compareTo("Triangle") == 0 ) newP = new TrianglePassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
if(newP==null) System.out.println("recievePeople:null");
else System.out.println("recievePeople:mainull");
tempPassengers.add(newP);
}
public synchronized void updateRecievePeople(){
for(Passenger p : tempPassengers){
Passenger newP = null;
if(p.getType().compareTo("Square") == 0 ) newP = new SquarePassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(p.getType().compareTo("Arc") == 0 ) newP = new ArcPassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(p.getType().compareTo("Cross") == 0 ) newP = new CrossPassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
else if(p.getType().compareTo("Triangle") == 0 ) newP = new TrianglePassenger(getX() + 28 + getNumberOfPassengers()*12, this.y,1,Color.BLACK);
passengers.add(newP);
}
tempPassengers.clear();
}
}