[Guide][1.12.2] Генерация структур и заполнение сундуков с помощью loot_table.
Не нашёл в ру сегменте полноценной информации об этой теме и решил написать полноценный гайд.
Генерация структур
Для начала настроим главный класс мода:
Чтобы убрать пустое пространство при генерации необходимо перед сохранением постройки заполнить это пустое пространство нужными блоками (область постройки включает в себя в том числе блок воздуха и вырезает под него место)
Генерация лута в сундуках
Для генерации лута из списка loot_table необходимо добавить несколько строк в класс WorldGenStructure:
How to make a Structure
You will learn the fundamentals for creating a basic structure using MCreator in this guide.
Building the structure
Structure size
Structure blocks allow to create structures of 32x32x32 blocks. However, since Minecraft 1.16.x, Mojang has increased the maximal size for 48x48x48 blocks.Follow the steps below to build and export your «.NBT» structure file.
Build the structure
- Start the test environment.
- Make a new world. (We suggest using a flat world with no generated structure and use creative mode. With command enabled)
- Build your structure.
- Stay within the size of your Minecraft version.
- You can use your own blocks for the structure too.
- Type /give <press tab> minecraft:stucture_block
- Open F3 and find the corner where all the lines meet each other.
- Place your structure block at the bottom of the axis where all the lines meet each other near your structure.
- Right-click the structure and click data until you have a button where it says save.
- The top cords are relative to the structure block’s location. The bottom cords are for the size relative to the structure block where you opposite corner of the structure block is located at.
- Mesure your structure and type the appropriate cords to make your structure fit in the boundary box outline.
- When you are happy with the outline you can name your structure something you can remember and press the save button on the right side of the UI.
Importing structures
- First, go to the workspace.
- Next click on Resources.
- Next click on the tab called Structures.
- Next click on Import structure from Minecraft.
- Next, select the structure that you just made.
- Click ok.
Creating the mod element
Creating and naming
- First, go to the workspace tab.
- Next click on the Mod elements tab.
- Next, click the add button and select the Structure spawn element.
- Enter the name of your element.
Structure settings
This is how rare or common the structure can spawn per 1,000,000 chunks
Setting this value too high might cause slow world generation.
What worlds that the structure can spawn in.
Spawn frequency: The minimum and the maximum number of structures that the game has to spawn each time it spawns this structure.
Finding your structure
If you are not sure if your structure is spawning or if it just varies rare you can increase the Spawn probability value temporarily to test to see if the structure is spawning at all. If you find your structure then you know it’s just very rare and the value needs to be slightly increased for the spawning probability.
Structure voids and blocks.
Structure blocks are a built-in vanilla block that can save builds as .NBT structures. You can use structural voids to allow the structure to let other blocks override air blocks in your structure when it is generated. For example, if you want your structure to be buried on the inside you can fill the inside of the structure with structure voids using the /fill command to allow natural blocks to spawn where the voids are. Also, voids will not generate in your structures they are just placeholder blocks to let other blocks override the area on generation.
Video tutorial
If you prefer to watch the video, you can find the wiki page above summarized in a video:
Создание игровых аддонов и текстур — minecraft
Привет, Хабр! В этой статье я хочу затронуть тему аддонов. Многим чего-то не хватало в игре, и они скачивали аддоны с интернета. Когда вы понимаете, что скачанный аддон настолько безполезный, удаляете его. Я, допустим, хочу сделать аддон в minecraft bedrock. Если я сделаю достойный аддон, он может попасть на рынок. Заманчиво? Давайте попробуем сделать что-нибудь своё. Пригодится базовое знание json и в некоторых случаях javascript.
Первым делом, создадим папку myaddon по пути android/data/com.mojang. /files//games/com.mojang/behaivor_packs если у вас другое сохранение файлов, используйте games/com.mojang. /. Название папки, которую вы создали, никак не влияет на название аддона. За это отвечает manifest.json, который находится в нашей папке. Отредакиируем его
Если что, uuid это уникальный id, который используется для сохранения аддона. Уникальный айди можно сгенерировать, например, на сайте uuidgener*tor.net, я не хочу оставлять точную ссылку поэтому вместо «а» поставил «*». Чтобы создать иконку нашему аддону, создайте в папке аддона файл pack_icon.jpg или pack_icon.png. Теперь сохраняем наши файлы, заходим в майнкрафт и проверям — теперь во вкладке создание мира в «наборы параметров» есть пустой аддон, который ещё бесполезный.
Function — так называется функция аддона, которая может выполнять несколько команд одновременно. Например, если вы в чат введёте команду /function myfunction, вам дадут и яблоко, и дерево. Так можно создавать на function даже нормальные античиты, но для этого требуется знание команд minecraft bedrock. Чтобы сделать функции в аддона, создайте в папке аддона папку functions. В ней создадите myfunction.mcfunction, ваша функция будет называться myfunction. Отредактируйте код.
Функция может не отображаться при вводе /function ****. Теперь, если вы введёте /function myfunction, всем игрокам в мире дадут яблоко и дерево, а ещё создадится новый скорборд. Чтобы функция работала каждый тик непрерывно, не вводя её в чат или командный блок, создадим в папке function файл tick.json. Он будет отвечать за автоматическое выполнение функций каждый тик. Введём небольшой json код
теперь функция myfunction будет выполняться каждый тик. Если что, одна секунда это 20 тиков.
Идём всё дальше — чат. Вы, наверное, давно хотели оптимизировать чат, сделать ранги, антиспам. Тут всё в одном аддона — антиспам, ранги в чате и тд. Для начала нам придётся изменить manifest.json, чтобы указать в нём содержание javascript.
Если хотите, пробелы можете убрать. Вы наверное заметили, что здесь используется 5 уникальных айди. Это может быть для кого-то странно. Также мы указали путь к индексу. Вы уже наверное понимаете структуру.
В папке аддона создадим папку scripts, в ней хранятся скрипты (тоже очевидно). Создадим в папке scripts папку main. В ней файл index.js, языка javascript. Это наш индекс. Введите туда этот код
Думаю, вы поняли, что это отображение того, сколько тиках загружался мир. Ну, базовых знаний js достаточно, чтобы тут не объяснять. Далее в папке main создадим папку misc, а в ней файл chat.js, это будет отвечать за спам и ранги.
Чтобы создать себе ранг, нужно вписать tag @s add rank:ВАШ_РАНГ. Например, rank:§l§cADMIN, это будет красным ADMIN, а по умолчанию ранг зелёным Player. Но пока что всё равно ранги и анти-спам не будут работать, нужно в misc создать ещё один файл second.js, по названию всё понятно.
Это тоже небольшой js код, который импортирует секунды.Теперь заходим в майнкрафт, создаём мир с этим аддоном, в настройках мира включаем gametest и education edition. Внимание: поддерживаемая версия рангов и антиспама — 1.19.11 и выше. На других, более старых версиях, есть небольшой баг с командой tellraw.
Если что, у меня пустой ник, там вместо >> будет «:». Перед >> ник, но у меня пустойДалее — кастомные команды в чате. Это звучит необычно, но, если вы в чат например ввели .mycommand, выполнится команда. Она будет доступна всем игрокам. Создайте в папке scripts файл commands.js
Вы можете указать много команд в строке player.runCommand(«команда»). Далее, необходимо создать файл main.js
Всего лишь одна строка, импортирующая скрипт. Давайте отредактируем команды в прошлом коде и в майнкрафте введём в чат .mycommand, выполнятся введённые команды.
Как поставить авторские права на аддон? Легко. Если аддон не был скачан, вы можете создать в нём файл LICENSE.md или LICENSE.txt, в них всё указать. Вот пример
Лицензия может быть очень длинная, всё на ваш вкус.
Текстуры
Мы только что говорили о аддонах. Теперь поговорим о текстурах. Создадим папку mytextures по пути android/data/com.mojang. /files/games/com.mojang/resource_packs, опять же название папки не влияет на название ресурспака. В папке ресурспака создадим наш manifest.json. Вот собственно его код
Опять же, как и в аддоне, уникальный айди можно сгенерировать на любом сайте, например, uuidgener*tor.net. Вместо «а» я также поставил «*», чтобы ничего не нарушать. Для создания иконки создайте файл pack_icon.jpg или pack_icon.png.
Чтобы создать текстуры блоков, нужно в папке текстурпака создать папку textures. В ней папку blocks. В blocks запихиваем файл diamond_block.jpg (или .png). Теперь в игре алмазный блок будет выглядеть так, как в diamond_block.jpg.
Чтобы создать текстуры предметов, которые у вас в руках, необходимо в textures создать папку items. В неё запихивайте item.jpg, тоесть у меня например stick.jpg, в игре палка будет выглядеть по другому, тоесть так, как выглядит изображение stick.png.
Субпаки. Subpacks — это паки, использующие json код, который что-то определяет. Например, так можно сделать отображение хитбоксов игрока. Вот манифест для субпаков
По манифесту видно, что будет очень сложно. Но всё таки придётся сделать отображение хитбоксов.
Создайте в папке текстурпака папка subpacks. В ней ещё три папки — default, no_ray, opaque_model_collision. Сразу говорю, если вы не знакомы с субпаками и json, ознакомьтесь с ними, потому что сдесь вам без базовых знаний о субпаках вам не будет понятно. Дальше в папке default создаём папку animations, в которой содержатся все анимации. В ней hitboxrot.json. В ней отредактируем код анимации
Небольшой код в 30 строк для анимаций. Теперь если игрок подвижится, текстуры будут с ним поворачиваться. Далее в subpack/default создаём папку entity, естественно, там сущности, на которых действуют текстуры. В entity необходимо создать файл player.entity.json, это сущность игрока. Вот код
Это очень сложно понять без хотя бы базовых знаний json. Тут применяются математические примеры, рендер контроллеры, целых 118 строк. rotation’ы и всё подобное. Можете создать много сущностей для отображения хитбоксов, например, для иссушителя или волка. Но лучше не надо, а то если на многих сущностях будут действовать текстуры, будет лагать. Далее нам нужны материалы — создаём в default папку materials. В ней entity.material (без json), расширение material.
Думаю, здесь объяснять ничего не надо. Функция будет работать всегда. Дальше ещё сложнее — в default создайте папку models, в ней entity. А в entity 3 файла — первый hitbox.json
В этом файле мы указали размер хитбокса и сами хитбоксы. Второй файл — ray.json
Здесь тоже, думаю, объяснять ничего не надо — мы создали рэй. И третий файл — hitboxhitbox_swimming.json
Здесь мы указали отображение хитбоксов в режиме плавания. Это не будет выглядеть странно, как без этого файла. Если этого файла не будет, при плавании у игрока будет хитбокс, как будто он стоя ходит.
Теперь возвращаемся в папку default. В ней нужно создать папку render_controllers — в ней тоже hitbox.json и ray.json. Вот hitbox.json
Тут мы также не забыли указать про плавание. Теперь ray.json
Да да, опять указали swimming. Это рендер контроллеры. И создаём последнюю папку в папке default — textures. Как же без текстур хитбокса? Закидываем туда models/hitboxoverlay.png,ray.png
Вот вам hitboxoverlay

