Утилиты
В kw присутствуют как встроенные, так и сторонние утилиты:
$ kw tool template <айди> # Выводит полную информацию об обьекте с указанным айди в формате .ini
$ kw tool template <айди> -P # Выводит путь до файла с обьектом в проекте
$ kw tool template <айди> -c # Делает текст цветным
$ kw tool template <имя> -n # Ищет не по айди, а по полю Name
$ kw tool natives <код> # Выводит список строк из blizzard.j и common.j, в которых встречается указанный код
$ kw tool icons <название> # Выводит ссылки и пути до иконок с указанным названием
$ kw tool icons <название> -c # Выводит только иконки из класической версии
$ kw tool icons <название> -r # Выводит только иконки из рефоржа
$ kw tool iconslist # Запускает на localhost:8000 сайт со списком иконок
$ kw tool iconslist -c # На сайте будут только иконки из класической версии
$ kw tool iconslist -r # На сайте будут только иконки из рефоржа
$ kw tool balance # Создает в папке dist/balance/ html код со страницей с балансом обьектов
$ kw tool balance -s # Вместо создания сайта запускает его на localhost:8000
$ kw tool parse <файл> # Парсит файл с обьектами (.ini, .json, .mini)
$ kw tool blp <arg1> <arg2> ... # Работает с утилитой blp-rs, аргументы смотрите в ней
$ kw tool imp <arg1> <arg2> ... # Работает с утилитой imp, аргументы смотрите в ней
Сторонние утилиты
Вы можете создавать утилиты на Python (или загружать их с модулями) в папке tools:
tools/clear.py
from kuniwar.builder import Builder, BuildContext
import shutil
def clear(ctx: BuildContext):
shutil.rmtree('backups/')
shutil.rmtree('logs/')
def main():
Builder.end_build_signal.connect(clear)
В библиотеке kuniwar присутствуют простые сигналы начала и конца компиляции, что позволяет автоматизировать различные процессы в проекте. Так, в примере выше, после компляции удаляются папки logs/ и backups/, которые автоматически создаются через jasshelper.
Вообще, вы можете корректировать любую доступную часть исходного кода, так, например, можно заменить стандартный ASCII арт, выводящийся при использовании команды kw в папке проекта:
tools/ascii.py
from kuniwar.utils.ascii_arts import ASCII
ASCII.value = r"""
⣇⣿⠘⣿⣿⣿⡿⡿⣟⣟⢟⢟⢝⠵⡝⣿⡿⢂⣼⣿⣷⣌⠩⡫⡻⣝⠹⢿⣿⣷
⡆⣿⣆⠱⣝⡵⣝⢅⠙⣿⢕⢕⢕⢕⢝⣥⢒⠅⣿⣿⣿⡿⣳⣌⠪⡪⣡⢑⢝⣇
⡆⣿⣿⣦⠹⣳⣳⣕⢅⠈⢗⢕⢕⢕⢕⢕⢈⢆⠟⠋⠉⠁⠉⠉⠁⠈⠼⢐⢕⢽
⡗⢰⣶⣶⣦⣝⢝⢕⢕⠅⡆⢕⢕⢕⢕⢕⣴⠏⣠⡶⠛⡉⡉⡛⢶⣦⡀⠐⣕⢕
⡝⡄⢻⢟⣿⣿⣷⣕⣕⣅⣿⣔⣕⣵⣵⣿⣿⢠⣿⢠⣮⡈⣌⠨⠅⠹⣷⡀⢱⢕
⡝⡵⠟⠈⢀⣀⣀⡀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣼⣿⢈⡋⠴⢿⡟⣡⡇⣿⡇⡀⢕
⡝⠁⣠⣾⠟⡉⡉⡉⠻⣦⣻⣿⣿⣿⣿⣿⣿⣿⣿⣧⠸⣿⣦⣥⣿⡇⡿⣰⢗⢄
⠁⢰⣿⡏⣴⣌⠈⣌⠡⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣬⣉⣉⣁⣄⢖⢕⢕⢕
⡀⢻⣿⡇⢙⠁⠴⢿⡟⣡⡆⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣵⣵⣿
⡻⣄⣻⣿⣌⠘⢿⣷⣥⣿⠇⣿⣿⣿⣿⣿⣿⠛⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣷⢄⠻⣿⣟⠿⠦⠍⠉⣡⣾⣿⣿⣿⣿⣿⣿⢸⣿⣦⠙⣿⣿⣿⣿⣿⣿⣿⣿⠟
⡕⡑⣑⣈⣻⢗⢟⢞⢝⣻⣿⣿⣿⣿⣿⣿⣿⠸⣿⠿⠃⣿⣿⣿⣿⣿⣿⡿⠁⣠
⡝⡵⡈⢟⢕⢕⢕⢕⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣿⣿⣿⣿⣿⠿⠋⣀⣈⠙
⡝⡵⡕⡀⠑⠳⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⡠⡲⡫⡪⡪⡣"""