/*
Auto-generated by: https://github.com/pmndrs/gltfjsx
*/

import * as THREE from 'three'
import React, { useRef } from 'react'
import { useGLTF } from '@react-three/drei'
import { GLTF } from 'three-stdlib'

type GLTFResult = GLTF & {
  nodes: {
    Electronics_Box: THREE.Mesh
    Electronics_Box_Gasket: THREE.Mesh
    Electronics_Box_Lid: THREE.Mesh
  }
  materials: {
    ['0.901961_0.901961_0.901961_0.000000_0.000000']: THREE.MeshStandardMaterial
    ['0.301961_0.301961_0.301961_0.000000_0.000000']: THREE.MeshStandardMaterial
    ['0.564706_0.811765_0.945098_0.000000_0.623529']: THREE.MeshStandardMaterial
  }
}

// @ts-expect-error
export function Model(props: JSX.IntrinsicElements['group']) {
  // @ts-expect-error
  const { nodes, materials } = useGLTF('/assets/farmbot/3D/models/box.glb') as GLTFResult
  return (
    <group {...props} dispose={null}>
      <group name="Root">
        <mesh
          name="Electronics_Box"
          castShadow
          receiveShadow
          geometry={nodes.Electronics_Box.geometry}
          material={materials['0.901961_0.901961_0.901961_0.000000_0.000000']}
        />
        <mesh
          name="Electronics_Box_Gasket"
          castShadow
          receiveShadow
          geometry={nodes.Electronics_Box_Gasket.geometry}
          material={materials['0.301961_0.301961_0.301961_0.000000_0.000000']}
        />
        <mesh
          name="Electronics_Box_Lid"
          castShadow
          receiveShadow
          geometry={nodes.Electronics_Box_Lid.geometry}
          material={materials['0.564706_0.811765_0.945098_0.000000_0.623529']}
        />
      </group>
    </group>
  )
}

useGLTF.preload('/assets/farmbot/3D/models/box.glb')
