feat: use programmer art textures when on versions 1.13 and below

This commit is contained in:
trafficlunar 2024-12-29 19:40:24 +00:00
parent dca9e43e99
commit 0bfe70809d
13 changed files with 97 additions and 53 deletions

View file

@ -36,6 +36,7 @@ function Blocks({
usableBlocks,
coords,
scale,
version,
setLoading,
}: Props) {
const app = useApp();
@ -49,7 +50,7 @@ function Blocks({
// Tile solid colors at smaller scales
if (scale >= 0.5) {
blocks.forEach((block) => {
tilemap.tile(textures[`${block.name}.png`] ?? missingTexture, block.x * 16, block.y * 16);
tilemap.tile(textures[block.name], block.x * 16, block.y * 16);
});
} else {
blocks.forEach((block) => {
@ -67,7 +68,7 @@ function Blocks({
tileBlocks();
}, []);
useEffect(tileBlocks, [blocks]);
useEffect(tileBlocks, [blocks, version]);
useEffect(() => {
if (!tilemapRef.current) return;

View file

@ -11,6 +11,8 @@ import { TexturesContext } from "@/context/Textures";
import { ThemeContext } from "@/context/Theme";
import { ToolContext } from "@/context/Tool";
import { useTextures } from "@/hooks/useTextures";
import Blocks from "./Blocks";
import Cursor from "./Cursor";
import Grid from "./Grid";
@ -29,10 +31,11 @@ function Canvas() {
const { image, imageDimensions, usableBlocks } = useContext(ImageContext);
const { setLoading } = useContext(LoadingContext);
const { settings } = useContext(SettingsContext);
const { missingTexture, textures, solidTextures } = useContext(TexturesContext);
const { missingTexture, solidTextures } = useContext(TexturesContext);
const { isDark } = useContext(ThemeContext);
const { tool, radius, selectedBlock, cssCursor, setTool, setSelectedBlock, setCssCursor } = useContext(ToolContext);
const textures = useTextures(version);
const stageContainerRef = useRef<HTMLDivElement>(null);
const [mousePosition, setMousePosition] = useState<Position>({ x: 0, y: 0 });