From 258f1d332addda28d2cdb719e1e8a5a99921e8a5 Mon Sep 17 00:00:00 2001 From: trafficlunar Date: Sun, 29 Dec 2024 23:27:16 +0000 Subject: [PATCH] fix: reimplement missing texture --- src/components/dialogs/SaveImage.tsx | 4 +++- src/components/dialogs/open-image/BlockSelector.tsx | 4 +++- src/components/toolbar/SelectedBlock.tsx | 9 ++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/components/dialogs/SaveImage.tsx b/src/components/dialogs/SaveImage.tsx index c2c88bd..7bcf6a6 100644 --- a/src/components/dialogs/SaveImage.tsx +++ b/src/components/dialogs/SaveImage.tsx @@ -2,6 +2,7 @@ import { useContext, useState } from "react"; import * as PIXI from "pixi.js"; import { CanvasContext } from "@/context/Canvas"; +import { TexturesContext } from "@/context/Textures"; import { Button } from "@/components/ui/button"; import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; @@ -11,6 +12,7 @@ import { useTextures } from "@/hooks/useTextures"; function SaveImage({ close }: DialogProps) { const { blocks, canvasSize, version } = useContext(CanvasContext); + const { missingTexture } = useContext(TexturesContext); const [fileName, setFileName] = useState("blockmatic"); const textures = useTextures(version); @@ -27,7 +29,7 @@ function SaveImage({ close }: DialogProps) { const container = new PIXI.Container(); blocks.forEach((block) => { - const sprite = new PIXI.Sprite(textures[block.name]); + const sprite = new PIXI.Sprite(textures[block.name] ?? missingTexture); sprite.x = block.x * 16; sprite.y = block.y * 16; container.addChild(sprite); diff --git a/src/components/dialogs/open-image/BlockSelector.tsx b/src/components/dialogs/open-image/BlockSelector.tsx index bbe6e8b..0250f9f 100644 --- a/src/components/dialogs/open-image/BlockSelector.tsx +++ b/src/components/dialogs/open-image/BlockSelector.tsx @@ -3,6 +3,7 @@ import { Container, Graphics, Sprite, Stage } from "@pixi/react"; import { CanvasContext } from "@/context/Canvas"; import { ThemeContext } from "@/context/Theme"; +import { TexturesContext } from "@/context/Textures"; import { useBlockData } from "@/hooks/useBlockData"; import { useTextures } from "@/hooks/useTextures"; @@ -17,6 +18,7 @@ interface Props { function BlockSelector({ stageWidth, searchInput, selectedBlocks, setSelectedBlocks, userModifiedBlocks }: Props) { const { version } = useContext(CanvasContext); + const { missingTexture } = useContext(TexturesContext); const { isDark } = useContext(ThemeContext); const blockData = useBlockData(version); @@ -53,7 +55,7 @@ function BlockSelector({ stageWidth, searchInput, selectedBlocks, setSelectedBlo <> - +