gtn/engine/plugins/timing.py

41 lines
1,000 B
Python

"""
Définit un plugin qui permet de connaitre le temps depuis de démarage du jeu 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 de démarage du jeu 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.
"""
game.add_pre_startup_tasks(self._initialize_time)
game.add_pre_update_tasks(self._update_time)
class Time(float):
"""
Ressource qui represente le temps depuis le démarage du jeu.
"""
class Delta(float):
"""
Ressource qui represente le temps depuis la dernière mise a jour.
"""