summaryrefslogtreecommitdiffstats
path: root/Area.py
blob: 9a83242511c03d6be0eb5109b667102fabb1ac0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from Setup import *

areas = set()
def do_nothing(node): # placeholder func
    pass


class Area:

    def __init__(self, pos,offset, width ,height, target_node_type, func=do_nothing):
        self.position = pg.Vector2(pos)
        self.offset = pg.Vector2(offset)
        self.width = width
        self.height = height
        self.target = target_node_type
        self.func = func
        global areas
        areas.add(self)


    def update(self, delta, pos):
        self.position = pos

    def is_colliding(self,node):
        if isinstance(node, self.target):
            if self.get_collision_rect().colliderect(node.get_collision_rect()):
                return True
        return False

    def set_func(self, func):
        self.func = func

    def signal(self, node):
        self.func(node)

    def get_collision_rect(self):
        return pg.Rect(self.position + self.offset, (self.width, self.height))

    def draw(self, surf):
        pg.draw.rect(surf, (255,0,0),get_display_rect(self.get_collision_rect()))