Baba Is You — Как создать свой уровень
Как получить доступ и использовать скрытый редактор уровней Baba Is You.

Оговорка

Редактор уровня Baba Is You в настоящее время недоработан и не предназначен для использования игроками, как заявил Hempuli в этой теме сайта. Это означает, что в настоящее время он очень плохо работает:

1. Ваша игра (очень вероятно) рухнет.
2. Сохраненные данные или игровые файлы могут быть повреждены или удалены.
3. Будьте осторожны при использовании редактора уровней и создавайте резервные копии!

Чтобы сделать резервную копию, я бы порекомендовал скопировать все содержимое каталога игры и сохранить каталог в безопасное место. Для большинства пользователей Windows каталог игры будет расположен по адресу:

C:\Program Files (x86)\Steam\steamapps\common\Baba Is You

И сохраненный каталог будет расположен по адресу:

C:\Users\[YOUR USERNAME]\AppData\Roaming\Baba_Is_You

Боюсь, я не знаю, где они будут на других операционных системах, поэтому, пожалуйста, оставьте комментарий о том, где они для вас, если они не перечислены здесь.

Включение редактора

Во-первых, вы захотите перейти к папке с файлами игры в Steam, как указано в предыдущем разделе. Затем перейдите к следующему файлу и откройте его в своем любимом текстовом редакторе:

Baba Is You\Data\Editor\editor_menudata.lua

Это файл языка программирования Lua, поэтому мы будем буквально модифицировать сам код игры, чтобы снова включить его. Вот как он должен выглядеть в самом верху (вы можете просто скопировать и вставить в соответствующий раздел):

main =
    {
        button = "MainMenuButton",
        enter = 
            function(parent,name,buttonid)
                local x = screenw * 0.5
                local y = screenh * 0.5 + tilesize * 1
                
                local disable = MF_unfinished()
                local build = generaldata.strings[BUILD]
                
                createbutton("start",x,y,2,8,1,langtext("main_start"),name,3,2,buttonid)
                
                y = y + tilesize
                
                createbutton("settings",x,y,2,8,1,langtext("settings"),name,3,2,buttonid)
                
                y = y + tilesize
                    
                createbutton("custom",x,y,2,8,1,langtext("main_custom"),name,3,2,buttonid)
                    
                y = y + tilesize
                    
                createbutton("editor",x,y,2,8,1,langtext("main_editor"),name,3,2,buttonid)
                
                y = y + tilesize
                
                createbutton("credits",x,y,2,8,1,langtext("credits"),name,3,2,buttonid)
                
                if (build ~= "n") then
                    y = y + tilesize
                    
                    createbutton("quit",x,y,2,8,1,langtext("main_exit"),name,3,2,buttonid)
                end
                
                if (generaldata.strings[LANG] ~= "en") then
                    local madeby = langtext("intro_madeby")
                    
                    writetext(madeby,0,screenw * 0.5,screenh - tilesize * 0.8,name,true,1)
                end
            end,
        structure =
        {
            n = {
                {{"start"},},
                {{"settings"},},
                {{"credits"},},
            },
            {
                {{"start"},},
                {{"settings"},},
                {{"custom"},},
                {{"editor"},},
                {{"credits"},},
                {{"quit"},},
            },
            debug = {
                {{"start"},},
                {{"settings"},},
                {{"custom"},},
                {{"editor"},},
                {{"credits"},},
                {{"quit"},},
            },
        }
    },

Первоначально существовало условие (if утверждение), что кнопки "Custom Levels" и "Level Editor" будут созданы только в отладочном режиме, и они не будут доступны для выбора с помощью клавиш со стрелками (или джойстика), если не в отладочном режиме. Это сводит на нет и то, и другое. Теперь, если вы откроете Baba is You, у вас появятся две новые блестящие кнопки в главном меню! Как вы, вероятно, догадываетесь, "Редактор уровней" позволяет получить доступ к этому легендарному инструменту, а "Пользовательские уровни" - воспроизводить свои творения. Но мы еще не закончили.

Создание мира

Теперь вы можете сделать уровень и мир таким, какой вам нужен с помощью редактора уровней! Однако, если вы попытаетесь играть на таком уровне, ваша игра рухнет. Это потому, что игра на самом деле не знает, что она должна поставить вас на этот уровень, как только вы загрузите его. Итак, снова с вашим любимым текстовым редактором, откройте этот файл:

