package me.desht.chesscraft.controlpanel;
import chesspresso.Chess;
import me.desht.chesscraft.chess.ChessGame;
import me.desht.chesscraft.chess.TimeControlDefs;
import me.desht.chesscraft.enums.GameState;
import org.bukkit.event.player.PlayerInteractEvent;
public class TimeControlButton extends AbstractSignButton {
private final TimeControlDefs tcDefs;
public TimeControlButton(ControlPanel panel) {
super(panel, "timeControl", "tc", 3, 0);
tcDefs = new TimeControlDefs();
}
public TimeControlDefs getTcDefs() {
return tcDefs;
}
public void reloadDefs() {
tcDefs.reload();
repaint();
}
@Override
public void execute(PlayerInteractEvent event) {
ChessGame game = getGame();
if (game == null) return;
switch (event.getAction()) {
case LEFT_CLICK_BLOCK:
tcDefs.nextDef(); break;
case RIGHT_CLICK_BLOCK:
tcDefs.prevDef(); break;
default:
break;
}
game.setTimeControl(tcDefs.currentDef().getSpec());
// getPanel().updateClock(Chess.WHITE, game.getTimeControl());
// getPanel().updateClock(Chess.BLACK, game.getTimeControl());
repaint();
}
@Override
public boolean isEnabled() {
return getGame() != null;
}
@Override
public boolean isReactive() {
return gameInState(GameState.SETTING_UP) && !getView().getLockTcSpec();
}
@Override
protected String[] getCustomSignText() {
String[] text = getSignText();
String[] tcText = tcDefs.currentDef().getLabel();
int start = tcText.length < 3 ? 2 : 1;
for (int l = start, i = 0; l < 4; l++, i++) {
text[l] = getIndicatorColour() + (i < tcText.length ? tcText[i] : "");
}
return text;
}
}