mirror of
https://github.com/TheFunny/ArisuAutoSweeper
synced 2026-10-10 09:12:05 +00:00
feat: add Switch.wait()
This commit is contained in:
+37
-4
@@ -136,14 +136,14 @@ class Switch:
|
|||||||
current = self.get(main=main)
|
current = self.get(main=main)
|
||||||
logger.attr(self.name, current)
|
logger.attr(self.name, current)
|
||||||
|
|
||||||
# Handle additional popups
|
|
||||||
if self.handle_additional(main=main):
|
|
||||||
continue
|
|
||||||
|
|
||||||
# End
|
# End
|
||||||
if current == state:
|
if current == state:
|
||||||
return changed
|
return changed
|
||||||
|
|
||||||
|
# Handle additional popups
|
||||||
|
if self.handle_additional(main=main):
|
||||||
|
continue
|
||||||
|
|
||||||
# Warning
|
# Warning
|
||||||
if current == 'unknown':
|
if current == 'unknown':
|
||||||
if warning_show_timer.reached():
|
if warning_show_timer.reached():
|
||||||
@@ -164,3 +164,36 @@ class Switch:
|
|||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
return changed
|
return changed
|
||||||
|
|
||||||
|
def wait(self, main, skip_first_screenshot=True):
|
||||||
|
"""
|
||||||
|
Wait until any state activated
|
||||||
|
|
||||||
|
Args:
|
||||||
|
main (ModuleBase):
|
||||||
|
skip_first_screenshot:
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: If success
|
||||||
|
"""
|
||||||
|
timeout = Timer(2, count=6).start()
|
||||||
|
while 1:
|
||||||
|
if skip_first_screenshot:
|
||||||
|
skip_first_screenshot = False
|
||||||
|
else:
|
||||||
|
main.device.screenshot()
|
||||||
|
|
||||||
|
# Detect
|
||||||
|
current = self.get(main=main)
|
||||||
|
logger.attr(self.name, current)
|
||||||
|
|
||||||
|
# End
|
||||||
|
if current != 'unknown':
|
||||||
|
return True
|
||||||
|
if timeout.reached():
|
||||||
|
logger.warning(f'{self.name} wait activated timeout')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Handle additional popups
|
||||||
|
if self.handle_additional(main=main):
|
||||||
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user