hitboxoverlay.png
ray.pngДа, они находятся в models. Вы, наверное, не видите тут модели, но они есть. На этом с папкой default мы закончили
Ну что, с папкой default закончили. В ней мы указали модели, материалы, плаванье и отображение хитбоксов, также модели хитбоксов. Теперь переходим в папку subpacks, в которой и содержался default. В subpacks создаём папку no_ray. Вы наверное уже представляете, насколько это будет долго. В no_ray создадим несколько папок — animations, entity, materials, models, render_controllers, textures.
В папке animations создайте файл hitboxrot.json
hitboxrot — hitboxrotation. Это небольшое сокращение, но файл называется именно hitboxrot.json. Тут есть body_rotation и всё в этом роде, тоесть анимации без ray, это подтверждает папка no_ray. Далее в no_ray в materials создайте папку entity.material, тоесть с расширением material.
Опять анимации в материалах. Ладно, дальше в models создаём папку entity, в которой hitbox_swimming.json и hitbox.json. Вот hitbox.json
Здесь размер хитбокса в json. Дальше hitbox_swimming.json — плавающий хитбокс
Здесь хитбокс в режиме плавания. Кого не смущает стоячий хитбокс плавающего игрока? Ладно, вот hitbox.json в render_controllers
Дальше в папке no_ray/textures/models вставляем hitboxoverlay.png, как же без него

