ecs #58

Merged
raphael merged 70 commits from ecs into main 2023-11-03 15:29:36 +00:00
2 changed files with 38 additions and 0 deletions
Showing only changes of commit ac64907a25 - Show all commits

36
src/plugins/click.py Normal file
View file

@ -0,0 +1,36 @@
"""
Un plugin permettant de savoir si l'on a cliqué sur une entité.
"""
from engine import GlobalPlugin
from engine.ecs import World
from plugins.hover import Hovered
from plugins.inputs import Pressed
from plugins.render import Sprite
class Clicked:
"""
Component ajouté a toutes les entitées qui viennent d'être cliqué.
"""
def __update_clicked(world: World):
"""
Met à jour les composants `Clicked`.
"""
mouse_click = "button_1" in world[Pressed]
sprite_entities = world.query(Sprite)
for entity in sprite_entities:
if Hovered in entity and mouse_click:
entity[Clicked] = Clicked()
else:
del entity[Clicked]
PLUGIN = GlobalPlugin(
[],
[__update_clicked],
[],
[],
)

View file

@ -5,6 +5,7 @@ Plugin qui rassemple tous les plugins globaux.
from plugins import (
animation,
assets,
click,
coroutine,
display,
hover,
@ -22,6 +23,7 @@ PLUGIN = (
+ assets.PLUGIN
+ inputs.PLUGIN
+ hover.PLUGIN
+ click.PLUGIN
+ coroutine.PLUGIN
+ sound.PLUGIN
+ text.PLUGIN