mirror of
https://github.com/guezoloic/L3-racing-game.git
synced 2026-03-31 04:11:33 +00:00
104 lines
1.9 KiB
Java
104 lines
1.9 KiB
Java
package model.car;
|
|
|
|
import java.awt.Color;
|
|
import model.Game;
|
|
|
|
/**
|
|
* {@link CarDecorator} est une classe abstraite servant de base pour
|
|
* les décorateurs de voitures.
|
|
*
|
|
* <p>
|
|
* Elle encapsule une voiture existante ({@link Car}) et délègue
|
|
* toutes les méthodes à cette voiture. Les sous-classes peuvent
|
|
* redéfinir certaines méthodes pour ajouter un comportement
|
|
* spécifique (ex. Boost, Drunk, Hybrid).
|
|
* </p>
|
|
*/
|
|
public abstract class CarDecorator implements Car {
|
|
/** La voiture encapsulée à décorer */
|
|
protected final Car car;
|
|
|
|
/**
|
|
* Construit un décorateur autour d'une voiture existante.
|
|
*
|
|
* @param car la voiture à décorer
|
|
*/
|
|
public CarDecorator(Car car) {
|
|
this.car = car;
|
|
}
|
|
|
|
@Override
|
|
public Car remove() {
|
|
return car;
|
|
}
|
|
|
|
@Override
|
|
public String accelerate() {
|
|
return car.accelerate();
|
|
}
|
|
|
|
@Override
|
|
public String decelerate() {
|
|
return car.decelerate();
|
|
}
|
|
|
|
@Override
|
|
public boolean apply() {
|
|
return car.apply();
|
|
}
|
|
|
|
@Override
|
|
public void reverse(boolean active) {
|
|
car.reverse(active);
|
|
}
|
|
|
|
@Override
|
|
public Color getColor() {
|
|
return car.getColor();
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return car.getName();
|
|
}
|
|
|
|
@Override
|
|
public void consumption(boolean active) {
|
|
car.consumption(active);
|
|
}
|
|
|
|
@Override
|
|
public int getPosition() {
|
|
return car.getPosition();
|
|
}
|
|
|
|
@Override
|
|
public int getScore() {
|
|
return car.getScore();
|
|
}
|
|
|
|
@Override
|
|
public int getRound() {
|
|
return car.getRound();
|
|
}
|
|
|
|
@Override
|
|
public int getFuel() {
|
|
return car.getFuel();
|
|
}
|
|
|
|
@Override
|
|
public State getState() {
|
|
return car.getState();
|
|
}
|
|
|
|
@Override
|
|
public void setup(Game game) {
|
|
car.setup(game);
|
|
}
|
|
|
|
@Override
|
|
public void end() {
|
|
car.end();
|
|
}
|
|
} |