diff options
Diffstat (limited to 'src/sliceitoff/field')
-rw-r--r-- | src/sliceitoff/field/field.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/sliceitoff/field/field.py b/src/sliceitoff/field/field.py index c3d1d04..c7ebf81 100644 --- a/src/sliceitoff/field/field.py +++ b/src/sliceitoff/field/field.py @@ -23,16 +23,34 @@ class Field(): y * self.scaling.scale + self.scaling.top, w * self.scaling.scale, h * self.scaling.scale) + + def coordinates_inside_area(self, area, x, y): + if x < area[0]: + return False + if y < area[1]: + return False + if x >= area[0]+area[2]: + return False + if y >= area[1]+area[3]: + return False + return True + + def slice(self, x: int, y: int, direction: bool, thickness: int): + """ Slice one area into two areas """ + # Find the overlapping area + for area in self.areas: + if self.coordinates_inside_area(area, x, y): + break + else: + return False + self.areas.remove(area) + return False def __update_sprites(self): self.sprites.empty() for area in self.areas: self.sprites.add(FieldSprite(self.area_to_rect(area))) - def add_score(self, score_to_add): - self.updated = True - self.score += score_to_add - def get_sprites(self): if self.updated: self.__update_sprites() |