From 46f325c15236c2ffbf33c8d6d268e6d13cf03efb Mon Sep 17 00:00:00 2001 From: Cosmo Myzrail Gorynych Date: Thu, 15 Aug 2019 18:39:49 +1200 Subject: [PATCH 1/4] :bento: Sources of itch pages --- itchPage.css | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++ itchPage.html | 106 ++++++++++++++++++++++ 2 files changed, 348 insertions(+) create mode 100644 itchPage.css create mode 100644 itchPage.html diff --git a/itchPage.css b/itchPage.css new file mode 100644 index 000000000..6dd11193b --- /dev/null +++ b/itchPage.css @@ -0,0 +1,242 @@ +/**********************************/ +/********** BASIC LAYOUT **********/ +/**********************************/ + +.responsive .inner_column { + max-width: initial; +} +.responsive .wrapper { + padding: 0; +} +.columns { + margin: 1.5rem 0 0 0; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + max-width: 100vw; +} +.columns .left_col { + -webkit-order: 2; + order: 2; +} +.columns .right_col { + -webkit-order: 1; + order: 1; +} +.columns .right_col, .columns .left_col { + display: block; + margin: 0; + width: auto; +} +.view_game_page.buy_on_top .header_buy_row, #download, .buy_row, .uploads > p, .view_game_page .more_information_toggle .toggle_row { + text-align: center; +} +#view_game_footer { + padding: 2rem 1.5rem; + margin: 0 auto; +} +.header { + background: #446adb; +} +.right_col.column, +.formatted_description.user_formatted, +#devlog, +.view_game_page .uploads .upload_list_widget, +.game_community_preview_widget .community_topics, +.game_community_preview_widget .post_links, +.inner_column .footer, +.view_game_page .info_panel_wrapper { + width: 960px; + max-width: 100%; + max-width: 100vw; + margin: 0 auto; + padding: 0 1.5rem; + box-sizing: border-box; +} +.uploads, .view_game_page #download + .buy_row, #download, .community_summary { + background: #446adb; + padding: 1rem 0; + color: #fff; + margin: 0; +} +.view_game_page #download + .buy_row .button.buy_btn, .game_community_preview_widget .post_links a.button { + background: #fff; + color: #446adb; + box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.21); + text-shadow: none; +} + +/**********************************/ +/********* TEXT & HEADERS *********/ +/**********************************/ + +.formatted_description.user_formatted p:first-child { + margin-top: 1rem; + font-size: 125%; +} +.inner_column p, .inner_column ol, .inner_column ul { + line-height: 1.75em; +} +.inner_column h1, .inner_column h2, .inner_column h3, .inner_column h4 { + font-weight: 200; + padding-bottom: 0; + margin-bottom: 1rem; + margin-top: 1.5em; +} +.inner_column h2 { + font-size: 3rem; + text-align: center; + margin-top: 2rem; +} +.inner_column h4 { + font-weight: 600; +} +.formatted_description.user_formatted table, .formatted_description.user_formatted td { + border: 0; + text-align: center; +} +.formatted_description.user_formatted table strong { + font-weight: 300; + color: #5144db; + font-size: 1.5rem; + line-height: 3rem; +} +#download { + padding: 2rem 0 0; +} + +/**********************************/ +/****** SCREENSHOTS & DEMOS *******/ +/**********************************/ + +.view_game_page .screenshot_list, .custom-Demos, .custom-MadeWithCtJs { + white-space: initial; + text-overflow: ellipsis; + overflow: auto; + font-size: 0; + text-align: center; + margin: 0; +} +.formatted_description.user_formatted img, .view_game_page .screenshot_list img, .custom-Demos img, .custom-MadeWithCtJs img { + border: 0 none; + border-radius: 0.35rem; +} +.view_game_page .screenshot_list img, .custom-Demos img, .custom-MadeWithCtJs img { + opacity: 0.95; + transform: scale(0.9); + transition: ease 0.35s all; + display: inline-block; + margin: 0; + height: 160px; + max-width: initial; +} +.custom-Demos img, .custom-MadeWithCtJs img { + height: initial; +} +.screenshot_list a:hover img, .custom-Demos a:hover img, .custom-MadeWithCtJs a:hover img { + opacity: 1; + transform: scale(1); +} + +/**********************************/ +/********* DOWNLOAD & BUY *********/ +/**********************************/ + +.buy_row .buy_message .sub::before { + content: "$0+"; + margin-right: 0.35rem; + font-size: 1.35rem; + vertical-align: -1px; +} +.view_game_page .buy_row .button_message { + flex-flow: column nowrap; +} +.view_game_page .buy_row .sub { + margin-top: 1rem; +} +.view_game_page .buy_row .button { + margin-right: 0; + font-size: 1.5rem; + line-height: 3rem; + height: auto; + font-weight: 300; + padding: 0 1rem; + border-radius: 0.35rem; +} + +/**********************************/ +/************ UPLOADS *************/ +/**********************************/ + +.view_game_page #download + .buy_row { + padding-bottom: 0; +} +.view_game_page .uploads .upload_list_widget { + columns: 2; + width: 45rem; + max-width: 100%; +} +@media (max-width: 650px) { + .view_game_page .uploads .upload_list_widget { + columns: 1; + } +} +.upload_list_widget .upload .upload_name .name { + display: block; + line-height: 2; +} +.upload_list_widget .upload .upload_name, .upload_list_widget .upload .build_row { + display: inline; +} +.upload_list_widget .upload .upload_name > * { + margin-left: 0; + margin-right: 0.5rem; +} +.upload_list_widget .upload .info_column { + background: rgba(255, 255, 255, 0.1); + padding: 0.5rem 1rem; + border-radius: 0.35rem; + text-align: initial; +} +.view_game_page .uploads .upload_list_widget { + padding-bottom: 1.5rem +} + + +/**********************************/ +/************ DEVLOG **************/ +/**********************************/ + +.view_game_page .game_devlog ul li { + margin-bottom: 1rem; + justify-content: space-between; + align-items: first baseline; +} + +/**********************************/ +/************* FORUM **************/ +/**********************************/ + +.game_community_preview_widget .community_topics, .game_community_preview_widget .community_topics a { + color: #fff; + text-decoration: none; +} +.game_community_preview_widget .community_topic_row .topic_tag { + background: #4F44DB; + font-weight: 400; + font-size: 75%; + padding: 0.35rem 0.5rem; + border-radius: 0.35rem; +} +.game_community_preview_widget .post_links { + margin: 1rem auto; +} +.game_community_preview_widget h2 { + color: #fff; +} +.game_community_preview_widget .community_topic_row { + padding: 0.25rem 1rem; + border-radius: 0.35rem; + margin: 0 -1rem 0.75rem; +} \ No newline at end of file diff --git a/itchPage.html b/itchPage.html new file mode 100644 index 000000000..918edc96c --- /dev/null +++ b/itchPage.html @@ -0,0 +1,106 @@ +

