Skip to content

Commit b34ca16

Browse files
authored
Show a hint in the render tab if no chunks are loaded. (#1037)
1 parent 1a4ca51 commit b34ca16

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

chunky/src/java/se/llbit/chunky/ui/RenderCanvasFx.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919

2020
import javafx.application.Platform;
2121
import javafx.geometry.Bounds;
22+
import javafx.geometry.Insets;
2223
import javafx.geometry.Point2D;
2324
import javafx.scene.Group;
2425
import javafx.scene.canvas.Canvas;
2526
import javafx.scene.canvas.GraphicsContext;
2627
import javafx.scene.control.CheckMenuItem;
2728
import javafx.scene.control.ContextMenu;
29+
import javafx.scene.control.Label;
2830
import javafx.scene.control.Menu;
2931
import javafx.scene.control.MenuItem;
3032
import javafx.scene.control.RadioMenuItem;
@@ -36,9 +38,13 @@
3638
import javafx.scene.image.WritablePixelFormat;
3739
import javafx.scene.input.KeyEvent;
3840
import javafx.scene.input.MouseButton;
41+
import javafx.scene.layout.Background;
42+
import javafx.scene.layout.BackgroundFill;
3943
import javafx.scene.layout.StackPane;
4044
import javafx.scene.paint.Color;
45+
import javafx.scene.paint.Paint;
4146
import javafx.scene.shape.Line;
47+
import javafx.scene.text.TextAlignment;
4248
import javafx.stage.PopupWindow;
4349
import se.llbit.chunky.PersistentSettings;
4450
import se.llbit.chunky.renderer.*;
@@ -64,6 +70,7 @@ public class RenderCanvasFx extends ScrollPane implements Repaintable, SceneStat
6470
private final Canvas canvas;
6571
private final Group guideGroup;
6672
private final StackPane canvasPane;
73+
private final Label noChunksLabel;
6774
private final RenderManager renderManager;
6875
private int lastX;
6976
private int lastY;
@@ -93,6 +100,10 @@ public RenderCanvasFx(se.llbit.chunky.renderer.scene.Scene scene, RenderManager
93100
canvasPane = new StackPane(canvas);
94101
setContent(canvasPane);
95102

103+
noChunksLabel = new Label("No chunks selected for rendering.\nOpen a world and select and load chunks in the Map tab to get started.");
104+
noChunksLabel.setTextAlignment(TextAlignment.CENTER);
105+
canvasPane.getChildren().add(noChunksLabel);
106+
96107
guideGroup = new Group();
97108
Line hGuide1 = new Line();
98109
Line hGuide2 = new Line();
@@ -391,6 +402,9 @@ public void setRenderListener(RenderStatusListener renderListener) {
391402
tooltip.show(this,
392403
offset.getX() + getScene().getX() + getScene().getWindow().getX(),
393404
offset.getY() + getScene().getY() + getScene().getWindow().getY() + getHeight());
405+
noChunksLabel.setBackground(new Background(new BackgroundFill(Paint.valueOf("#00000099"),null,null)));
406+
noChunksLabel.setPadding(new Insets(20));
407+
noChunksLabel.setVisible(!renderScene.haveLoadedChunks());
394408
});
395409
}
396410

0 commit comments

Comments
 (0)