package squaresgame;
import squaresgame.GameController.LinePlacedEvent;
import framework.component.Component;
import framework.component.ComponentSystem;
import framework.event.Event;
import framework.event.EventListener;
import framework.event.EventSystem;
import framework.rendering.SpriteComponent;
import generators.GridLineGenerator;
public class LineComponent extends Component implements EventListener{
private final Line l;
public LineComponent(Line l) {
super();
this.l = l;
EventSystem.getInstance().registerEventListener(this, "LinePlaced", null);
}
public Line getLine() {
return l;
}
@Override
public boolean allowSameTypedSiblings() {
return false;
}
@Override
protected byte getDataFormatVersion() {
return 0;
}
@Override
public void onEvent(Event e) {
if(e != null && e.getType().equals("LinePlaced")){
LinePlacedEvent lineEvent = (LinePlacedEvent) e;
if(lineEvent.getLine() != null && lineEvent.getLine().equals(this.l)){
SpriteComponent lineSprite = (SpriteComponent) ComponentSystem.getInstance().getComponentWithTypeAndLabel(GridLineGenerator.getLineLabel(l), SpriteComponent.class);
if(lineSprite != null){
lineSprite.setImageFilename(ColourManager.getLineForPlayer(lineEvent.getPlayerID()), true);
}
}
}
}
}