mirror of
https://github.com/TheFunny/ArisuAutoSweeper
synced 2026-10-11 04:42:10 +00:00
feat: add interval timer management methods for buttons
This commit is contained in:
+22
-14
@@ -221,6 +221,25 @@ class ModuleBase:
|
|||||||
button_area = area_offset((-encourage, -encourage, encourage, encourage), offset=point)
|
button_area = area_offset((-encourage, -encourage, encourage, encourage), offset=point)
|
||||||
return ClickButton(area=button_area, name=name)
|
return ClickButton(area=button_area, name=name)
|
||||||
|
|
||||||
|
def get_interval_timer(self, button, interval=5) -> Timer:
|
||||||
|
if hasattr(button, 'name'):
|
||||||
|
name = button.name
|
||||||
|
elif callable(button):
|
||||||
|
name = button.__name__
|
||||||
|
else:
|
||||||
|
name = str(button)
|
||||||
|
|
||||||
|
try:
|
||||||
|
timer = self.interval_timer[name]
|
||||||
|
if timer.limit != interval:
|
||||||
|
timer = Timer(interval)
|
||||||
|
self.interval_timer[name] = timer
|
||||||
|
return timer
|
||||||
|
except KeyError:
|
||||||
|
timer = Timer(interval)
|
||||||
|
self.interval_timer[name] = timer
|
||||||
|
return timer
|
||||||
|
|
||||||
def interval_reset(self, button, interval=5):
|
def interval_reset(self, button, interval=5):
|
||||||
if isinstance(button, (list, tuple)):
|
if isinstance(button, (list, tuple)):
|
||||||
for b in button:
|
for b in button:
|
||||||
@@ -228,10 +247,7 @@ class ModuleBase:
|
|||||||
return
|
return
|
||||||
|
|
||||||
if button is not None:
|
if button is not None:
|
||||||
if button.name in self.interval_timer:
|
self.get_interval_timer(button, interval=interval).reset()
|
||||||
self.interval_timer[button.name].reset()
|
|
||||||
else:
|
|
||||||
self.interval_timer[button.name] = Timer(interval).reset()
|
|
||||||
|
|
||||||
def interval_clear(self, button, interval=5):
|
def interval_clear(self, button, interval=5):
|
||||||
if isinstance(button, (list, tuple)):
|
if isinstance(button, (list, tuple)):
|
||||||
@@ -240,19 +256,11 @@ class ModuleBase:
|
|||||||
return
|
return
|
||||||
|
|
||||||
if button is not None:
|
if button is not None:
|
||||||
if button.name in self.interval_timer:
|
self.get_interval_timer(button, interval=interval).clear()
|
||||||
self.interval_timer[button.name].clear()
|
|
||||||
else:
|
|
||||||
self.interval_timer[button.name] = Timer(interval).clear()
|
|
||||||
|
|
||||||
def interval_is_reached(self, button, interval=5):
|
def interval_is_reached(self, button, interval=5):
|
||||||
if button.name in self.interval_timer:
|
return self.get_interval_timer(button, interval=interval).reached()
|
||||||
if self.interval_timer[button.name].limit != interval:
|
|
||||||
self.interval_timer[button.name] = Timer(interval)
|
|
||||||
else:
|
|
||||||
self.interval_timer[button.name] = Timer(interval)
|
|
||||||
|
|
||||||
return self.interval_timer[button.name].reached()
|
|
||||||
|
|
||||||
_image_file = ''
|
_image_file = ''
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user