83 lines
2.1 KiB
Python
83 lines
2.1 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()
|
|
|
|
# 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)
|
|
|