This repository has been archived on 2022-12-03. You can view files and clone it, but cannot push or open issues or pull requests.
texty/lib/ascii.py

35 lines
1.3 KiB
Python
Raw Normal View History

2022-01-25 17:16:07 +01:00
from tempfile import TemporaryDirectory
from time import sleep
2022-01-25 17:16:07 +01:00
from zipfile import ZipFile
from os import listdir, system
2022-01-26 16:07:31 +01:00
import yaml
2022-01-26 09:23:30 +01:00
class AsciiAnimation:
def __init__(self) -> None:
self.frames = []
self.speed = 0.2
2022-01-25 17:16:07 +01:00
2022-01-26 09:23:30 +01:00
def load_ascii(self,name:str):
"""
Loads art from .asc file
2022-01-26 09:23:30 +01:00
"""
with TemporaryDirectory() as tmpdir: # we enter a temporary directory
with ZipFile(f"./assets/{name}.asc","r") as z: # extract the asc file
z.extractall(f"{tmpdir}/ascii/{name}")
for f in listdir(f"{tmpdir}/ascii/{name}"): # read all the files
2022-01-26 16:07:31 +01:00
if f == "config.yml":
with open(f"{tmpdir}/ascii/{name}/{f}",encoding="utf-8") as c:
data = yaml.load(c,Loader=yaml.SafeLoader)
if(data["speed"] != None):
self.speed = data["speed"]
with open(f"{tmpdir}/ascii/{name}/{f}",encoding="utf-8") as f: # add all frames into list
self.frames.append(f.read())
def play(self):
"""
Plays the animation frame by frame
"""
for frame in self.frames:
system("cls||clear")
print(frame)
sleep(self.speed)