mirror of
https://github.com/ldericher/fftcgtool
synced 2025-01-15 23:03:00 +00:00
52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
from PIL import Image
|
|
|
|
from .grid import Grid
|
|
|
|
# constants
|
|
GRID = Grid((10, 7)) # default in TTsim: 10 columns, 7 rows
|
|
RESOLUTION = Grid((429, 600)) # default in TTsim: 480x670 pixels per card
|
|
DECKS_DIR_NAME = "decks" # name of decks directory
|
|
IMAGES_DIR_NAME = "images" # name of images directory
|
|
CARDDB_FILE_NAME = "carddb.pickle.bz2" # name of card book file
|
|
# card back URL (image by Aurik)
|
|
CARD_BACK_URL = "http://cloud-3.steamusercontent.com/ugc/948455238665576576/85063172B8C340602E8D6C783A457122F53F7843/"
|
|
|
|
|
|
# functions
|
|
def encircle_symbol(symbol: str, negative: bool):
|
|
symbol = symbol[0].upper()
|
|
|
|
base_symbols: tuple[str, str] = "", ""
|
|
if symbol.isalpha():
|
|
if negative:
|
|
base_symbols = "A", "🅐"
|
|
else:
|
|
base_symbols = "A", "Ⓐ"
|
|
elif symbol == "0":
|
|
if negative:
|
|
base_symbols = "0", "🄌"
|
|
else:
|
|
base_symbols = "0", "⓪"
|
|
elif symbol.isnumeric():
|
|
if negative:
|
|
base_symbols = "1", "➊"
|
|
else:
|
|
base_symbols = "1", "①"
|
|
|
|
symbol_num = ord(symbol) - ord(base_symbols[0])
|
|
return chr(ord(base_symbols[1]) + symbol_num)
|
|
|
|
|
|
def chunks(chunk_size: int, whole: list):
|
|
# while there are elements
|
|
while whole:
|
|
# get a chunk
|
|
yield whole[:chunk_size]
|
|
# remove that chunk
|
|
whole = whole[chunk_size:]
|
|
|
|
|
|
def grid_paste(page: Image.Image, index: int, card: Image.Image) -> None:
|
|
w, h = card.size
|
|
position = (index % GRID.x) * w, (index // GRID.x) * h
|
|
page.paste(card, position)
|