diff --git a/packages/client/public/audio/edu.ogg b/packages/client/public/audio/eduardo.ogg similarity index 100% rename from packages/client/public/audio/edu.ogg rename to packages/client/public/audio/eduardo.ogg diff --git a/packages/client/public/audio/julieta.ogg b/packages/client/public/audio/julieta.ogg new file mode 100644 index 0000000..3a9f9b2 --- /dev/null +++ b/packages/client/public/audio/julieta.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57e453d5d63c691a1076d54563db9442421abe244de41512d9dd759fa2c81bbd +size 2086475 diff --git a/packages/client/public/model/obras/juan_cruz.glb b/packages/client/public/model/obras/juan_cruz.glb index bac0483..4d93990 100644 --- a/packages/client/public/model/obras/juan_cruz.glb +++ b/packages/client/public/model/obras/juan_cruz.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8cabbfa4eb898ff13ac1f97a9974dd1194fae929aace55d8622b57216addc4eb +oid sha256:d09db41157dcc876c4a0e071491528ff49d041653ee628a256f3603c74ec3a95 size 58828 diff --git a/packages/client/public/model/obras/julieta.glb b/packages/client/public/model/obras/julieta.glb index 7686917..91c132d 100644 --- a/packages/client/public/model/obras/julieta.glb +++ b/packages/client/public/model/obras/julieta.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c4374dac2ed960485bbdb9b35c963ec53ab75c3037ac110211854bfa6aede06 -size 1363172 +oid sha256:fc071fda863b5ba89da1c2106764add05ad289bb8e29fd20fc6a917d9443a8f7 +size 292312 diff --git a/packages/client/public/model/obras/proyector.glb b/packages/client/public/model/obras/proyector.glb index e5cd77e..83c3f25 100644 --- a/packages/client/public/model/obras/proyector.glb +++ b/packages/client/public/model/obras/proyector.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23aef1c280b3c385d3f22ee9d5b19dcaa85ea8d94d4c91fb0cb88d90328f0838 +oid sha256:c91f478ef81995e2664699a620cd31554c468b8524030cbb0d770956f68b7a1b size 7116 diff --git a/packages/client/public/model/obras/proyector_wide.glb b/packages/client/public/model/obras/proyector_wide.glb index 8ae12e1..b1c9d08 100644 --- a/packages/client/public/model/obras/proyector_wide.glb +++ b/packages/client/public/model/obras/proyector_wide.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c4c809d011db55de058bf7d96624ce485ace4224a32a944fde455935f87a7f5 +oid sha256:1205eaa24cac88fabeff18db45f0bfc508ef2f543aad5acbe8a503018747056f size 7124 diff --git a/packages/client/src/3d/ArtworkCollection.tsx b/packages/client/src/3d/ArtworkCollection.tsx index 4c3dbd3..98312be 100644 --- a/packages/client/src/3d/ArtworkCollection.tsx +++ b/packages/client/src/3d/ArtworkCollection.tsx @@ -12,17 +12,22 @@ import Gaston from './models/obras/Gaston' import Daniela from './models/obras/Daniela' import Pedro from './models/obras/Pedro' import DiegoGuido from './models/obras/DiegoGuido' +import JuanCruz from './models/obras/JuanCruz' +import Cordoba from './models/obras/Cordoba' +import Camila from './models/obras/Camila' +import Novello from './models/obras/Novello' +import Eduardo from './models/obras/Eduardo' const models: (JSX.Element | null)[] = [ , // , - null, // Juan cruz - null, // Lucia cordoba - null, // Camila + , // Juan cruz + , // Lucia cordoba + , // Camila , - null, // Lucia Novello + , // Lucia Novello , , - null, // Edu + , // Edu , , , diff --git a/packages/client/src/3d/models/obras/Camila.tsx b/packages/client/src/3d/models/obras/Camila.tsx new file mode 100644 index 0000000..194f2e2 --- /dev/null +++ b/packages/client/src/3d/models/obras/Camila.tsx @@ -0,0 +1,34 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + Plane: THREE.Mesh + } + materials: { + cami: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/camila.glb') as GLTFResult + return ( + + + + ) +} + +useGLTF.preload('/model/obras/camila.glb') diff --git a/packages/client/src/3d/models/obras/Carolina.tsx b/packages/client/src/3d/models/obras/Carolina.tsx index 07dad12..e7329a4 100644 --- a/packages/client/src/3d/models/obras/Carolina.tsx +++ b/packages/client/src/3d/models/obras/Carolina.tsx @@ -5,6 +5,7 @@ Auto-generated by: https://github.com/pmndrs/gltfjsx import * as THREE from 'three' import React, { useRef } from 'react' import { useGLTF } from '@react-three/drei/useGLTF' +import { Text } from '@react-three/drei' import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' @@ -19,11 +20,63 @@ type GLTFResult = GLTF & { } } +const text = [ + `Porque nada nos llevamos y sólo una cosa dejamos, lo mucho que hemos amado. Por eso +a pesar de la ausencia tu amor me sigue abrazando y yo te sigo amando como si mis ojos +te vieran`, + `Cómo van las cosas por allá? acá está todo muy raro, hace mucho que estamos +encerrados, vos te estarías volviendo loca. Se que aunque no estas acá conmigo +físicamente, estas. Te siento y te amo. Sé que estás acá.`, + `Mamá, te extraño mucho, te sueño. Me gustaría que estés acá, pero entiendo que tu cuerpo +ya no podía más. Sé que estarías contenta de saber qué armamos un estudio en casa y +siempre tiene las flores que te gustan. Espero que te hayas encontrado con papá y estés +feliz.`, +] + export default function Model(props: JSX.IntrinsicElements['group']) { const group = useRef() const { nodes, materials } = useGLTF('/model/obras/carolina.glb') as GLTFResult return ( + + + {text[0]} + + + + + {text[1]} + + + + + {text[2]} + + () + const { nodes, materials } = useGLTF('/model/obras/cordoba.glb') as GLTFResult + return ( + + + + ) +} + +useGLTF.preload('/model/obras/cordoba.glb') diff --git a/packages/client/src/3d/models/obras/Eduardo.tsx b/packages/client/src/3d/models/obras/Eduardo.tsx new file mode 100644 index 0000000..aa3a463 --- /dev/null +++ b/packages/client/src/3d/models/obras/Eduardo.tsx @@ -0,0 +1,32 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' +import ObraAudio from '../../ObraAudio' + +type GLTFResult = GLTF & { + nodes: { + Sphere: THREE.Mesh + } + materials: { + Material: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/eduardo.glb') as GLTFResult + return ( + + + + + ) +} + +useGLTF.preload('/model/obras/eduardo.glb') diff --git a/packages/client/src/3d/models/obras/JuanCruz.tsx b/packages/client/src/3d/models/obras/JuanCruz.tsx new file mode 100644 index 0000000..4ff3e10 --- /dev/null +++ b/packages/client/src/3d/models/obras/JuanCruz.tsx @@ -0,0 +1,30 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + museum_building014: THREE.Mesh + } + materials: { + lhli: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/juan_cruz.glb') as GLTFResult + return ( + + + + ) +} + +useGLTF.preload('/model/obras/juan_cruz.glb') diff --git a/packages/client/src/3d/models/obras/Julieta.tsx b/packages/client/src/3d/models/obras/Julieta.tsx index 4f1fd03..c37fdac 100644 --- a/packages/client/src/3d/models/obras/Julieta.tsx +++ b/packages/client/src/3d/models/obras/Julieta.tsx @@ -7,6 +7,7 @@ import React, { useRef } from 'react' import { useGLTF } from '@react-three/drei/useGLTF' import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' +import ObraAudio from '../../ObraAudio' type GLTFResult = GLTF & { nodes: { @@ -28,6 +29,7 @@ export default function Model(props: JSX.IntrinsicElements['group']) { const { nodes, materials } = useGLTF('/model/obras/julieta.glb') as GLTFResult return ( + () + const { nodes, materials } = useGLTF('/model/obras/novello.glb') as GLTFResult + return ( + + + + {text[0]} + + + + + {text[1]} + + + + + {text[2]} + + + + + ) +} + +useGLTF.preload('/model/obras/novello.glb') diff --git a/packages/client/src/3d/models/obras/Proyector_wide.tsx b/packages/client/src/3d/models/obras/Proyector_wide.tsx deleted file mode 100644 index a2b8531..0000000 --- a/packages/client/src/3d/models/obras/Proyector_wide.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/* -Auto-generated by: https://github.com/pmndrs/gltfjsx -*/ - -import * as THREE from 'three' -import React, { useRef } from 'react' -import { useGLTF } from '@react-three/drei/useGLTF' - -import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' - -type GLTFResult = GLTF & { - nodes: { - Cube001: THREE.Mesh - ['Cube.001_1']: THREE.Mesh - ['Cube.001_2']: THREE.Mesh - } - materials: { - plastic: THREE.MeshStandardMaterial - projection_light: THREE.MeshStandardMaterial - projection: THREE.MeshStandardMaterial - } -} - -export default function Model(props: JSX.IntrinsicElements['group']) { - const group = useRef() - const { nodes, materials } = useGLTF('/proyector_wide.glb') as GLTFResult - return ( - - - - - - ) -} - -useGLTF.preload('/proyector_wide.glb') diff --git a/packages/client/src/components/Museo.tsx b/packages/client/src/components/Museo.tsx index b3cc2d6..16c8462 100644 --- a/packages/client/src/components/Museo.tsx +++ b/packages/client/src/components/Museo.tsx @@ -38,9 +38,18 @@ const Museo: React.FC = () => { return } const socket = io() + + const closeSocket = () => { + setError('SOCKET') + socket.close() + setSocket(null) + } + setSocket(socket) - socket.on('disconnect', () => setError('SOCKET')) + socket.on('disconnect', () => { + closeSocket() + }) socket.on('broadcast-transforms', (payload: UserTransforms) => { setUserTransforms(payload) }) @@ -50,9 +59,13 @@ const Museo: React.FC = () => { } }) + const sendVisitTimeout = setTimeout(() => { + socket.emit('register-visit') + }, 15000) // wait 15 to send the event + return () => { - socket.close() - setSocket(null) + closeSocket() + clearTimeout(sendVisitTimeout) } }, [response, isLoading]) diff --git a/packages/server/src/index.js b/packages/server/src/index.js index 38ea813..7bc7370 100644 --- a/packages/server/src/index.js +++ b/packages/server/src/index.js @@ -151,6 +151,10 @@ io.on('connection', async (socket) => { await asyncHDEL('socket', String(socket.request.user._id)) }) + socket.on('register-visit', () => { + console.log(`new visit from: ${socket.request.user.name}`) + }) + const user = await UserModel.findById(socket.request.user._id) if (user) { socket.emit('initial-transform', user.lastLocation)