hitboxoverlay.png
На этом с no_ray мы закончили. Но это ещё не всё — в субпаках есть папка opaque_model_collision. Напоминаю, мы делаем текстурпак с хитбоксами только для ознакомления с субпаками и json. Теперь, в opaque_model_collision создаём папки animations, entity, models, render_controllers, textures. Давайте немного от редактируем -сначалa папка animations. В ней hitboxrot.json. Вот hitboxrot.json
Мы указали кружение объекта, луп и хитбоксы. Далее указываем сущности — entity/player.entity.json
Ууу, тоже 118 строк. Одни вариаблы и контроллеры. Ну ладно, дальше в папке models создайте папку entity. В ней hitbox.json, hitbox_swimming.json, ray.json, вот hitbox
Указали размер. Теперь в плаванью хитбокса — hitbox_swimming.json
ЗдесьЗдесь используется функция geometry.hitbox.swimming, остался ray.json
А здесь функция minecraft:geometry. Странно, но всё же так. Далее переходим в render_controllers, там 2 файла — hitbox.json и ray.json. Отредактируем hitbox.json
Здесь используется функция render_controllers. Дальше ray.json
И опять функция render_controllers. Ладно, что нам осталось? Правильно, textures, в котором models. В models опять 2 файла — hitboxoverlay.png, ray.png. Вот hitboxoverlay.png

