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;
}
diff --git a/app/data/i18n/Russian.json b/app/data/i18n/Russian.json
index 843e745e5..5988d2177 100644
--- a/app/data/i18n/Russian.json
+++ b/app/data/i18n/Russian.json
@@ -1,367 +1,368 @@
-{
- "me": {
- "id": "Ru",
- "native": "Русский",
- "eng": "Russian"
- },
-
- "common": {
- "add": "Добавить",
- "addtonotes": "Добавить в заметки",
- "apply": "Применить",
- "cancel": "Отмена",
- "cannotBeEmpty": "Не может быть пустым",
- "confirmDelete": "Вы уверены, что хотите удалить {0}? Отменить удаление будет невозможно!",
- "contribute": "Внести вклад в разработку 💻",
- "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": "Поддерживать высокую плотность пикселей (напр. на ретина-экранах)", - "maxFPS": "Максмальная частота кадров:", - "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}? Отменить удаление будет невозможно!", + "contribute": "Внести вклад в разработку 💻", + "copy": "Копировать", + "copyName": "Скопировать название", + "ctsite": "Домашняя страница ct.js", + "cut": "Вырезать", + "delete": "Удалить", + "donate": "Помочь денюжкой ❤️", + "done": "Готово!", + "duplicate": "Клонировать", + "exit": "Выход", + "exitconfirm": "Вы уверены, что хотите выйти?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": "Поддерживать высокую плотность пикселей (напр. на ретина-экранах)", + "maxFPS": "Максмальная частота кадров:", + "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-коды и адрес локального сервера" + } +} diff --git a/app/package.json b/app/package.json index 062d70069..808e92b4b 100644 --- a/app/package.json +++ b/app/package.json @@ -5,7 +5,7 @@ "version": "1.0.0-next-3", "homepage": "https://ctjs.rocks/", "license": "GPL-3", - "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, 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. + +
+ + +
+ ![]() + 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! + |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ There is more! +
+ + + +
+
+
+ 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!
+