gtn/main.py

53 lines
1.4 KiB
Python

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()