+ + ct.js is a new game editor (desktop app) based on web technologies, currently in active development. + Our aim is to make it a simple game-making tool, accessible for both newbies and experienced game developers. + It runs on WebGL and provide good performance both on PCs and mobile devices. + +

+ +
+

Demos

+

+ + Catsteroids: an arcade space shooter with asteroids, starships and bonuses. + + + Greed: a silly platformer about being too greedy to collect all the coins in a puzzled level. + + + Memocats: a traditional memory game with matching cards. + +

+
+

Features

+ + + + + + + + + + + +
+ +
+ Easy to learn and use +
+ ct.js is designed to be used for learning and teaching programming. + It is accessible and ready-to-use for both newbies and pros. +
+ +
+ Highly extensible library +
+ ct.js's core is small but powerful, and its modules can add you more + abilities and higher-level functions. +
+ +
+ Runs on PC, Mac, Linux +
+ That's it. We support them all. One tool for everyone in your team, + in any office or garage. +
+ +
+ Games that run everywhere +
+ Games created with ct.js run in any modern browser, including mobile + ones, and can also be packed to executables for all the major desktop + platforms! +
+ +

Made with ct.js

+

+ + Welcome to the VOID: You were awakened by your Anabot only to know that the universe is dead. + + + StormCross: Save your colony from a deadly disease! + + + I Like Dreams: A tiny text adventure about dreams + + + 🌜🌲 (aka Among the Wolves): 🚁💥 🌜🌲🌲🙋🔥🙆‍🌳🌳🐺 + + + Disposable Magic: After a long adventure you finally face the Evil Sorcerer… + + + Shifted: A relaxing jigsaw puzzle. Take a blanket and a cup of tea. + +

+ +

+ There is more! +

+ +
+ + +
+ +

Partner — Mini Jam

+

+ +

+

+ Mini Jam is an open recurring game jam that is held every two weeks on itch.io. +
+ Join their Discord server or + visit their official site! +