Baba Is You\Data\Worlds\[folder is not baba]\world_data.txt

Это намного проще, это просто свойства для мира, который вы создали, а не какой-то код. Сделай так, чтобы выглядело вот так:

это количество уровней в вашем мире.
это имя, ну, имя, которое вы дали своему миру, когда создавали его.
Начало - это имя файла уровня, в который вы впервые вводите, когда открываете мир.
Также, вот некоторые параметры для world_data.txt, которые вы, возможно, захотите использовать позже:
первый уровень я не совсем ясен, но похоже, что это "вводный" уровень (как уровень 0 "Baba is You" в основной кампании), а старт - уровень "карта".
подсчет тем - это количество "тем" в вашем мире, которые вы можете использовать для изменения внешнего вида и поведения объектов.

Построение уровня

Так как редактор уровней еще не закончен, изучение элементов управления не очень удобно и интуитивно понятно. Итак, вот что я знаю об этом до сих пор:

1. Чтобы поместить объект, щелкните меню "ОБЪЕКТЫ" в правом верхнем углу, выберите его левой кнопкой мыши и снова поместите на уровень с помощью левой кнопки мыши.
2. Чтобы изменить слой, на котором вы размещаете объекты, щелкните левой кнопкой мыши на 1, 2 или 3 сверху. Это позволяет размещать несколько объектов на одной плитке.
3. Чтобы выбрать объект, уже находящийся на выбранном уровне, убедитесь, что он находится в выделенном слое, а затем щелкните его правой кнопкой мыши.
4. Для стирания объектов необходимо использовать инструмент захвата, указанный в пункте выше. Пустая" плитка в верхнем левом углу меню объекта не может быть выбрана.
5. Чтобы изменить направление, в котором находится объект, убедитесь, что вы находитесь на правом слое, затем наведите курсор мыши на него и выберите его направление с помощью клавиш со стрелками.
6. Для перемещения всего в уровне по отношению к границам уровня, используйте WASD клавиши.
7. Для изменения размера уровня щелкните левой кнопкой мыши на кнопке "MENU" в самом верхнем правом углу, затем левой кнопкой мыши щелкните размеры, которые вы хотите внизу. Я бы не рекомендовал использовать "52X30" (самый большой), так как это сводит все текстуры к непривлекательному разрешению.
8. Чтобы изменить окраску уровня, щелкните левой кнопкой мыши в меню "CHANGE LEVEL PALETTE" из приведенного выше пункта, затем левой кнопкой мыши выберите нужный уровень. Вы также можете установить это значение через "CHANGE LEVEL THEME". Вы можете создавать темы в списке мирового уровня.
9. Для изменения технических параметров объектов в меню объекта щелкните левой кнопкой мыши на "ОБЪЕКТНЫЕ НАСТРОЙКИ" в меню уровня. Я бы не рекомендовал использовать это, если бы вы не знали, что делаете. Это также может быть задано темами.
10. Для изменения настроек самого уровня щелкните левой кнопкой мыши в меню уровня "УСТАНОВКИ УСТАНОВКИ ПАРАМЕТРА". Это позволяет вам указать, является ли уровень картой или обычным уровнем, изменить настройки для карты и указать, к какому уровню возвращаться после удара (например, к обычному уровню на карте).
11. Чтобы поместить путь к карте, сначала необходимо нажать левой кнопкой мыши кнопку "SET PATH" внизу. Для того чтобы он был пригоден для использования, убедитесь, что он установлен как "VISIBLE". Затем вы можете добавить его в слой с помощью "SET PATH".
12. Чтобы добавить ссылку на другой уровень карты, выберите "ADD LEVEL" в левом нижнем углу и поместите ее как обычный объект. Убедитесь, что по умолчанию у вас открыт хотя бы один уровень рядом с другими, иначе вы не сможете получить доступ ни к одному уровню.
13. Чтобы установить начальное положение курсора карты, выберите "SET SELECTOR" и поместите его как обычный объект. Селектор не занимает места ни на одном слое. Убедитесь, что поместите его на путь или уровень, иначе он не сможет двигаться.