tweak viewer component

This commit is contained in:
Pig Fang 2020-02-07 09:59:49 +08:00
parent 210244f5b4
commit aa1ce17351

View File

@ -7,7 +7,7 @@ import SkinSteve from '../../../misc/textures/steve.png'
interface Props { interface Props {
skin?: string skin?: string
cape?: string cape?: string
model?: 'steve' | 'alex' isAlex?: boolean
showIndicator?: boolean showIndicator?: boolean
initPositionZ?: number initPositionZ?: number
} }
@ -57,8 +57,8 @@ const Viewer: React.FC<Props> = props => {
domElement: container, domElement: container,
width: container.clientWidth, width: container.clientWidth,
height: container.clientHeight, height: container.clientHeight,
skinUrl: props.skin ?? SkinSteve, skinUrl: props.skin || SkinSteve,
capeUrl: props.cape ?? '', capeUrl: props.cape || '',
detectModel: false, detectModel: false,
}) })
viewer.camera.position.z = props.initPositionZ! viewer.camera.position.z = props.initPositionZ!
@ -90,20 +90,26 @@ const Viewer: React.FC<Props> = props => {
} }
}, [reset]) }, [reset])
useEffect(() => {
return () => {
stuffRef.current.firstRun = true
}
}, [])
useEffect(() => { useEffect(() => {
const viewer = viewRef.current const viewer = viewRef.current
viewer.skinUrl = props.skin ?? SkinSteve viewer.skinUrl = props.skin || SkinSteve
}, [props.skin]) }, [props.skin])
useEffect(() => { useEffect(() => {
const viewer = viewRef.current const viewer = viewRef.current
viewer.capeUrl = props.cape ?? '' viewer.capeUrl = props.cape || ''
}, [props.cape]) }, [props.cape])
useEffect(() => { useEffect(() => {
const viewer = viewRef.current const viewer = viewRef.current
viewer.playerObject.skin.slim = props.model === 'alex' viewer.playerObject.skin.slim = !!props.isAlex
}, [props.model]) }, [props.isAlex])
const togglePause = () => { const togglePause = () => {
setPaused(paused => !paused) setPaused(paused => !paused)
@ -176,7 +182,6 @@ const Viewer: React.FC<Props> = props => {
} }
Viewer.defaultProps = { Viewer.defaultProps = {
model: 'steve',
initPositionZ: 70, initPositionZ: 70,
} }