From c4feadb4af4b4ff241e0667f65d2e218985c9e8f Mon Sep 17 00:00:00 2001 From: luisdralves Date: Tue, 19 Sep 2023 16:17:50 +0100 Subject: [PATCH] =?UTF-8?q?Add=20tost=C3=A3o=20furado=20model=20and=20stag?= =?UTF-8?q?e=20lights?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/models/stage-light.gltf | 206 ++++++++++++++++++ public/models/tostao-furado.gltf | 104 +++++++++ .../bahamas-cents-10.tsx | 0 .../bahamas-cents-15.tsx | 0 .../euro-cents-20.tsx | 0 src/components/coin/custom/tostao-furado.tsx | 17 ++ src/components/coin/index.tsx | 15 +- src/components/pile/coin-instances.tsx | 7 +- src/components/pile/index.tsx | 38 ++-- src/components/pile/stage-light-model.tsx | 36 +++ 10 files changed, 400 insertions(+), 23 deletions(-) create mode 100644 public/models/stage-light.gltf create mode 100644 public/models/tostao-furado.gltf rename src/components/coin/{custom-geometries => custom}/bahamas-cents-10.tsx (100%) rename src/components/coin/{custom-geometries => custom}/bahamas-cents-15.tsx (100%) rename src/components/coin/{custom-geometries => custom}/euro-cents-20.tsx (100%) create mode 100644 src/components/coin/custom/tostao-furado.tsx create mode 100644 src/components/pile/stage-light-model.tsx diff --git a/public/models/stage-light.gltf b/public/models/stage-light.gltf new file mode 100644 index 0000000..f6e9650 --- /dev/null +++ b/public/models/stage-light.gltf @@ -0,0 +1,206 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v3.6.6", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"Cube" + } + ], + "materials":[ + { + "doubleSided":true, + "name":"Base", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0.125, + 0.125, + 0.125, + 1 + ], + "roughnessFactor":0.75 + } + }, + { + "doubleSided":true, + "emissiveFactor":[ + 1, + 0.875, + 0.5 + ], + "name":"Light", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 1, + 0.8749999403953552, + 0.5, + 1 + ], + "metallicFactor":0, + "roughnessFactor":0.5 + } + } + ], + "meshes":[ + { + "name":"Cube.001", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "TEXCOORD_0":1, + "NORMAL":2 + }, + "indices":3, + "material":0 + }, + { + "attributes":{ + "POSITION":4, + "TEXCOORD_0":5, + "NORMAL":6 + }, + "indices":7, + "material":1 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":212, + "max":[ + 3.6666667461395264, + 2, + 2 + ], + "min":[ + -2, + -2, + -2 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":212, + "type":"VEC2" + }, + { + "bufferView":2, + "componentType":5126, + "count":212, + "type":"VEC3" + }, + { + "bufferView":3, + "componentType":5123, + "count":450, + "type":"SCALAR" + }, + { + "bufferView":4, + "componentType":5126, + "count":32, + "max":[ + 1.875, + 0.765625, + 0.765625 + ], + "min":[ + 1.875, + -0.765625, + -0.765625 + ], + "type":"VEC3" + }, + { + "bufferView":5, + "componentType":5126, + "count":32, + "type":"VEC2" + }, + { + "bufferView":6, + "componentType":5126, + "count":32, + "type":"VEC3" + }, + { + "bufferView":7, + "componentType":5123, + "count":90, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":2544, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":1696, + "byteOffset":2544, + "target":34962 + }, + { + "buffer":0, + "byteLength":2544, + "byteOffset":4240, + "target":34962 + }, + { + "buffer":0, + "byteLength":900, + "byteOffset":6784, + "target":34963 + }, + { + "buffer":0, + "byteLength":384, + "byteOffset":7684, + "target":34962 + }, + { + "buffer":0, + "byteLength":256, + "byteOffset":8068, + "target":34962 + }, + { + "buffer":0, + "byteLength":384, + "byteOffset":8324, + "target":34962 + }, + { + "buffer":0, + "byteLength":180, + "byteOffset":8708, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":8888, + "uri":"data:application/octet-stream;base64,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AACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAwD4AAIA+AADAPgAAAD8AAAAAAACAPwAAAAAAAIA/AADAPgAAgD4AACA/AACAPgAAAAAAAIA/AAAAAAAAgD8AAMA+AACAPwAAwD4AAAAAAAAgPwAAgD8AACA/AAAAAAAAwD4AAEA/AADAPgAAQD8AACA/AABAPwAAID8AAEA/AADAPgAAgD4AAMA+AACAPgAAwD4AAIA+AADAPgAAgD4AAMA+AACAPgAAID8AAIA+AAAgPwAAgD4AAAAAAACAPwAAAAAAAIA/AAAgPwAAgD4AAMA+AAAAPwAAAAAAAIA/AADAPgAAAD8AAMA+AAAAPwAAAAAAAIA/AAAgPwAAAD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AACA/AAAAPwAAwD4AAIA+AADAPgAAgD4AACA/AACAPgAAID8AAIA+AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAwD4AAIA+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AACAvwAAgL8AAAAAAAAAgAAAAAAAAAAAAACAvwAAAAAAAAAAAACAP0a2A78AAAAAH4VbP0a2A78fhVu/AAAAgAAAAAAAAIC/AAAAgEjhuj5SSb0+g8BaPwAAAAAAAAAAAACAP0a2A78AAAAAH4VbP0a2A78fhVs/AAAAgEjhuj5SSb2+g8BaPwAAAAAAAIA/AAAAgAAAAAAAAAAAAACAv0a2A78AAAAAH4Vbv0a2A78fhVu/AAAAgAAAAAAAAIC/AAAAgEjhuj6DwFq/Ukm9PgAAAAAAAAAAAACAv0a2A78fhVs/AAAAgEa2A78AAAAAH4Vbv0jhuj6DwFo/Ukm9PgAAAAAAAIA/AAAAgEa2A78AAAAAH4VbPwAAgD8AAAAAAAAAgEa2A78AAAAAH4VbPwAAgD8AAAAAAAAAgEa2A78fhVs/AAAAgAAAgD8AAAAAAAAAgEa2A78fhVs/AAAAgAAAgD8AAAAAAAAAgEa2A78AAAAAH4VbvwAAgD8AAAAAAAAAgEa2A78AAAAAH4VbvwAAgD8AAAAAAAAAgEa2A78fhVu/AAAAgAAAgD8AAAAAAAAAgEa2A78fhVu/AAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgD8AAAAAAAAAgAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAA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AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAfAAEAAgACAAMABAAEAAUABgAGAAcACAAIAAkACgAKAAsADAAMAAAADQANAA4ADwAPABAAEQARABIAEwATABQAFQAVABYAFwAXABgAGQAZABoAGwAbABwAHQAdAB4AHwAfAAIABAAEAAYACAAIAAoADAAMAA0ADwAPABEAEwATABUAFwAXABkAGwAbAB0AHwAfAAQACAAIAAwADwAPABMAFwAXABsAHwAfAAgADwAPABcAHwA=" + } + ] +} diff --git a/public/models/tostao-furado.gltf b/public/models/tostao-furado.gltf new file mode 100644 index 0000000..2e25c23 --- /dev/null +++ b/public/models/tostao-furado.gltf @@ -0,0 +1,104 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v3.6.6", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"TostaoFurado" + } + ], + "meshes":[ + { + "name":"TostaoFurado", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "TEXCOORD_0":1, + "NORMAL":2 + }, + "indices":3 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":260, + "max":[ + 1, + 0.5, + 1 + ], + "min":[ + -1, + -0.5, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":260, + "type":"VEC2" + }, + { + "bufferView":2, + "componentType":5126, + "count":260, + "type":"VEC3" + }, + { + "bufferView":3, + "componentType":5123, + "count":768, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":3120, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":2080, + "byteOffset":3120, + "target":34962 + }, + { + "buffer":0, + "byteLength":3120, + "byteOffset":5200, + "target":34962 + }, + { + "buffer":0, + "byteLength":1536, + "byteOffset":8320, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":9856, + "uri":"data:application/octet-stream;base64,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AAAAgAAAAIAAAIC/AAAAgAAAAAAAAIA/AAAAgAAAAAAAAIA/AAAAgC/dVL8AAAAAzTsOPwAAAIAAAIC/AAAAgC/dVL8AAAAAzTsOPwAAAAAAAIA/AAAAgAAAAIAAAIC/AAAAgLaEbL8AAAAAQfHDPgAAAAAAAIA/AAAAgLaEbL8AAAAAQfHDPgAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAAAAAIA/AAAAgAAAAAAAAIA/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAAAAAIA/AAAAgAAAAAAAAIA/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAAAAAIA/AAAAgAAAAAAAAIA/AAAAgAAAAIAAAIC/AAAAgLaEbL8AAAAAQfHDvgAAAAAAAIA/AAAAgLaEbL8AAAAAQfHDvgAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgIEENb8AAAAAgQQ1vwAAAIAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIC/AAAAgM07Dr8AAAAAL91Uv807Dr8AAAAAL91UvwAAAIAAAIA/AAAAgEHxw74AAAAAtoRsvwAAAIAAAIC/AAAAgEHxw74AAAAAtoRsvwAAAIAAAIA/AAAAgEvIR74AAAAAtRV7v0vIRz4AAAAAtRV7P0vIR74AAAAAtRV7vwAAAIAAAIA/AAAAgAAAAAAAAAAAAACAvwAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAAAAAACAv0vIRz4AAAAAtRV7vwAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgEHxwz4AAAAAtoRsv0Hxwz4AAAAAtoRsvwAAAIAAAIA/AAAAgM07Dj8AAAAAL91UvwAAAAAAAIC/AAAAgM07Dj8AAAAAL91UvwAAAIAAAIA/AAAAgIEENT8AAAAAgQQ1vwAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgIEENT8AAAAAgQQ1vy/dVD8AAAAAzTsOvwAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgLaEbD8AAAAAQfHDvgAAAAAAAIC/AAAAgLaEbD8AAAAAQfHDvgAAAIAAAIA/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qgCrAMQA2wBPAMIAxABPAE8AqwCuAE8ArgCwAFYAwgBPALwAVgBPAE8AsABGAE8ARgC2ALkAvABPAE8AtgC5ANcAAgEDAdcAAwGcAJwAAwHeAJwA3gCaAHwAfQABAAEABAAIAAgADAARABEAFQAYABgAHAAgACAAJQAoACgALQAxADEANAA5ADkA8QCtADkArQCsACgAMQA5ABgAIAAoAAgAEQAYAHwAAQAIAAAAfAAIAAgAGAAoACgAOQCsACgArACmAIIAAAAIAOEAggAIACgApgCkACgApAAsAOIA4QAIABAA4gAIACgALACeACgAngAkABAACAAoAJAAEAAoACgAJAAhACgAIQAdAJEAkAAoACgAHQCRAK0A8QBBAEEARQBIAEgATQBRAFEAVQBZAFkAXQBgAGAAZQBpAGkAbABwAHAAdAB5AHkAfQB8AHkAfAB4AGkAcAB5AFkAYABpAEgAUQBZAK0AQQBIAK8ArQBIAEgAWQBpAGkAeQB4AGkAeAABAbEArwBIALQAsQBIAGkAAQFxAGkAcQDOALoAtABIALsAugBIAGkAzgDLAGkAywBkALsASABpAL0AuwBpAGkAZADFAGkAxQDDAMAAvQBpAGkAwwDAAIQAgQAFAIQABQAGAAYABQAJAAYACQALAAsACQANAAsADQAPAA8ADQDcAA8A3ACOABYAjgDcABYA3AAUABsAFgAUABsAFAAZAOgAGwAZAOgAGQDnAOoA6ADnAOoA5wDpAOsA6gDpAOsA6QCdACsA6wCdACsAnQApAO0AKwApAO0AKQCjAO8A7QCjAO8AowAwADYA7wAwADYAMAA1ADoANgA1ADoANQA4AD4AOgA4AD4AOAA8AEMAPgA8AEMAPABAALUAQwBAALUAQABEAEQASQBKAEQASgC1AE4ASgBJAE4ASQBMAFMATgBMAFMATABQAFMAUABUAFMAVADBAMEAVABYAMEAWABaAFoAWABcAFoAXABeAF4AXABhAF4AYQBjAGMAYQDKAGMAygDMAMwAygBoAMwAaABqAGoAaABtAGoAbQBvAG8AbQAAAW8AAAFyAHIAAAF1AHIAdQB2AHYAdQD2AHYA9gB6ANkA2gB6ANkAegD2ANkAgACDANkAgwDaAA==" + } + ] +} diff --git a/src/components/coin/custom-geometries/bahamas-cents-10.tsx b/src/components/coin/custom/bahamas-cents-10.tsx similarity index 100% rename from src/components/coin/custom-geometries/bahamas-cents-10.tsx rename to src/components/coin/custom/bahamas-cents-10.tsx diff --git a/src/components/coin/custom-geometries/bahamas-cents-15.tsx b/src/components/coin/custom/bahamas-cents-15.tsx similarity index 100% rename from src/components/coin/custom-geometries/bahamas-cents-15.tsx rename to src/components/coin/custom/bahamas-cents-15.tsx diff --git a/src/components/coin/custom-geometries/euro-cents-20.tsx b/src/components/coin/custom/euro-cents-20.tsx similarity index 100% rename from src/components/coin/custom-geometries/euro-cents-20.tsx rename to src/components/coin/custom/euro-cents-20.tsx diff --git a/src/components/coin/custom/tostao-furado.tsx b/src/components/coin/custom/tostao-furado.tsx new file mode 100644 index 0000000..e3f9aa2 --- /dev/null +++ b/src/components/coin/custom/tostao-furado.tsx @@ -0,0 +1,17 @@ +import { useGLTF, useTexture } from "@react-three/drei"; +import { CoinProps } from "@/types/coin"; + +export function TostaoFurado(coin: CoinProps) { + // @ts-expect-error property `nodes` actually exists + const { nodes } = useGLTF("/models/tostao-furado.gltf"); + const texture = useTexture("/api/merge-textures/" + coin.id); + + return ( + <> + + + + ); +} + +useGLTF.preload("/models/tostao-furado.gltf"); diff --git a/src/components/coin/index.tsx b/src/components/coin/index.tsx index ba2e017..d770ea4 100644 --- a/src/components/coin/index.tsx +++ b/src/components/coin/index.tsx @@ -2,9 +2,10 @@ import * as THREE from "three"; import { useLoader } from "@react-three/fiber"; import { CoinProps } from "@/types/coin"; import { useEffect, useMemo } from "react"; -import { EuroCents20 } from "./custom-geometries/euro-cents-20"; -import { BahamasCents15 } from "./custom-geometries/bahamas-cents-15"; -import { BahamasCents10 } from "./custom-geometries/bahamas-cents-10"; +import { EuroCents20 } from "./custom/euro-cents-20"; +import { BahamasCents15 } from "./custom/bahamas-cents-15"; +import { BahamasCents10 } from "./custom/bahamas-cents-10"; +import { TostaoFurado } from "./custom/tostao-furado"; const SafeEdgeMaterial = ({ edge }: Pick) => { const edgeTexture: THREE.Texture = useLoader( @@ -94,6 +95,14 @@ export const CoinInstance = (coin: CoinProps) => { return ; } + if ( + coin.value?.numeric_value === 25 && + coin.value?.currency?.name === "Peseta" && + coin.min_year >= 1990 + ) { + return ; + } + if ( coin.value?.currency?.name === "Dollar" && coin.issuer?.code === "bahamas" diff --git a/src/components/pile/coin-instances.tsx b/src/components/pile/coin-instances.tsx index cb4c154..121dad7 100644 --- a/src/components/pile/coin-instances.tsx +++ b/src/components/pile/coin-instances.tsx @@ -38,7 +38,12 @@ export const CoinInstances = (coinProps: CoinProps) => { }, [at, count, size, thickness]); return ( - + ); diff --git a/src/components/pile/index.tsx b/src/components/pile/index.tsx index 0fe3374..1b0580c 100644 --- a/src/components/pile/index.tsx +++ b/src/components/pile/index.tsx @@ -1,4 +1,4 @@ -import { Canvas, PointLightProps } from "@react-three/fiber"; +import { Canvas, SpotLightProps } from "@react-three/fiber"; import { OrbitControls } from "@react-three/drei"; import { useRef } from "react"; import { CoinInstances } from "./coin-instances"; @@ -6,6 +6,7 @@ import { CoinProps } from "@/types/coin"; import { PlaneProps, Physics, usePlane } from "@react-three/cannon"; import { Mesh } from "three"; import styles from "./index.module.css"; +import { StageLightModel } from "./stage-light-model"; type Props = { coins: CoinProps[]; @@ -13,33 +14,28 @@ type Props = { const Plane = (props: PlaneProps) => { const [ref] = usePlane(() => ({ ...props }), useRef(null)); + return ( - - - + + + ); }; -const Lightbulb = (props: PointLightProps) => ( +const StageLight = (props: SpotLightProps) => ( <> - - - - - + + ); export const Pile = ({ coins }: Props) => ( - - - - - - - - + + + + + {coins.map((coinProps) => ( @@ -47,6 +43,10 @@ export const Pile = ({ coins }: Props) => ( ))} - + ); diff --git a/src/components/pile/stage-light-model.tsx b/src/components/pile/stage-light-model.tsx new file mode 100644 index 0000000..5d5893e --- /dev/null +++ b/src/components/pile/stage-light-model.tsx @@ -0,0 +1,36 @@ +import { GroupProps } from "@react-three/fiber"; +import { useGLTF } from "@react-three/drei"; +import { useLayoutEffect, useRef } from "react"; +import { Group } from "three"; + +export function StageLightModel(props: GroupProps) { + // @ts-expect-error properties `nodes` and `materials` actually exist + const { nodes, materials } = useGLTF("/models/stage-light.gltf"); + const ref = useRef(null!); + + useLayoutEffect(() => { + ref.current.lookAt(0, 0, 0); + ref.current.rotateY(-Math.PI / 2); + }, []); + + return ( + + + + + ); +} + +useGLTF.preload("/models/stage-light.gltf");