package com.kartoflane.superluminal2.mvc.views;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.graphics.Point;
import com.kartoflane.superluminal2.ftl.AnimationObject;
import com.kartoflane.superluminal2.mvc.controllers.MountController;
public class MountView extends BaseView {
private Point weaponOffset = null;
private Point frameSize = null;
public MountView() {
super();
setBorderColor(null);
setBackgroundColor(null);
setBorderThickness(2);
}
private MountController getController() {
return (MountController) controller;
}
@Override
public void paintControl(PaintEvent e) {
if (alpha > 0) {
paintImageCorner(e, image, cachedImageBounds, 0, 0, frameSize.x, frameSize.y,
controller.getX() - weaponOffset.x,
controller.getY() - weaponOffset.y,
frameSize.x, frameSize.y, alpha);
paintBorderSquare(e, controller.getX() - weaponOffset.x,
controller.getY() - weaponOffset.y,
frameSize.x, frameSize.y, borderColor, borderThickness, alpha);
}
}
@Override
public void updateView() {
AnimationObject anim = getController().getWeapon().getAnimation();
setImage(anim.getSheetPath());
weaponOffset = anim.getMountOffset();
frameSize = anim.getFrameSize();
if (controller.isSelected()) {
setBorderColor(controller.isPinned() ? PIN_RGB : SELECT_RGB);
setBackgroundColor(defaultBackground);
setBorderThickness(2);
} else if (controller.isHighlighted()) {
setBorderColor(HIGHLIGHT_RGB);
setBackgroundColor(defaultBackground);
setBorderThickness(3);
} else {
setBorderColor(defaultBorder);
setBackgroundColor(defaultBackground);
setBorderThickness(2);
}
}
@Override
public void dispose() {
super.dispose();
}
}