gtn/engine/plugins/timing.py
2023-10-24 14:50:16 +02:00

44 lines
1 KiB
Python

"""
Définit un plugin qui permet de connaitre le temps depuis 1900 et le temps depuis la dernière mise a jour.
"""
from engine import *
from time import time
class TimePlugin(Plugin):
"""
Plugin qui permet de connaitre le temps depuis 1900 et le temps depuis la dernière mise a jour.
"""
@staticmethod
def _initialize_time(world: World) -> None:
world.set(Time(time()))
@staticmethod
def _update_time(world: World) -> None:
now = time()
world.set(Delta(now - world[Time]), Time(now))
def apply(self, game: Game) -> None:
"""
Applique le plugin a un jeu.
Paramètres:
game: Le jeu auquel appliquer le plugin.
"""
game.add_startup_tasks(self._initialize_time)
game.add_pre_update_tasks(self._update_time)
class Time(float):
"""
Ressource qui represente le temps depuis 1900.
"""
class Delta(float):
"""
Ressource qui represente le temps depuis la dernière mise a jour.
"""