mirror of
https://github.com/rr-/pq-cli.git
synced 2026-09-29 06:44:00 -06:00
ui: save periodically in every frontend
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import argparse
|
||||
import signal
|
||||
import curses
|
||||
import os
|
||||
import signal
|
||||
import time
|
||||
import typing as T
|
||||
|
||||
@@ -107,7 +107,7 @@ class CursesUserInterface(BaseUserInterface):
|
||||
self.switch_view(view)
|
||||
|
||||
def switch_to_game_view(self, player: Player) -> None:
|
||||
view = GameView(self.screen, player)
|
||||
view = GameView(self.screen, self.roster, player, self.args)
|
||||
view.on_exit += self.switch_to_roster_view
|
||||
self.switch_view(view)
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import argparse
|
||||
import curses
|
||||
import datetime
|
||||
import typing as T
|
||||
|
||||
from pqcli.mechanic import Player, Simulation
|
||||
from pqcli.roster import Roster
|
||||
from pqcli.ui.curses.event_handler import EventHandler
|
||||
|
||||
from ..base_view import BaseView
|
||||
@@ -16,11 +18,20 @@ from .task_progress_window import TaskProgressWindow
|
||||
|
||||
|
||||
class GameView(BaseView):
|
||||
def __init__(self, screen: T.Any, player: Player) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
screen: T.Any,
|
||||
roster: Roster,
|
||||
player: Player,
|
||||
args: argparse.Namespace,
|
||||
) -> None:
|
||||
super().__init__(screen)
|
||||
self.on_exit = EventHandler()
|
||||
|
||||
self._roster = roster
|
||||
self._player = player
|
||||
self._args = args
|
||||
|
||||
self._simulation = Simulation(player)
|
||||
self._last_tick = datetime.datetime.now()
|
||||
|
||||
@@ -141,3 +152,5 @@ class GameView(BaseView):
|
||||
elapsed = datetime.datetime.now() - self._last_tick
|
||||
self._simulation.tick(elapsed.total_seconds() * 1000)
|
||||
self._last_tick = datetime.datetime.now()
|
||||
if self._args.use_saves:
|
||||
self._roster.save_periodically()
|
||||
|
||||
Reference in New Issue
Block a user