package fr.lyrgard.hexScape.listener;
import com.google.common.eventbus.Subscribe;
import fr.lyrgard.hexScape.HexScapeCore;
import fr.lyrgard.hexScape.bus.CoreMessageBus;
import fr.lyrgard.hexScape.message.LookFreelyMessage;
import fr.lyrgard.hexScape.message.LookFromAboveMessage;
import fr.lyrgard.hexScape.message.LookFromPieceMessage;
import fr.lyrgard.hexScape.model.CurrentUserInfo;
import fr.lyrgard.hexScape.service.PieceManager;
public class CameraMessageListener extends AbstractMessageListener {
private static CameraMessageListener instance;
public static void start() {
if (instance == null) {
instance = new CameraMessageListener();
CoreMessageBus.register(instance);
}
}
private CameraMessageListener() {
}
@Subscribe
public void onLookAtPointOfView(LookFromPieceMessage message) {
String playerId = message.getPlayerId();
String pieceId = message.getPieceId();
if (CurrentUserInfo.getInstance().getPlayerId().equals(playerId)) {
PieceManager pieceManager = HexScapeCore.getInstance().getMapManager().getPieceManagersByPieceIds().get(pieceId);
if (pieceManager != null) {
HexScapeCore.getInstance().getHexScapeJme3Application().lookThroughEyesOf(pieceManager);
}
}
}
@Subscribe
public void onLookAtMap(LookFromAboveMessage message) {
String playerId = message.getPlayerId();
if (CurrentUserInfo.getInstance().getPlayerId().equals(playerId)) {
HexScapeCore.getInstance().getHexScapeJme3Application().lookAtTheMap();
}
}
@Subscribe
public void onLookFreely(LookFreelyMessage message) {
String playerId = message.getPlayerId();
if (CurrentUserInfo.getInstance().getPlayerId().equals(playerId)) {
HexScapeCore.getInstance().getHexScapeJme3Application().lookFreely();
}
}
}