package squaresgame;
import squaresgame.GameController.SquarePlacedEvent;
import framework.component.Component;
import framework.event.Event;
import framework.event.EventListener;
import framework.event.EventSystem;
import framework.rendering.TextRenderComponent;
public class ScoreCounterComponent extends Component implements EventListener{
private Player player = null;
public ScoreCounterComponent(Player player) {
super();
this.player = player;
EventSystem.getInstance().registerEventListener(this, "SquarePlaced", null);
}
@Override
public boolean allowSameTypedSiblings() {
return true;
}
@Override
protected byte getDataFormatVersion() {
return 0;
}
@Override
public void onEvent(Event e) {
if(e != null && e.getType().equals("SquarePlaced")){
if(((SquarePlacedEvent) e).getSquare().getOwningPlayer().equals(this.player)){
updatePlayerScoreText();
}
}
}
@Override
public void onSiblingAdded(Component sibling) {
super.onSiblingAdded(sibling);
updatePlayerScoreText();
}
private void updatePlayerScoreText(){
TextRenderComponent textComp = (TextRenderComponent) getSiblingByType(TextRenderComponent.class.getName());
if(textComp != null){
//textComp.setText(player.toString());
textComp.setText(String.valueOf(player.getScore()));
}
}
}