1
0
Fork 0
mirror of https://github.com/ldericher/fftcgtool synced 2025-01-15 23:03:00 +00:00
fftcgtool/fftcg/grid.py

36 lines
906 B
Python

from __future__ import annotations
from PIL import Image
_Point = tuple[int, int]
class Grid(tuple[int, int]):
def __mul__(self, other: Grid) -> Grid:
return Grid((self.x * other.x, self.y * other.y))
@property
def x(self):
return self[0]
@property
def y(self):
return self[1]
@property
def capacity(self):
# capacity of grid (reserve last space for card back)
return self.x * self.y - 1
def chunks(self, whole: list) -> list:
# while there are elements
while whole:
# get a chunk
yield whole[:self.capacity]
# remove that chunk
whole = whole[self.capacity:]
def paste(self, page: Image.Image, index: int, card: Image.Image) -> None:
w, h = card.size
position = (index % self.x) * w, (index // self.x) * h
page.paste(card, position)