Добавлен , опубликован
Программы
Предназначение:
Работа с файлами
Представляю свое небольшое расширение для VSCode. Добавляется единственная команда 'Warcraft 3: build map'.
Возможности:
  • реализация функции require. Подключение файлов с lua кодом. Работает аналогично оригинальной функции.
  • реализация функции compiletime. Данная функция позволяет исполнять lua код сразу после склеивания файлов. При использовании данной функции доступны все возможности lua. Внутри функций compiletime доступны переменные src_dir и dst_dir. Это позволяет проводить манипуляции над файлами карты внутри кода (планируется добавить библиотеки). Может возвращать число, строку или таблицу, состоящую из чисел, строк и таблиц.
Для работы расширения необходимо:
  • установить расширение marketplace.visualstudio.com/items?itemName=nelloy.lua-wc3
  • скачать исполняющий файл github.com/nelloy-git/lua-wc3 (.exe или .py так же можно собрать самостоятельно 'pyinstaller --onefile lua-wc3.py')
  • указать путь к исполняющему файлу в настройках расширения
  • для python установить зависимости (lupa, py-lua-parser)
  • создать проект в VSCode, сохранить карту в виде папки в папку проекта src (по-умолчанию).
Запуск сборки производится командой 'Warcraft 3: build map'. В результате будет получена папка проекта dst (по-умолчанию), готовая к употреблению. О багах прошу сообщая сюда или в любой из гит репозиториев.
UPD: добавлена тестовая версия библиотеки для редактирования объектов WE.
Пример:
war3map.lua
local unit_id = 'h001'
local base_id =  'hpea'

local aura_id = 'A001'
local buff_id = 'B001'

compiletime(
    function ()
        local objEdit = require('compiletime.objEdit.objEdit')
        objEdit.init(src_dir, dst_dir)

        local unit_type = objEdit.Unit.new(unit_id, base_id)
        unit_type:setName('Compiletime footman')

        local aura = objEdit.AuraDummy.new(aura_id, buff_id,
                                           'Test buff', 'Some tooltip',
                                           "ReplaceableTextures\\CommandButtons\\BTNAdvancedSpikedBarricades.blp",
                                           '', '')
    end)

function FourCC(id)
    return string.unpack(">I4", id)
end

...

function Trig_Melee_Initialization_Actions()
    local u1 = CreateUnit(Player(0), FourCC(base_id), 0, 0, 0)
    local u2 = CreateUnit(Player(0), FourCC(base_id), 0, 0, 0)
    UnitAddAbility(u1, FourCC(aura_id))
    BlzSetUnitStringField(u1, UNIT_SF_NAME, 'Test')
    BlzSetUnitStringField(u2, UNIT_SF_NAME, 'Test2')
end

...

compiletime(
    function ()
        local objEdit = require('compiletime.objEdit.objEdit')
        objEdit.close()
    end)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
37
5 лет назад
0
В топку jetbrains, vs code перевернул им всем стол)
1
34
5 лет назад
1
Вроде же есть плагин для vscode:
Загруженные файлы
0
13
5 лет назад
0
ScorpioT1000, ага, но я не умею ни в js ни в ts) Если есть опыт и желание, я в деле. Думаб никогда не поздно поизучать новый язык
H, когда начинал - не было. Надо потестить
0
28
5 лет назад
0
В топку jetbrains, vs code перевернул им всем стол)
Не лагает, как продукты от JetBrains и VS 2019?
0
13
5 лет назад
0
Для меня главная преграда - отсутствие нормального require с автозаменами. Не думаю что этот плагин таким располагает
PT153, за 2 года было к vscode 1 нарекание. Баг на линуксе был, вместо переключения языка выделял главное меню и не лечилось для ctrl+alt
6
34
5 лет назад
Отредактирован H
6
Не лагает, как продукты от JetBrains и VS 2019?
jetbrains ide пользуюсь ими профессионально, каждый день по 8 часов. Самый приятный user experience, баги и тормоза иногда случаются, но обычно редко и не мешают. VS Code тоже очень хорош, но совсем в другом месте, это совершенно разные продукты, и никак не конкуренты друг-другу.
У VS Code можно удобно писать плагины, и делать свои ЯП, там есть поддержка language server, + если что-то нужно по быстрому поредактировать (например скрипты вара на lua или wurst, это musthave). А IDEA и прочии IDE уже для сложных аппликейшенов.
VS Code это тоже самое что и Atom от github. Sublime text кстати имеет теже плюшки что и VSCode, но он не бесплатный.
0
8
5 лет назад
0
H, Sublime Text бесплатный, только будут мучить напоминания о том, чтобы его купить. По крайней мере такой является 3 версия
0
34
5 лет назад
0
Atesla:
H, Sublime Text бесплатный, только будут мучить напоминания о том, чтобы его купить. По крайней мере такой является 3 версия
я про это и говорю, в vscode и atom такого нет.
0
37
5 лет назад
0
Что-то я вс код фри юзаю) и на средних проектах. смиритесь, он всем насрал в ванну
0
13
5 лет назад
0
Обновил, добавил исполняющий файл
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.