hitboxoverlay.png
Прошлые картинки ray.png, смотрите на них.
На этом всё. Импортируем аддон и заходим в майнкрафт. Запускаем и проверяем — у всех игроков есть хитбоксы.
На этом всё. Теперь перевод. Чтобы в ресурспаке сделать название предметов американцу stick, а русскому палка-копалка, создайте в папке ресурспака папку texts, в ней ru_RU.lang. Далее строка
На этом всё. Я рассказал про наборы параметров, ресурспаки и субпаки в текстурпаках, отображение хитбокса, перевод и анти-спам с рангами чата. Надеюсь, это статья была полезной.
Структура
В этом руководстве вы узнаете основы создания базовой структуры с помощью MCreator.
Содержание
Создание структуры [ ]
Размер структуры [ ]
Структурные блоки позволяют создавать структуры 32x32x32 блока. Однако, начиная с Minecraft 1.16.x, Mojang увеличили максимальный размер до 48x48x48 блоков. Выполните шаги ниже, чтобы создать и экспортировать файл структуры NBT.
Строим структуру [ ]
- Запустите тест мода (зелёный треугольник справа вверху).
- Создайте новый мир. (Рекомендую создать плоский мир без генерации структур в режиме креатива со включёнными читами)
- Постройте свою структуру, придерживаясь макс. размеров в зависимости от версии игры, на которую делаете мод. (Структурные блоки позволяют создавать структуры 32x32x32 блока. Однако, начиная с Minecraft 1.16.x, Mojang увеличили максимальный размер до 48x48x48 блоков).
- Вы также можете использовать блоки из своего мода для строительства.
- Когда вы будете готовы создать файл структуры, выполните следующие действия.
- Введите /give <press tab> minecraft:stucture_block
- Откройте F3 и найдите угол, где все линии пересекаются.
- Поместите свой структурный блок внизу оси, где все линии пересекаются рядом с вашей структурой.
- Щелкните структуру правой кнопкой мыши и в поле Data переведите структурный блок в такой режим когда появится кнопка с надписью Сохранить (Save).
- Верхние шнуры привязаны к местоположению структурного блока. Нижние шнуры соответствуют размеру структурного блока, в котором расположен противоположный угол структурного блока.
- Измерьте свою конструкцию и введите соответствующие шнуры, чтобы она соответствовала контуру рамки.
- Когда вы довольны схемой, вы можете назвать свою структуру чем-нибудь, что вы можете запомнить, и нажмите кнопку сохранения в правой части пользовательского интерфейса.
Импорт структуры [ ]
- Сначала перейдите в рабочую область (Workspace).
- Затем щелкните Resources.
- Затем щелкните вкладку Structures.
- Затем нажмите Import structure from Minecraft.
- Далее выберите структуру, которую вы только что сделали.
- Щелкните ОК.
Добавление структуры в мод [ ]
Создание и именование [ ]
- Сначала перейдите на вкладку рабочей области (Workspace).
- Как обычно нажимаете на плюсик, затем выбираете Structure.
- Введите название вашей структуры.
Настройки структуры [ ]
Структура для спавна (Structure to spawn) Это моделька, предварительно сохранённая с помощью структурного блока (см. выше) Вероятность появления (Spawn probability) Насколько редко или часто структура может появляться каждый 1000000 чанков. Установка слишком большого значения может привести к медленной генерации мира.
Советы [ ]
Поиск вашей структуры [ ]
Если вы не уверены, появляется ли ваша структура или она просто меняется редко, вы можете временно увеличить значение вероятности появления, чтобы проверить, не появляется ли структура вообще. Если вы найдете свою структуру, то вы знаете, что это очень редко, и значение должно быть немного увеличено для вероятности появления.
Структурные пустоты и блоки. [ ]
Структурные блоки — это встроенные ванильные блоки, которые могут сохранять сборки как структуры .NBT. Вы можете использовать структурные пустоты, чтобы позволить другим блокам перекрывать блоки воздуха в вашей структуре, когда она создается.