- [BUG] Tomato fills up instead of depleting #story[1291]main
parent
b0bc7f50f2
commit
10008f5452
@ -0,0 +1,66 @@
|
||||
package visualiser.layout;
|
||||
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.WritableImage;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.scene.shape.Rectangle;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
/**
|
||||
* Created by connortaylorbrown on 21/09/17.
|
||||
*/
|
||||
public class HealthSlider extends Pane {
|
||||
/**
|
||||
* Image used to fill health slider
|
||||
*/
|
||||
private Image fillImage;
|
||||
/**
|
||||
* Size of background for image configuration
|
||||
*/
|
||||
private BackgroundSize backgroundSize;
|
||||
/**
|
||||
* Percentage of image cropped out from top
|
||||
*/
|
||||
private double crop;
|
||||
|
||||
public HealthSlider(Image fillImage) {
|
||||
this.fillImage = fillImage;
|
||||
this.crop = 0;
|
||||
this.backgroundSize = new BackgroundSize(
|
||||
100,
|
||||
100,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
false);
|
||||
drawSlider();
|
||||
}
|
||||
|
||||
public void setCrop(double crop) {
|
||||
this.crop = crop;
|
||||
drawSlider();
|
||||
}
|
||||
|
||||
private void drawSlider() {
|
||||
int top = (int)(crop * fillImage.getHeight());
|
||||
|
||||
WritableImage croppedImage = new WritableImage(
|
||||
fillImage.getPixelReader(),
|
||||
0,
|
||||
top,
|
||||
(int)fillImage.getWidth(),
|
||||
(int)fillImage.getHeight() - top
|
||||
);
|
||||
|
||||
BackgroundImage backgroundImage = new BackgroundImage(
|
||||
croppedImage,
|
||||
BackgroundRepeat.NO_REPEAT,
|
||||
BackgroundRepeat.NO_REPEAT,
|
||||
BackgroundPosition.CENTER,
|
||||
backgroundSize
|
||||
);
|
||||
|
||||
this.setBackground(new Background(backgroundImage));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue