Skip to content

Commit c930365

Browse files
committed
fix sometimes inventory player should not be rendered
1 parent 852dd73 commit c930365

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

src/inventoryWindows.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,7 @@ const openWindow = (type: string | undefined, title: string | any = undefined) =
470470
const isRightClick = type === 'rightclick'
471471
const isLeftClick = type === 'leftclick'
472472
if (isLeftClick || isRightClick) {
473+
modelViewerState.model = undefined
473474
inv.canvasManager.children[0].showRecipesOrUsages(isLeftClick, item)
474475
}
475476
} else {
@@ -501,6 +502,7 @@ const openWindow = (type: string | undefined, title: string | any = undefined) =
501502
if (freeSlot === null) return
502503
void bot.creative.setInventorySlot(freeSlot, item)
503504
} else {
505+
modelViewerState.model = undefined
504506
inv.canvasManager.children[0].showRecipesOrUsages(!isRightclick, mapSlots([item], true)[0])
505507
}
506508
}

src/react/OverlayModelViewer.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader'
66
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'
77
import { applySkinToPlayerObject, createPlayerObject, PlayerObjectType } from '../../renderer/viewer/lib/createPlayerObject'
88
import { currentScaling } from '../scaleInterface'
9+
import { activeModalStack } from '../globalState'
910

1011
THREE.ColorManagement.enabled = false
1112

@@ -29,6 +30,7 @@ export const modelViewerState = proxy({
2930
modelCustomization?: { [modelUrl: string]: { color?: string, opacity?: number, metalness?: number, roughness?: number } }
3031
resetRotationOnReleae?: boolean
3132
continiousRender?: boolean
33+
alwaysRender?: boolean
3234
}
3335
})
3436
globalThis.modelViewerState = modelViewerState
@@ -75,6 +77,15 @@ globalThis.getModelViewerValues = () => {
7577
}
7678
}
7779

80+
subscribe(activeModalStack, () => {
81+
if (!modelViewerState.model || !modelViewerState.model?.alwaysRender) {
82+
return
83+
}
84+
if (activeModalStack.length === 0) {
85+
modelViewerState.model = undefined
86+
}
87+
})
88+
7889
export default () => {
7990
const { model } = useSnapshot(modelViewerState)
8091
const containerRef = useRef<HTMLDivElement>(null)

0 commit comments

Comments
 (0)