diff --git a/src/components/dialogs/ClearBlocks.tsx b/src/components/dialogs/ClearBlocks.tsx
new file mode 100644
index 0000000..557fa59
--- /dev/null
+++ b/src/components/dialogs/ClearBlocks.tsx
@@ -0,0 +1,43 @@
+import { useContext } from "react";
+
+import { CanvasContext } from "@/context/Canvas";
+
+import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
+import { Button } from "@/components/ui/button";
+
+function ClearBlocks({ close }: DialogProps) {
+ const { stageSize, setBlocks, setCoords, setScale } = useContext(CanvasContext);
+
+ const onSubmit = () => {
+ const newScale = 8;
+ const blockCenter = (1 + 1 * 16) / 2;
+
+ setBlocks([{ name: "bedrock", x: 0, y: 0 }]);
+ setCoords({
+ x: stageSize.width / 2 - blockCenter * newScale,
+ y: stageSize.height / 2 - blockCenter * newScale,
+ });
+ setScale(newScale);
+ close();
+ };
+
+ return (
+
+
+ Are you sure?
+ This action will delete every block on the canvas. It cannot be undone once completed.
+
+
+
+
+
+
+
+ );
+}
+
+export default ClearBlocks;
diff --git a/src/components/menubar/FileMenu.tsx b/src/components/menubar/FileMenu.tsx
index b1d1422..1e10587 100644
--- a/src/components/menubar/FileMenu.tsx
+++ b/src/components/menubar/FileMenu.tsx
@@ -32,6 +32,9 @@ function FileMenu() {
image
+
+
+ openDialog("ClearBlocks")}>Clear All Blocks
);