package eu.lestard.snakefx.util;
import eu.lestard.snakefx.core.Direction;
import eu.lestard.snakefx.viewmodel.CentralViewModel;
import javafx.event.EventHandler;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javax.inject.Singleton;
/**
* This class handles the input of the user.
*
* @author manuel.mauky
*/
@Singleton
public class KeyboardHandler implements EventHandler<KeyEvent> {
private final CentralViewModel viewModel;
public KeyboardHandler(final CentralViewModel viewModel) {
this.viewModel = viewModel;
}
@SuppressWarnings("incomplete-switch")
@Override
public void handle(final KeyEvent event) {
final KeyCode code = event.getCode();
switch (code) {
case UP:
viewModel.snakeDirection.set(Direction.UP);
break;
case DOWN:
viewModel.snakeDirection.set(Direction.DOWN);
break;
case LEFT:
viewModel.snakeDirection.set(Direction.LEFT);
break;
case RIGHT:
viewModel.snakeDirection.set(Direction.RIGHT);
break;
}
}
}