ecs #58
36
src/plugins/click.py
Normal file
36
src/plugins/click.py
Normal 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],
|
||||||
|
[],
|
||||||
|
[],
|
||||||
|
)
|
|
@ -5,6 +5,7 @@ Plugin qui rassemple tous les plugins globaux.
|
||||||
from plugins import (
|
from plugins import (
|
||||||
animation,
|
animation,
|
||||||
assets,
|
assets,
|
||||||
|
click,
|
||||||
coroutine,
|
coroutine,
|
||||||
display,
|
display,
|
||||||
hover,
|
hover,
|
||||||
|
@ -22,6 +23,7 @@ PLUGIN = (
|
||||||
+ assets.PLUGIN
|
+ assets.PLUGIN
|
||||||
+ inputs.PLUGIN
|
+ inputs.PLUGIN
|
||||||
+ hover.PLUGIN
|
+ hover.PLUGIN
|
||||||
|
+ click.PLUGIN
|
||||||
+ coroutine.PLUGIN
|
+ coroutine.PLUGIN
|
||||||
+ sound.PLUGIN
|
+ sound.PLUGIN
|
||||||
+ text.PLUGIN
|
+ text.PLUGIN
|
||||||
|
|
Loading…
Reference in a new issue