Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 06.01.2020 в Сообщения

  1. 2 балла
    Вместо вступления: Я не считаю C-подобный синтаксис лучше синтаксиса lua и не буду заставлять вас переписывать все ваши программы на TypeScript! Я просто хочу поделится с вами альтернативой и рассказать про ее преимущества и недостатки. # Что такое TypeScript? TypeScript — язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений. Он создан для расширения JavaScript и он компилируется в JavaScript, но также существует инструмент для преобразования TypeScript кода в Lua. Вам может показаться, что этот транслятор крайне ограничен, но, поверьте мне, его возможности впечатляют. # Почему его стоит попробовать? Я сначала продемонстрирую некоторые возможности TypeScript графически, а потом подробно расскажу про установку и настройку необходимых инструментов. Я покажу вам далеко не все возможности TypeScript, а только самые основные и интересные. Из-за большого размера контент каждого раздела будет скрыт под спойлер. 1. Статический анализ 2. Автодополнение 3. ООП 4. Стандартная библиотека и возможности языка # Как это работает? Конечно же все не так просто. Компилятор просто так не узнает типы методов и полей объектов, с которыми мы будем работать. Для того, чтобы описать наше окружение необходимо написать так называемые файлы декларации или тайпинги. Хочу сразу вас обрадовать - это не ваша задача. Существует репозиторий с такими декларациями, в котором, на данный момент, существуют типы для большинства API и компонентов OpenOS и библиотеки GUI. От вас требуется только установить все необходимые инструменты и правильно их настроить. # Установка Редактор кода Вы можете использовать любой редактор кода с поддержкой TypeScript. Я рекомендую VSCode, который поддерживает его из коробки. NodeJS Он необходим нам для установки необходимых пакетов (он поставляется с пакетным менеджером npm) и для запуска транспилера. Вы можете скачать последнюю стабильную версию с официального сайта. Использование плагина для VSCode (рекомендуется): Создание проекта вручную: Для компиляции используйте команду npm run build. Сгенерированные lua файлы появятся в папке dist. # Особенности работы транспилера В этой секции я подробно раскажу про недостатки этого подхода, возможные проблемы и способы их решения. 1. Параметр self 2. Множественные значения 3. Индексы # Ссылки Официальный сайт и документация TypeScript (англ) Серия русских статей по TypeScript Документация TypeScriptToLua (англ) Тайпинги
  2. 2 балла
    На тайпскрипте я, конечно, не писал, но пробовал MoonScript. Это такой язык, который транспилируется в Lua. У него тоже есть классы, сахара всякие. Но я на нём больше писать не хочу. Выхлопной код получается страшный. Что не сильно способствует дебагу. А ещё он неоптимален. В том числе по размеру получающегося скрипта, и минификатор не сильно помогает. Здесь, видимо, всё то же. Так что для опенкомпов будет проще всё же писать на Lua.
  3. 1 балл
    @hohserg Я обновил гайд и залил плагин в каталог.
  4. 1 балл
    Интернет-карта поддерживает все это, в зависимости от конфига. https://ocdoc.cil.li/component:internet
  5. 1 балл
    Да, все так. Я надеюсь, что с этим разберутся карты кода. Кстати, есть идея касательно транспорта. Можно использовать интернет карту. Она же может совершать запросы к localhostу?
  6. 1 балл
    https://github.com/1Ridav/Bridge-OpenComputers/wiki Выложил исходный код моста, ссылка выше Запуск через java -jar bridge.jar указанное в скобках опционально. Стандартные значения будут 1111 и 1112 соответственно Используйте команду help для получения дополнительной информации о командах Официальный мост всегда запущен по адресу http://bridge.computercraft.ru И использует порт 1111 http://bridge.computercraft.ru:1112 Веб доступ к информации моста, так можно узнать работает он или нет OpenComputers библиотека для подключения программ к системе моста http://computercraft.ru/topic/982-biblioteka-dlia-raboty-s-mobilnym-mostom-klien/ ANDROID клиент http://computercraft.ru/topic/347-android-opencomputers/
  7. 1 балл
    Стэк вызовов уже есть, его можно получать так: ```ok,err = xpcall(code, debug.traceback, args...)```. Однако, это будет стэк вызовов Lua-кода и нужно как-то получить соответствие TypeScript-коду
  8. 1 балл
    Небольшая демонстрация. Надо исправить некоторые недочеты и добавить поддержку Linux. Потом буду разбираться как загрузить его в каталог расширений и обновлю гайд.
  9. 1 балл
    Хорошая идея, я об этом даже не подумал. Можно также добавить в этот плагин автоматический поиск дисков (папки .minecraft\saves\xxx\opencomputers) и их подключение. Я займусь его написанием, не думаю что это слишком сложно. Я видел MoonScript в соседней теме. Он конечно хорош, учитывая что был создан специально для lua, но разве в нем есть статический анализ? Это хоть и не спасает от ошибок в рантайме, но позволяет уберечь программиста от отладки очень глупых ошибок и опечаток и обнаружить их еще до компиляции (или во время нее). Что касается отладки - действительно, код не сильно читаем. Я пока не знаю, насколько это возможно, но хотелось бы иметь отладчик. Технически, транспилер поддерживает карты кода, что позволяет сопоставить исходный typescript и сгенерированный lua код. Я пока не нашел полноценного lua отладчика для opencomputers, но думаю что он есть. В крайнем случае можно использовать библиотеку debug. Осталось лишь найти транспорт между игрой и VSCode, чтобы доставлять отладочные данные и можно будет написать отладчик как плагин для VSCode.
  10. 1 балл
    Да, не получится заставить чужого дрона выполнять произвольные команды, если его ПО не содержит дыр. Тут я вижу два сценария. Самый вероятный: после перепрошивки следует незаметно подбросить дрона его владельцу, чтобы тот установил его своими руками. Сделать это будет сложно, но при удачном раскладе возможно. В маловероятном сценарии дрон жертвы может оказаться строительным, заточенным на то, чтобы что-то брать из сундука и устанавливать в мир. В этом случае, подменив путевую точку, можно попытаться заставить дрона взять робота из сундука грифера и установить его в мир от имени жертвы. Меня тут внезапно осенило. Я обычно скептически отношусь к использованию путевых точек на сервере. Внутри привата от них мало пользы, т.к. апгрейд навигации сам по себе имеет зону, достаточную для покрытия привата. А за пределами привата где-то в майнерс-мирах путевая точка окажется маячком не только для самого игрока, но и для гриферов. Будучи мирным шахтёром, я заинтересован в максимальной скрытности своих систем. Но сейчас я посмотрел на это с другой стороны: если использовать путевые точки в качестве приманки, то гриферы рискуют сами оказаться в роли жертвы. В общем, если кому-то нравится использовать путевые точки на сервере, то я поддерживаю. Это добавит динамики игровому процессу.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...