package com.tacoid.pweek.actors;
import java.util.Calendar;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.InputListener;
import com.badlogic.gdx.scenes.scene2d.ui.Button;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
import com.tacoid.pweek.logic.GameLogic;
import com.tacoid.pweek.logic.GameLogic.MoveType;
public class MoveButton extends Button {
private long last = 0;
private GameLogic gameLogic;
private MoveType direction;
public MoveButton(MoveType dir, GameLogic logic, float x, float y, TextureRegion regionUp, TextureRegion regionDown) {
super(new TextureRegionDrawable(regionUp), new TextureRegionDrawable(regionDown));
direction = dir;
gameLogic = logic;
this.setX(x);
this.setY(y);
this.addListener(new InputListener() {
@Override
public boolean touchDown(InputEvent event, float x, float y,
int pointer, int button) {
//if (end) return false;
super.touchDown(event, x, y, pointer, button);
switch(direction) {
case DOWN:
gameLogic.down();
break;
case LEFT:
gameLogic.moveLeft();
break;
case RIGHT:
gameLogic.moveRight();
break;
case ROT_RIGHT:
gameLogic.rotateRight();
break;
case ROT_LEFT:
gameLogic.rotateLeft();
break;
default:
break;
}
//gameLogic.dropPiece();
return true;
}
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
if(direction == MoveType.DOWN) {
gameLogic.up();
if (Calendar.getInstance().getTimeInMillis() - last < 500) {
gameLogic.dropPiece();
}
last = Calendar.getInstance().getTimeInMillis();
}
}
});
}
}