fix: reimplement missing texture
This commit is contained in:
parent
f401ef3cfa
commit
258f1d332a
3 changed files with 12 additions and 5 deletions
|
|
@ -2,6 +2,7 @@ import { useContext, useState } from "react";
|
||||||
import * as PIXI from "pixi.js";
|
import * as PIXI from "pixi.js";
|
||||||
|
|
||||||
import { CanvasContext } from "@/context/Canvas";
|
import { CanvasContext } from "@/context/Canvas";
|
||||||
|
import { TexturesContext } from "@/context/Textures";
|
||||||
|
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
|
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
|
||||||
|
|
@ -11,6 +12,7 @@ import { useTextures } from "@/hooks/useTextures";
|
||||||
|
|
||||||
function SaveImage({ close }: DialogProps) {
|
function SaveImage({ close }: DialogProps) {
|
||||||
const { blocks, canvasSize, version } = useContext(CanvasContext);
|
const { blocks, canvasSize, version } = useContext(CanvasContext);
|
||||||
|
const { missingTexture } = useContext(TexturesContext);
|
||||||
|
|
||||||
const [fileName, setFileName] = useState("blockmatic");
|
const [fileName, setFileName] = useState("blockmatic");
|
||||||
const textures = useTextures(version);
|
const textures = useTextures(version);
|
||||||
|
|
@ -27,7 +29,7 @@ function SaveImage({ close }: DialogProps) {
|
||||||
|
|
||||||
const container = new PIXI.Container();
|
const container = new PIXI.Container();
|
||||||
blocks.forEach((block) => {
|
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.x = block.x * 16;
|
||||||
sprite.y = block.y * 16;
|
sprite.y = block.y * 16;
|
||||||
container.addChild(sprite);
|
container.addChild(sprite);
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { Container, Graphics, Sprite, Stage } from "@pixi/react";
|
||||||
|
|
||||||
import { CanvasContext } from "@/context/Canvas";
|
import { CanvasContext } from "@/context/Canvas";
|
||||||
import { ThemeContext } from "@/context/Theme";
|
import { ThemeContext } from "@/context/Theme";
|
||||||
|
import { TexturesContext } from "@/context/Textures";
|
||||||
|
|
||||||
import { useBlockData } from "@/hooks/useBlockData";
|
import { useBlockData } from "@/hooks/useBlockData";
|
||||||
import { useTextures } from "@/hooks/useTextures";
|
import { useTextures } from "@/hooks/useTextures";
|
||||||
|
|
@ -17,6 +18,7 @@ interface Props {
|
||||||
|
|
||||||
function BlockSelector({ stageWidth, searchInput, selectedBlocks, setSelectedBlocks, userModifiedBlocks }: Props) {
|
function BlockSelector({ stageWidth, searchInput, selectedBlocks, setSelectedBlocks, userModifiedBlocks }: Props) {
|
||||||
const { version } = useContext(CanvasContext);
|
const { version } = useContext(CanvasContext);
|
||||||
|
const { missingTexture } = useContext(TexturesContext);
|
||||||
const { isDark } = useContext(ThemeContext);
|
const { isDark } = useContext(ThemeContext);
|
||||||
|
|
||||||
const blockData = useBlockData(version);
|
const blockData = useBlockData(version);
|
||||||
|
|
@ -53,7 +55,7 @@ function BlockSelector({ stageWidth, searchInput, selectedBlocks, setSelectedBlo
|
||||||
<>
|
<>
|
||||||
<Sprite
|
<Sprite
|
||||||
key={block}
|
key={block}
|
||||||
texture={textures[block]}
|
texture={textures[block] ?? missingTexture}
|
||||||
x={x}
|
x={x}
|
||||||
y={y}
|
y={y}
|
||||||
scale={2}
|
scale={2}
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,18 @@ import { Container, Sprite, Stage } from "@pixi/react";
|
||||||
|
|
||||||
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";
|
||||||
|
|
||||||
|
import { CanvasContext } from "@/context/Canvas";
|
||||||
|
import { TexturesContext } from "@/context/Textures";
|
||||||
import { ToolContext } from "@/context/Tool";
|
import { ToolContext } from "@/context/Tool";
|
||||||
|
|
||||||
import _blockData from "@/data/blocks/data.json";
|
|
||||||
import { useTextures } from "@/hooks/useTextures";
|
import { useTextures } from "@/hooks/useTextures";
|
||||||
import { CanvasContext } from "@/context/Canvas";
|
|
||||||
|
import _blockData from "@/data/blocks/data.json";
|
||||||
const blockData: BlockData = _blockData;
|
const blockData: BlockData = _blockData;
|
||||||
|
|
||||||
function SelectedBlock() {
|
function SelectedBlock() {
|
||||||
const { version } = useContext(CanvasContext);
|
const { version } = useContext(CanvasContext);
|
||||||
|
const { missingTexture } = useContext(TexturesContext);
|
||||||
const { selectedBlock } = useContext(ToolContext);
|
const { selectedBlock } = useContext(ToolContext);
|
||||||
|
|
||||||
const textures = useTextures(version);
|
const textures = useTextures(version);
|
||||||
|
|
@ -31,7 +34,7 @@ function SelectedBlock() {
|
||||||
<div ref={divRef} className="absolute bottom-1 w-8 h-8 outline outline-1 outline-zinc-800 dark:outline-zinc-200">
|
<div ref={divRef} className="absolute bottom-1 w-8 h-8 outline outline-1 outline-zinc-800 dark:outline-zinc-200">
|
||||||
<Stage width={divRef.current?.clientWidth} height={divRef.current?.clientHeight}>
|
<Stage width={divRef.current?.clientWidth} height={divRef.current?.clientHeight}>
|
||||||
<Container>
|
<Container>
|
||||||
<Sprite texture={textures[selectedBlock]} scale={2} />
|
<Sprite texture={textures[selectedBlock] ?? missingTexture} scale={2} />
|
||||||
</Container>
|
</Container>
|
||||||
</Stage>
|
</Stage>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue