68 lines
1.3 KiB
Python
68 lines
1.3 KiB
Python
import sys
|
|
import time
|
|
|
|
import questionary
|
|
from questionary import Choice as Choice
|
|
|
|
from untitled import content
|
|
|
|
|
|
def clear():
|
|
print("\033[2J\033[H", end="", flush=True)
|
|
|
|
|
|
def typewriter(
|
|
text,
|
|
letter_speed=0.15,
|
|
erase_multiplier=0.35,
|
|
after_type_delay=1,
|
|
after_finish_delay=1,
|
|
erase=True,
|
|
):
|
|
for char in text:
|
|
time.sleep(letter_speed)
|
|
print(char, end="", flush=True)
|
|
time.sleep(after_type_delay)
|
|
if erase:
|
|
for _ in range(len(text)):
|
|
print("\b \b", end="", flush=True)
|
|
time.sleep(letter_speed * erase_multiplier)
|
|
else:
|
|
clear()
|
|
time.sleep(after_finish_delay)
|
|
|
|
|
|
def splash():
|
|
typewriter(content.STUDIO_NAME)
|
|
typewriter(content.GAME_NAME, erase=False)
|
|
|
|
|
|
def select(title, options):
|
|
return questionary.select(title, options).ask()
|
|
|
|
|
|
def text(title, default):
|
|
return questionary.text(title, default=default).ask()
|
|
|
|
|
|
def confirm(title):
|
|
return questionary.confirm(title).ask()
|
|
|
|
|
|
def getch():
|
|
if sys.platform == "win32":
|
|
import msvcrt
|
|
|
|
return msvcrt.getwch()
|
|
else:
|
|
import termios
|
|
import tty
|
|
|
|
fd = sys.stdin.fileno()
|
|
old = termios.tcgetattr(fd)
|
|
try:
|
|
tty.setcbreak(fd)
|
|
return sys.stdin.read(1)
|
|
finally:
|
|
termios.tcsetattr(fd, termios.TCSADRAIN, old)
|