from ecs import World # Création de composants pouvant être ajouté a des entitées class Name(str): pass class Age(int): pass # Création d'un monde world = World() # Création de plusieurs entités david = world.create_entity(Name("David"), Age(25)) fred = world.create_entity(Name("Fred"), Age(30)) paul_sans_age = world.create_entity(Name("Paul")) age_tout_cour = world.create_entity(Age(14)) # On applique les moddifications world.apply() print("Récupération de toutes les entitées qui ont un nom") for entity in world.query(Name): print(entity[Name]) print("Récupération de toutes les entitées qui ont un age") for entity in world.query(Age): print(entity[Age]) # On change l'age de Fred fred.set(Age(45)) # On applique les moddifications world.apply() print("Récupération de toutes les entités qui ont un nom et un age") for entity in world.query(Name, Age): print(entity[Name], entity[Age]) print("Récupération de toutes les entitées qui ont un nom mais pas d'age") for entity in world.query(Name, without=(Age,)): print(entity[Name]) print("Récupération de toutes les entités qui ont un age mais pas de nom") for entity in world.query(Age, without=(Name,)): print(entity[Age]) print("Récupération de toutes les entités") for entity in world.query(): if Name in entity: print(entity[Name], end=" ") if Age in entity: print(entity[Age], end=" ") print() # Création d'une ressource pouvant être ajoutée a un monde class Gravity(float): pass # On peut aussi ajouter des ressources globales world.set(Gravity(9.81)) print("On vérifie que la ressource Gravity existe") print(Gravity in world) # On applique les moddifications world.apply() print("On vérifie que la ressource Gravity existe après l'application") print(Gravity in world) print("Récupération de la ressource Gravity") print(world[Gravity]) # On supprime la ressource Gravity world.remove(Gravity) print("On vérifie que la ressource Gravity n'existe plus") print(Gravity in world) # On applique les moddifications world.apply() print("On vérifie que la ressource Gravity n'existe plus") print(Gravity in world)