UNPKG

pixi-fusion

Version:

This module offers a set of common components needed for playing games.

27 lines (26 loc) 883 B
import { useEffect, useMemo } from "react"; import { TilingSprite } from "pixi.js"; import { useTextures } from "./useTexture"; import { useObject } from "./useObject"; export const useTilingSprite = ({ texture = "", tilePosition, ...options }) => { const textureKeys = useMemo(() => { return [...(texture ? [texture] : [])]; }, [texture]); const { isFetched } = useTextures({ keys: textureKeys }); const sprite = useMemo(() => { if (!isFetched) { return null; } if (texture) { return TilingSprite.from(texture); } return new TilingSprite({}); }, [texture, frames]); useObject({ object: sprite, ...options }); useEffect(() => { if (tilePosition && sprite) { sprite.tilePosition = tilePosition; } }, [tilePosition, sprite?.uid]); return sprite; };