Fixed #1
This commit is contained in:
24
camera.py
24
camera.py
@ -84,7 +84,7 @@ class Camera:
|
||||
self.oscClient = oscClient
|
||||
self.additionalPictures = 0 # How many additional pictures to take
|
||||
self.addPicsMinGap = 0 # How long to wait between multi-shot batches
|
||||
self._cameraEnabled = False
|
||||
self._lastMode = 0
|
||||
self._newPictureObserver = createNewPictureObserver(self._newPicture)
|
||||
self._multiPictureOngoing = False
|
||||
self._onEnabledCallback = onCameraEnabled
|
||||
@ -103,6 +103,10 @@ class Camera:
|
||||
def _newPicture(self, _, timeGap: float):
|
||||
if self._multiPictureOngoing:
|
||||
return
|
||||
|
||||
# Don't perform multishot in print mode
|
||||
if self._lastMode == 5:
|
||||
return
|
||||
|
||||
if timeGap < self.addPicsMinGap:
|
||||
return
|
||||
@ -119,12 +123,15 @@ class Camera:
|
||||
time.sleep(0.5)
|
||||
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.
|
||||
"""
|
||||
|
||||
self.cameraEnabled = mode != 0
|
||||
enabledFlag = self._lastMode = 0 and newMode != 0
|
||||
self._lastMode = newMode
|
||||
if enabledFlag:
|
||||
self._onCameraEnabled()
|
||||
|
||||
def _onCameraEnabled(self):
|
||||
if self._onEnabledCallback is not None:
|
||||
@ -136,13 +143,4 @@ class Camera:
|
||||
Returns True if the camera is enabled
|
||||
"""
|
||||
|
||||
return self._cameraEnabled
|
||||
|
||||
@cameraEnabled.setter
|
||||
def cameraEnabled(self, value: bool):
|
||||
if value == self._cameraEnabled:
|
||||
return
|
||||
|
||||
self._cameraEnabled = value
|
||||
if value:
|
||||
self._onCameraEnabled()
|
||||
return self._lastMode != 0
|
||||
|
||||
Reference in New Issue
Block a user