\ No newline at end of file From e283f1a7982428e7affef5ad83fdf7d98d3c38e6 Mon Sep 17 00:00:00 2001 From: Cosmo Myzrail Gorynych Date: Thu, 15 Aug 2019 18:41:31 +1200 Subject: [PATCH 2/4] :bug: Add a missing russian label for "Reimport" at texture editor --- app/data/i18n/Russian.json | 731 +++++++++++++++++++------------------ 1 file changed, 366 insertions(+), 365 deletions(-) diff --git a/app/data/i18n/Russian.json b/app/data/i18n/Russian.json index 0fc3ed5f2..fe1148e4e 100644 --- a/app/data/i18n/Russian.json +++ b/app/data/i18n/Russian.json @@ -1,365 +1,366 @@ -{ - "me": { - "id": "Ru", - "native": "Русский", - "eng": "Russian" - }, - - "common": { - "add": "Добавить", - "addtonotes": "Добавить в заметки", - "apply": "Применить", - "cancel": "Отмена", - "cannotBeEmpty": "Не может быть пустым", - "confirmDelete": "Вы уверены, что хотите удалить {0}? Отменить удаление будет невозможно!", - "copy": "Копировать", - "copyName": "Скопировать название", - "ctsite": "Домашняя страница ct.js", - "cut": "Вырезать", - "delete": "Удалить", - "donate": "Помочь денюжкой ❤️", - "done": "Готово!", - "duplicate": "Клонировать", - "exit": "Выход", - "exitconfirm": "Вы уверены, что хотите выйти?
Все несохранённые данные будут потеряны!", - "fastimport": "Быстрый импорт", - "language": "Язык", - "translateToYourLanguage": "Переведите ct.js на свой язык!", - "name": "Название:", - "nametaken": "Это имя уже занято", - "newname": "Новое имя:", - "newversion": "# Доступна новая версия\n", - "no": "Нет", - "none": "Ничего", - "norooms": "Как бы это ни было печально, вам необходима как минимум одна комната для экспорта :)", - "notfoundorunknown": "Ошибка чтения файла. Убедитесь, что он на самом деле существует", - "ok": "Ок", - "open": "Открыть", - "openproject": "Открыть проект…", - "paste": "Вставить", - "reallyexit": "Вы уверены, что хотите выйти? Все несохранённые данные будут потеряны!", - "rename": "Переименовать", - "save": "Сохранить", - "savedcomm": "Ваш проект был успешно сохранён.", - "saveproject": "Сохранить проект", - "sort": "Сортировать:", - "tilelayer": "слой тайлов", - "wrongFormat": "Неверный формат файла", - "yes": "Да" - }, - - "actionsEditor": { - "actions": "Действия", - "actionsEditor": "Редактор действий", - "addAction": "Добавить действие", - "addMethod": "Добавить метод ввода", - "deleteAction": "Удалить это действие", - "deleteMethod": "Удалить этот метод", - "inputActionNamePlaceholder": "Название действия", - "methodModuleMissing": "Модуль для этого метода ввода отсутствует", - "methods": "Методы ввода", - "multiplier": "Множитель", - "noActionsYet": "Действия позволяют разработчику реагировать на события различных методов ввода одновременно, а также динамически менять настройки управления — всё через единый API. Узнайте о них больше, нажав иконку документации выше." - }, - "colorPicker": { - "old": "Старый", - "current": "Новый", - "globalPalette": "Глобальная палитра", - "projectPalette": "Палитра проекта" - }, - "docsShortcut": { - "openDocs": "Открыть документацию" - }, - "exportPanel": { - "hide": "В фоне", - "working": "Работаем…", - "debug": "Версия для отладки", - "export": "Экспортировать", - "exportPanel": "Экспорт проекта", - "firstrunnotice": "В первый запуск, ct.js скачает дополнительные файлы для каждой платформы. Это займёт время, но после этот процесс будет практически мгновенным.", - "log": "Логи" - }, - "inputMethodSelector": { - "select": "Выбрать" - }, - "intro": { - "loading": "Подождите, коты набирают скорость света…", - "newProject": { - "button": "Создать", - "input": "Имя проекта, латиница и цифры…", - "text": "Новый проект", - "nameerr": "Ошибка в имени проекта." - }, - "recovery": { - "message": "

Восстановление

ct.js нашёл файл восстановления. Вероятно, ваш проект не был корректно сохранён, или же ct.js аварийно закрылся. Вот когда эти два файла были последний раз изменены:

Выбранный файл: {0} {1}
Файл восстановления: {2} {3}

Какой файл следует открыть?

", - "loadTarget": "Выбранный файл", - "loadRecovery": "Файл восстановления", - "newer": "(новее)", - "older": "(старее)" - }, - "homepage": "Официальный сайт", - "latestVersion": "Доступна версия $1", - "forgetProject": "Забыть этот проект", - "browse": "Обзор…", - "latest": "Последние проекты", - "twitter": "Канал в Twitter", - "discord": "Сообщество в Discord" - }, - "licensepanel": { - "tldr": [ - "Вы сохраняете права на свои ассеты, свой код, котомоды;", - "Вы можете использовать приложение в коммерческих целях (и других тоже);", - "Запрещено изменять ct.js любым способом, не задуманным для этого самим Автором;", - "Мы не даём гарантий и не несём ответственности за любой возможный ущерб." - ] - }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Экспортировать для ПК", - "texture": "Графика", - "launch": "Скомпилировать и запустить", - "license": "Лицензия", - "min": "Переключить полноэкранный режим", - "modules": "Котомоды", - "recentProjects": "Последние проекты", - "rooms": "Комнаты", - "save": "Сохранить проект", - "startScreen": "К стартовому экрану", - "settings": "Настройки", - "sounds": "Звуки", - "successZipExport": "Успешно экспортировано в {0}.", - "successZipProject": "Проект успешно упакован в {0}.", - "ui": "Интерфейс", - "theme": "Тема", - "themeDay": "Светлая", - "themeNight": "Тёмная", - "types": "Типы", - "zipExport": "Экспорт в .zip", - "zipProject": "Упаковать проект в .zip" - }, - "settings": { - "actions": "Действия и методы ввода", - "author": "Автор:", - "authoring": "Авторство", - "cover": "Обложка:", - "editActions": "Редактировать действия", - "exportparams": "Настройки экспорта", - "framerate": "Кадров в секунду:", - "getfile": "Выбрать", - "highDensity": "Поддерживать высокую плотность пикселей (напр. на ретина-экранах)", - "minifyhtmlcss": "Сжать HTML и CSS", - "minifyjs": "Сжать JavaScript и преобразовать в ES5 (медленная операция, используйте для релиза)", - "pixelatedrender": "Здесь и в проекте отключать сглаживание (сохранять пиксели)", - "preloader": "Прелоадер", - "renderoptions": "Настройки графики", - "settings": "Настройки проекта", - "site": "Сайт автора:", - "title": "Название:", - "version": "Версия:", - "versionpostfix": "Постфикс:", - "preloaders": { - "circular": "Спиннер", - "bar": "Полоса загрузки", - "no": "Нет прелоадера" - }, - "scripts": { - "addNew": "Добавить новый скрипт", - "deleteScript": "Удалить этот скрипт", - "header": "Скрипты", - "newScriptComment": "Используйте скрипты для создания функций и импорта небольших библиотек" - } - }, - "modules": { - "author": "Автор котомода", - "hasfields": "Настраиваемый", - "hasinjects": "Содержит инъекции", - "hasinputmethods": "Добавляет новые методы ввода", - "help": "Документация", - "methods": "Методы", - "parameters": "Параметры", - "nomethods": "Нет собственных метов", - "noparameters": "Нет собственных параметров", - "info": "Инфо", - "license": "Лицензия", - "logs": "Ченджлог", - "logs2": "Лог изменений", - "settings": "Настройки" - }, - "texture": { - "create": "Создать", - "import": "Импорт", - "skeletons": "Скелетная анимация" - }, - "textureview": { - "bgcolor": "Сменить цвет фона", - "center": "Ось вращения:", - "cols": "Колонок:", - "done": "Готово", - "fill": "Заполнить", - "form": "Маска столкновений:", - "frames": "Кадров:", - "isometrify": "Изометрировать: переместить ось вращения вниз по центру, заполнить маской весь спрайт", - "name": "Имя:", - "radius": "Радиус:", - "rectangle": "Прямоугольник", - "round": "Круг", - "rows": "Строк:", - "setcenter": "По центру", - "speed": "Скорость превью:", - "tiled": "Повторяющийся тайл?", - "replacetexture": "Заменить…", - "corrupted": "Файл изображения повреждён или отсутствует! Невозможно открыть спрайт.", - "showmask": "Показать маску", - "width": "Ширина:", - "height": "Высота:", - "marginx": "Отступ X:", - "marginy": "Отступ Y:", - "offx": "Сдвиг X:", - "offy": "Сдвиг Y:", - "strip": "Ломаная / многоугольник", - "removePoint": "Удалить точку", - "closeShape": "Закрыть фигуру", - "addPoint": "Добавить точку", - "moveCenter": "Переместить ось вращения", - "movePoint": "Переместить точку" - }, - "sounds": { - "create": "Создать" - }, - "soundview": { - "import": "Импорт", - "name": "Имя:", - "save": "Сохранить", - "isMusicFile": "Это музыкальный трек", - "poolSize": "Размер пула:" - }, - "styles": { - "create": "Создать", - "styles": "Стили надписей" - }, - "styleview": { - "active": "Активно?", - "alignment": "Выравнивание:", - "apply": "Применить", - "fill": "Заливка", - "fillcolor": "Цвет:", - "fillcolor1": "Цвет 1:", - "fillcolor2": "Цвет 2:", - "fillgrad": "Градиент", - "fillgradtype": "Вид градиента:", - "fillhorisontal": "Горизонтальный", - "fillsolid": "Сплошная", - "filltype": "Тип заливки:", - "fillvertical": "Вертикальный", - "font": "Шрифт", - "fontfamily": "Семейство шрифтов:", - "fontsize": "Размер шрифта:", - "fontweight": "Толщина:", - "italic": "Наклонный", - "lineHeight": "Высота линии:", - "shadow": "Тень", - "shadowblur": "Размытие:", - "shadowcolor": "Цвет тени:", - "shadowshift": "Сдвиг тени:", - "stroke": "Обводка", - "strokecolor": "Цвет обводки", - "strokeweight": "Толщина обводки:", - "testtext" : "Тест Test 0123 +", - "textWrap": "Перенос текста", - "textWrapWidth": "Позиция для переноса:" - }, - "fonts": { - "fonts": "Шрифты", - "import": "Импорт TTF", - "italic": "Наклонный" - }, - "fontview": { - "typefacename": "Название семейства:", - "fontweight": "Жирность:", - "italic": "Наклонный стиль?", - "reimport": "Заменить" - }, - "types": { - "create": "Создать" - }, - "typeview": { - "change": "Сменить спрайт", - "create": "Код создания", - "depth": "Глубина:", - "destroy": "Код уничтожения", - "done": "Готово", - "draw": "Прорисовка", - "learnAboutTypes": "Кодинг типов", - "name": "Имя:", - "step": "Кадр" - }, - "rooms": { - "create": "Добавить", - "makestarting": "Сделать стартовой комнатой" - }, - "roombackgrounds": { - "add": "Добавить фон", - "depth": "Глубина:", - "movement": "Скорость перемещения (по X, Y):", - "parallax": "Параллакс (по X, Y):", - "repeat": "Повторять:", - "scale": "Размер (по X, Y):", - "shift": "Сдвиг (по X, Y):" - }, - "roomtiles": { - "moveTileLayer": "Переместить на другую глубину", - "show": "Показать слой", - "hide": "Спрятать слой", - "findTileset": "Найти тайлсет" - }, - "roomview": { - "name": "Имя:", - "width": "Ширина вида:", - "height": "Высота вида:", - "events": "События комнаты", - "copies": "Копии", - "backgrounds": "Фоны", - "tiles": "Плитки", - "add": "Добавить", - "none": "Ничего", - "done": "Сохранить", - "zoom": "Зум:", - "grid": "Включить сетку", - "gridoff": "Выключить сетку", - "gridsize": "Размер сетки:", - "hotkeysNotice": "Ctrl = Удалить, Alt = Без сетки, Shift = Много", - "hotkeysNoticeMovement": "Ctrl = Удалить, Shift = Выделить", - "tocenter": "В центр", - "selectbg": "Выбрать тайлсет", - "shift": "Сместить вид", - "shifttext": "Сдвинуть на:", - "step": "Кадр", - "create": "Код создания", - "leave": "Код выхода", - "draw": "Прорисовка", - "newdepth": "Новая глубина:", - "deletecopy": "Удалить копию {0}", - "deleteCopies": "Удалить копии", - "shiftCopies": "Сместить копии", - "selectAndMove": "Выбрать и переместить", - "deletetile": "Удалить плитку", - "deletetiles": "Удалить плитки", - "changecopyscale": "Изменить размер", - "shiftcopy": "Указать координаты", - "findTileset": "Найти тайлсет", - "movetilestolayer": "Переместить в другой слой", - "shifttiles": "Сместить плитки" - }, - "notepad" : { - "local": "Блокнот проекта", - "global": "Общий блокнот", - "helppages": "Справка", - "backToHome": "Назад на главную документации" - }, - "preview": { - "reload": "Перезапуск", - "roomRestart": "Перезапуск комнаты", - "openExternal": "Открыть в браузере", - "getQR": "QR-коды и адрес локального сервера" - } -} +{ + "me": { + "id": "Ru", + "native": "Русский", + "eng": "Russian" + }, + + "common": { + "add": "Добавить", + "addtonotes": "Добавить в заметки", + "apply": "Применить", + "cancel": "Отмена", + "cannotBeEmpty": "Не может быть пустым", + "confirmDelete": "Вы уверены, что хотите удалить {0}? Отменить удаление будет невозможно!", + "copy": "Копировать", + "copyName": "Скопировать название", + "ctsite": "Домашняя страница ct.js", + "cut": "Вырезать", + "delete": "Удалить", + "donate": "Помочь денюжкой ❤️", + "done": "Готово!", + "duplicate": "Клонировать", + "exit": "Выход", + "exitconfirm": "Вы уверены, что хотите выйти?
Все несохранённые данные будут потеряны!", + "fastimport": "Быстрый импорт", + "language": "Язык", + "translateToYourLanguage": "Переведите ct.js на свой язык!", + "name": "Название:", + "nametaken": "Это имя уже занято", + "newname": "Новое имя:", + "newversion": "# Доступна новая версия\n", + "no": "Нет", + "none": "Ничего", + "norooms": "Как бы это ни было печально, вам необходима как минимум одна комната для экспорта :)", + "notfoundorunknown": "Ошибка чтения файла. Убедитесь, что он на самом деле существует", + "ok": "Ок", + "open": "Открыть", + "openproject": "Открыть проект…", + "paste": "Вставить", + "reallyexit": "Вы уверены, что хотите выйти? Все несохранённые данные будут потеряны!", + "rename": "Переименовать", + "save": "Сохранить", + "savedcomm": "Ваш проект был успешно сохранён.", + "saveproject": "Сохранить проект", + "sort": "Сортировать:", + "tilelayer": "слой тайлов", + "wrongFormat": "Неверный формат файла", + "yes": "Да" + }, + + "actionsEditor": { + "actions": "Действия", + "actionsEditor": "Редактор действий", + "addAction": "Добавить действие", + "addMethod": "Добавить метод ввода", + "deleteAction": "Удалить это действие", + "deleteMethod": "Удалить этот метод", + "inputActionNamePlaceholder": "Название действия", + "methodModuleMissing": "Модуль для этого метода ввода отсутствует", + "methods": "Методы ввода", + "multiplier": "Множитель", + "noActionsYet": "Действия позволяют разработчику реагировать на события различных методов ввода одновременно, а также динамически менять настройки управления — всё через единый API. Узнайте о них больше, нажав иконку документации выше." + }, + "colorPicker": { + "old": "Старый", + "current": "Новый", + "globalPalette": "Глобальная палитра", + "projectPalette": "Палитра проекта" + }, + "docsShortcut": { + "openDocs": "Открыть документацию" + }, + "exportPanel": { + "hide": "В фоне", + "working": "Работаем…", + "debug": "Версия для отладки", + "export": "Экспортировать", + "exportPanel": "Экспорт проекта", + "firstrunnotice": "В первый запуск, ct.js скачает дополнительные файлы для каждой платформы. Это займёт время, но после этот процесс будет практически мгновенным.", + "log": "Логи" + }, + "inputMethodSelector": { + "select": "Выбрать" + }, + "intro": { + "loading": "Подождите, коты набирают скорость света…", + "newProject": { + "button": "Создать", + "input": "Имя проекта, латиница и цифры…", + "text": "Новый проект", + "nameerr": "Ошибка в имени проекта." + }, + "recovery": { + "message": "

Восстановление

ct.js нашёл файл восстановления. Вероятно, ваш проект не был корректно сохранён, или же ct.js аварийно закрылся. Вот когда эти два файла были последний раз изменены:

Выбранный файл: {0} {1}
Файл восстановления: {2} {3}

Какой файл следует открыть?

", + "loadTarget": "Выбранный файл", + "loadRecovery": "Файл восстановления", + "newer": "(новее)", + "older": "(старее)" + }, + "homepage": "Официальный сайт", + "latestVersion": "Доступна версия $1", + "forgetProject": "Забыть этот проект", + "browse": "Обзор…", + "latest": "Последние проекты", + "twitter": "Канал в Twitter", + "discord": "Сообщество в Discord" + }, + "licensepanel": { + "tldr": [ + "Вы сохраняете права на свои ассеты, свой код, котомоды;", + "Вы можете использовать приложение в коммерческих целях (и других тоже);", + "Запрещено изменять ct.js любым способом, не задуманным для этого самим Автором;", + "Мы не даём гарантий и не несём ответственности за любой возможный ущерб." + ] + }, + "menu": { + "ctIDE": "ct.IDE", + "exportDesktop": "Экспортировать для ПК", + "texture": "Графика", + "launch": "Скомпилировать и запустить", + "license": "Лицензия", + "min": "Переключить полноэкранный режим", + "modules": "Котомоды", + "recentProjects": "Последние проекты", + "rooms": "Комнаты", + "save": "Сохранить проект", + "startScreen": "К стартовому экрану", + "settings": "Настройки", + "sounds": "Звуки", + "successZipExport": "Успешно экспортировано в {0}.", + "successZipProject": "Проект успешно упакован в {0}.", + "ui": "Интерфейс", + "theme": "Тема", + "themeDay": "Светлая", + "themeNight": "Тёмная", + "types": "Типы", + "zipExport": "Экспорт в .zip", + "zipProject": "Упаковать проект в .zip" + }, + "settings": { + "actions": "Действия и методы ввода", + "author": "Автор:", + "authoring": "Авторство", + "cover": "Обложка:", + "editActions": "Редактировать действия", + "exportparams": "Настройки экспорта", + "framerate": "Кадров в секунду:", + "getfile": "Выбрать", + "highDensity": "Поддерживать высокую плотность пикселей (напр. на ретина-экранах)", + "minifyhtmlcss": "Сжать HTML и CSS", + "minifyjs": "Сжать JavaScript и преобразовать в ES5 (медленная операция, используйте для релиза)", + "pixelatedrender": "Здесь и в проекте отключать сглаживание (сохранять пиксели)", + "preloader": "Прелоадер", + "renderoptions": "Настройки графики", + "settings": "Настройки проекта", + "site": "Сайт автора:", + "title": "Название:", + "version": "Версия:", + "versionpostfix": "Постфикс:", + "preloaders": { + "circular": "Спиннер", + "bar": "Полоса загрузки", + "no": "Нет прелоадера" + }, + "scripts": { + "addNew": "Добавить новый скрипт", + "deleteScript": "Удалить этот скрипт", + "header": "Скрипты", + "newScriptComment": "Используйте скрипты для создания функций и импорта небольших библиотек" + } + }, + "modules": { + "author": "Автор котомода", + "hasfields": "Настраиваемый", + "hasinjects": "Содержит инъекции", + "hasinputmethods": "Добавляет новые методы ввода", + "help": "Документация", + "methods": "Методы", + "parameters": "Параметры", + "nomethods": "Нет собственных метов", + "noparameters": "Нет собственных параметров", + "info": "Инфо", + "license": "Лицензия", + "logs": "Ченджлог", + "logs2": "Лог изменений", + "settings": "Настройки" + }, + "texture": { + "create": "Создать", + "import": "Импорт", + "skeletons": "Скелетная анимация" + }, + "textureview": { + "bgcolor": "Сменить цвет фона", + "center": "Ось вращения:", + "cols": "Колонок:", + "done": "Готово", + "fill": "Заполнить", + "form": "Маска столкновений:", + "frames": "Кадров:", + "isometrify": "Изометрировать: переместить ось вращения вниз по центру, заполнить маской весь спрайт", + "name": "Имя:", + "radius": "Радиус:", + "rectangle": "Прямоугольник", + "round": "Круг", + "rows": "Строк:", + "setcenter": "По центру", + "speed": "Скорость превью:", + "tiled": "Повторяющийся тайл?", + "replacetexture": "Заменить…", + "corrupted": "Файл изображения повреждён или отсутствует! Невозможно открыть спрайт.", + "showmask": "Показать маску", + "width": "Ширина:", + "height": "Высота:", + "marginx": "Отступ X:", + "marginy": "Отступ Y:", + "offx": "Сдвиг X:", + "offy": "Сдвиг Y:", + "strip": "Ломаная / многоугольник", + "removePoint": "Удалить точку", + "closeShape": "Закрыть фигуру", + "addPoint": "Добавить точку", + "moveCenter": "Переместить ось вращения", + "movePoint": "Переместить точку", + "reimport": "Обновить" + }, + "sounds": { + "create": "Создать" + }, + "soundview": { + "import": "Импорт", + "name": "Имя:", + "save": "Сохранить", + "isMusicFile": "Это музыкальный трек", + "poolSize": "Размер пула:" + }, + "styles": { + "create": "Создать", + "styles": "Стили надписей" + }, + "styleview": { + "active": "Активно?", + "alignment": "Выравнивание:", + "apply": "Применить", + "fill": "Заливка", + "fillcolor": "Цвет:", + "fillcolor1": "Цвет 1:", + "fillcolor2": "Цвет 2:", + "fillgrad": "Градиент", + "fillgradtype": "Вид градиента:", + "fillhorisontal": "Горизонтальный", + "fillsolid": "Сплошная", + "filltype": "Тип заливки:", + "fillvertical": "Вертикальный", + "font": "Шрифт", + "fontfamily": "Семейство шрифтов:", + "fontsize": "Размер шрифта:", + "fontweight": "Толщина:", + "italic": "Наклонный", + "lineHeight": "Высота линии:", + "shadow": "Тень", + "shadowblur": "Размытие:", + "shadowcolor": "Цвет тени:", + "shadowshift": "Сдвиг тени:", + "stroke": "Обводка", + "strokecolor": "Цвет обводки", + "strokeweight": "Толщина обводки:", + "testtext" : "Тест Test 0123 +", + "textWrap": "Перенос текста", + "textWrapWidth": "Позиция для переноса:" + }, + "fonts": { + "fonts": "Шрифты", + "import": "Импорт TTF", + "italic": "Наклонный" + }, + "fontview": { + "typefacename": "Название семейства:", + "fontweight": "Жирность:", + "italic": "Наклонный стиль?", + "reimport": "Заменить" + }, + "types": { + "create": "Создать" + }, + "typeview": { + "change": "Сменить спрайт", + "create": "Код создания", + "depth": "Глубина:", + "destroy": "Код уничтожения", + "done": "Готово", + "draw": "Прорисовка", + "learnAboutTypes": "Кодинг типов", + "name": "Имя:", + "step": "Кадр" + }, + "rooms": { + "create": "Добавить", + "makestarting": "Сделать стартовой комнатой" + }, + "roombackgrounds": { + "add": "Добавить фон", + "depth": "Глубина:", + "movement": "Скорость перемещения (по X, Y):", + "parallax": "Параллакс (по X, Y):", + "repeat": "Повторять:", + "scale": "Размер (по X, Y):", + "shift": "Сдвиг (по X, Y):" + }, + "roomtiles": { + "moveTileLayer": "Переместить на другую глубину", + "show": "Показать слой", + "hide": "Спрятать слой", + "findTileset": "Найти тайлсет" + }, + "roomview": { + "name": "Имя:", + "width": "Ширина вида:", + "height": "Высота вида:", + "events": "События комнаты", + "copies": "Копии", + "backgrounds": "Фоны", + "tiles": "Плитки", + "add": "Добавить", + "none": "Ничего", + "done": "Сохранить", + "zoom": "Зум:", + "grid": "Включить сетку", + "gridoff": "Выключить сетку", + "gridsize": "Размер сетки:", + "hotkeysNotice": "Ctrl = Удалить, Alt = Без сетки, Shift = Много", + "hotkeysNoticeMovement": "Ctrl = Удалить, Shift = Выделить", + "tocenter": "В центр", + "selectbg": "Выбрать тайлсет", + "shift": "Сместить вид", + "shifttext": "Сдвинуть на:", + "step": "Кадр", + "create": "Код создания", + "leave": "Код выхода", + "draw": "Прорисовка", + "newdepth": "Новая глубина:", + "deletecopy": "Удалить копию {0}", + "deleteCopies": "Удалить копии", + "shiftCopies": "Сместить копии", + "selectAndMove": "Выбрать и переместить", + "deletetile": "Удалить плитку", + "deletetiles": "Удалить плитки", + "changecopyscale": "Изменить размер", + "shiftcopy": "Указать координаты", + "findTileset": "Найти тайлсет", + "movetilestolayer": "Переместить в другой слой", + "shifttiles": "Сместить плитки" + }, + "notepad" : { + "local": "Блокнот проекта", + "global": "Общий блокнот", + "helppages": "Справка", + "backToHome": "Назад на главную документации" + }, + "preview": { + "reload": "Перезапуск", + "roomRestart": "Перезапуск комнаты", + "openExternal": "Открыть в браузере", + "getQR": "QR-коды и адрес локального сервера" + } +} From 39e6565f66e6dbf7d60de03eae8082648f86a8f9 Mon Sep 17 00:00:00 2001 From: Cosmo Myzrail Gorynych Date: Thu, 15 Aug 2019 18:42:43 +1200 Subject: [PATCH 3/4] :zap: Make a public variable for ct.touch.released --- app/data/ct.libs/touch/index.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/data/ct.libs/touch/index.js b/app/data/ct.libs/touch/index.js index 79075670d..8ccb9d08c 100644 --- a/app/data/ct.libs/touch/index.js +++ b/app/data/ct.libs/touch/index.js @@ -8,7 +8,6 @@ lastPanY = 0, lastScaleDistance = 0, lastRotation = 0; - var released = []; // updates Action system's input methods for singular, double and triple touches var countTouches = () => { setKey('Any', ct.touch.events.length > 0? 1 : 0); @@ -85,7 +84,7 @@ for (let i = 0; i < touches.length; i++) { const ind = findTouchId(touches[i].identifier); if (ind !== -1) { - released.push(ct.touch.events.splice(ind, 1)[0]); + ct.touch.released.push(ct.touch.events.splice(ind, 1)[0]); } } countTouches(); @@ -123,6 +122,7 @@ } }; ct.touch = { + released: [], setupListeners() { document.addEventListener('touchstart', handleStart, false); document.addEventListener('touchstart', () => { @@ -149,10 +149,10 @@ countTouches(); }, clearReleased() { - released.length = 0; + ct.touch.released.length = 0; }, collide(copy, id, rel) { - var set = rel? released : ct.touch.events; + var set = rel? ct.touch.released : ct.touch.events; if (id !== void 0 && id !== false) { const i = findTouchId(id); if (i === -1) { @@ -164,7 +164,11 @@ shape: { type: set[i].r? 'circle' : 'point', r: set[i].r - } + }, + scale: { + x: 1, + y: 1 + } }); } for (let i = 0, l = set.length; i < l; i++) { @@ -174,7 +178,11 @@ shape: { type: set[i].r? 'circle' : 'point', r: set[i].r - } + }, + scale: { + x: 1, + y: 1 + } })) { return true; } From fa78e39794aa5a2f48d53a056f848612f6373592 Mon Sep 17 00:00:00 2001 From: Cosmo Myzrail Gorynych Date: Thu, 15 Aug 2019 18:43:28 +1200 Subject: [PATCH 4/4] :zap: Set a distinct user-agent for ct.js --- app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/package.json b/app/package.json index e3c34423d..e6e85bce3 100644 --- a/app/package.json +++ b/app/package.json @@ -4,7 +4,7 @@ "description": "ctjs", "version": "1.0.0-next-3", "homepage": "https://ctjs.rocks/", - "user-agent": "%name/%ver (%osinfo) NW.js/%nwver AppleWebkit/%webkit_ver Chromium/%chromium_ver", + "user-agent": "ct.js game engine %name/%ver (%osinfo) NW.js/%nwver AppleWebkit/%webkit_ver Chromium/%chromium_ver", "window": { "icon": "ct_ide.png", "toolbar": true,