53 lines
1.4 KiB
Python
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()
|
|
|