Timer overhaul: update tests

This commit is contained in:
John McCardle 2026-01-03 22:44:53 -05:00
commit cec76b63dc
78 changed files with 521 additions and 495 deletions

View file

@ -135,7 +135,7 @@ class GeometryDemoRunner:
self.current_index = 0
self.render_wait = 0
def screenshot_cycle(runtime):
def screenshot_cycle(timer, runtime):
if self.render_wait == 0:
if self.current_index >= len(self.screens):
print("Done!")
@ -162,7 +162,7 @@ class GeometryDemoRunner:
print("Done!")
sys.exit(0)
mcrfpy.setTimer("screenshot", screenshot_cycle, 100)
self.screenshot_timer = mcrfpy.Timer("screenshot", screenshot_cycle, 100)
def run_interactive(self):
"""Run in interactive mode with menu."""

View file

@ -46,17 +46,19 @@ class GeometryDemoScreen:
def cleanup(self):
"""Clean up timers when leaving screen."""
for timer_name in self.timers:
for timer in self.timers:
try:
mcrfpy.delTimer(timer_name)
timer.stop()
except:
pass
def restart_timers(self):
"""Re-register timers after cleanup."""
self.timers = [] # Clear old timer references
for name, callback, interval in self._timer_configs:
try:
mcrfpy.setTimer(name, callback, interval)
timer = mcrfpy.Timer(name, callback, interval)
self.timers.append(timer)
except Exception as e:
print(f"Timer restart failed: {e}")
@ -111,6 +113,6 @@ class GeometryDemoScreen:
if callback is None:
print(f"Warning: Timer '{name}' callback is None, skipping")
return
mcrfpy.setTimer(name, callback, interval)
self.timers.append(name)
timer = mcrfpy.Timer(name, callback, interval)
self.timers.append(timer)
self._timer_configs.append((name, callback, interval))

View file

@ -269,7 +269,7 @@ class PathfindingAnimatedDemo(GeometryDemoScreen):
self.dist_label.fill_color = mcrfpy.Color(150, 150, 150)
self.ui.append(self.dist_label)
def _tick(self, runtime):
def _tick(self, timer, runtime):
"""Advance one turn."""
self.current_time += 1
self.time_label.text = f"Turn: {self.current_time}"

View file

@ -255,7 +255,7 @@ class SolarSystemDemo(GeometryDemoScreen):
self.ui.append(moon_path)
self.orbit_rings[moon.name + "_path"] = moon_path
def _tick(self, runtime):
def _tick(self, timer, runtime):
"""Advance time by one turn and update planet positions."""
self.current_time += 1