gtn/main.py

91 lines
2.1 KiB
Python
Raw Normal View History

2023-10-22 20:19:43 +00:00
from ecs import World
2023-10-23 10:14:28 +00:00
# Création de composants pouvant être ajouté a des entitées
2023-10-23 10:14:28 +00:00
class Name(str):
pass
class Age(int):
pass
# Création d'un monde
world = World()
2023-10-22 20:19:43 +00:00
# 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))
2023-10-22 20:19:43 +00:00
# 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])
2023-10-22 20:19:43 +00:00
# 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])
2023-10-22 20:19:43 +00:00
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()
2023-10-23 10:14:28 +00:00
2023-10-22 20:49:58 +00:00
# Création d'une ressource pouvant être ajoutée a un monde
2023-10-23 10:14:28 +00:00
class Gravity(float):
pass
2023-10-22 20:49:58 +00:00
# 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)