This commit is contained in:
2026-06-04 03:23:25 +01:00
parent e065d24f5b
commit be9fd42231

View File

@ -84,7 +84,7 @@ class Camera:
self.oscClient = oscClient self.oscClient = oscClient
self.additionalPictures = 0 # How many additional pictures to take self.additionalPictures = 0 # How many additional pictures to take
self.addPicsMinGap = 0 # How long to wait between multi-shot batches self.addPicsMinGap = 0 # How long to wait between multi-shot batches
self._cameraEnabled = False self._lastMode = 0
self._newPictureObserver = createNewPictureObserver(self._newPicture) self._newPictureObserver = createNewPictureObserver(self._newPicture)
self._multiPictureOngoing = False self._multiPictureOngoing = False
self._onEnabledCallback = onCameraEnabled self._onEnabledCallback = onCameraEnabled
@ -103,6 +103,10 @@ class Camera:
def _newPicture(self, _, timeGap: float): def _newPicture(self, _, timeGap: float):
if self._multiPictureOngoing: if self._multiPictureOngoing:
return return
# Don't perform multishot in print mode
if self._lastMode == 5:
return
if timeGap < self.addPicsMinGap: if timeGap < self.addPicsMinGap:
return return
@ -119,12 +123,15 @@ class Camera:
time.sleep(0.5) time.sleep(0.5)
self._multiPictureOngoing = False self._multiPictureOngoing = False
def _onModeChange(self, _: str, mode: int): def _onModeChange(self, _: str, newMode: int):
""" """
Gets called every time the camera mode changes in VRChat. Gets called every time the camera mode changes in VRChat.
""" """
self.cameraEnabled = mode != 0 enabledFlag = self._lastMode = 0 and newMode != 0
self._lastMode = newMode
if enabledFlag:
self._onCameraEnabled()
def _onCameraEnabled(self): def _onCameraEnabled(self):
if self._onEnabledCallback is not None: if self._onEnabledCallback is not None:
@ -136,13 +143,4 @@ class Camera:
Returns True if the camera is enabled Returns True if the camera is enabled
""" """
return self._cameraEnabled return self._lastMode != 0
@cameraEnabled.setter
def cameraEnabled(self, value: bool):
if value == self._cameraEnabled:
return
self._cameraEnabled = value
if value:
self._onCameraEnabled()