Хуйня{{Шаблон:Дополнить}}Модификации — это неотъемлемая часть игры. С помощью них можно добавлять новые жидкости, блоки, руды. Модификации в Mindustry состоят из папки или zip-файла, и с файлом mod.json, а также набора спрайтов и файлов .json, определяющих новый контент.
'''ANDROID-ВЕРСИЯ ТЕПЕРЬ ПОДДЕРЖИВАЕТ МОДИФИКАЦИИ
Устал писать== Скачивание специальной версии ==Вообще этот пункт на данный момент не обязателен, но если вы хотите самые свежие фиксы загрузчика модов, то можете скачать специальную версию bleeding edge# Тыкаем [https://github.com/Anuken/MindustryBuilds/releases сюда].</br>Также есть полуавтоматическое скачивание.# Тыкаем [https://github.com/Anuken/MindustryBuilds/releases опять сюда].# Ищем и скачиваем Mindustry-BE-Desktop-xxxx.jar, где xxxx — идентификатор версии. == Импорт модификации ==Есть три способа импортировать модификацию. И все они простые<br> '''1.''' (только PC-версия) Скопируйте и вставьте папку/файл мода в папку mods Mindustry В Steam это находится в установочном каталоге Mindustry: steam/steamapps/common/Mindustry/save/modsЕсли у вас нет Steam-версии, то путь должен быть следующим: %appdata%/Mindustry/mods'''2.''' Заархивируйте папку с модификацией ('''не''' в отдельную папку, а лишь содержимое)(можете пропустить этот пункт, если мод уже находится в архиве).</br>'''2.1.''' Импортируйте через встроенный файловый менеджер игры:Главное меню→Модификации→Импортировать модификацию. Это не рекомендуется для мододелов, т.к. вам нужно постоянно архивировать в мод.</br>'''3.'''Узнайте адрес к модификации на github и скопируйте имя пользователя+название репозитория.</br>'''3.1.'''Импортируйте через игру:</br>Главное меню→Модификации→Импортировать GitHub модификацию. == Создание модификации =={{Шаблон:Плашка| title = Перед созданием НАСТОЯТЕЛЬНО рекомендуем почитать эту статью >>> [[JSON]]| text = | img = Hard_it.png}}{{Шаблон:Плашка| title = И ещё эту >>> [[Git]]| text = | img = Hard_it.png}}#Переходим в директорию *Для Steam:</br><code>steam/steamapps/common/Mindustry/mods</code>*Для остальных настольных: </br><code>%appdata%/Mindustry/mods</code>%appdata%/Mindustry/mods# Создаём папку с любым названием. Желательно латиницей. Пусть название модификации будет <code>Modik</code>.# Создаём папки и файлы так же, как и в древе снизу. Если лень создавать, то можете скачать [https://google.com отсюда]. └── Modik ├── content │ └── blocks │ └── magma.json │ └── liquids │ └── lava.json │ │──items ├── mod.json ├── sounds │ ├── pewpew.mp3 │ └── pewpew.ogg └── sprites │ └── blocks │ └── liquids=== Код ==='''Подсказки!'''<br>*В большинстве случаев используется английский для создания модификаций. Если вы не знаете какой-то блок, то можно нажать [[Учим_английский|сюда]]*Прочитайте руководство по синтаксису [[JSON]].*Лучше используйте английский.*Всему нужно тип. Всегда.**Все блоки, предметы, мехи и т.д. имеют два одинаковых типа. Это name(имя) и description(описание).Пример:<pre>"name": "Zoloto""description":"Золото (для тех, кто не знает английский)"</pre>==== Блоки ====Специальная категория:</br><code>blocks</code>Было перемещено [[Блоки (Модификации)|сюда]] для уменьшения высоты страницы. ==== Предметы ====Специальная категория:</br> <code>item</code>{| class="wikitable"|-! Переменные !! Значения !! Описание|-| type || material || Тип предмета, если ему не присвоить значение material, то предмет нельзя загрузить в ядро и использовать его для строительства|-| name || Произвольная cтрока || Название предмета, будет отображено в игре.|-| description || Произвольная cтрока || Описание предмета, будет отображено в игре.|-| cost || Вещественное число > 0 || Цена расчёта стоимости предмета при копировании блоков содержащих его.|-| color || От #000000 до #FFFFFF || Цвет предмета, в 16 битном диапазоне цветов. [[Цвета|Используйте только HEX цвета.]]|-| hardness || Натуральное число || Жесткость, используется для материалов, добываемых бурами. Чем больше число, тем труднее добыть предмет|-| alwaysUnlocked || false или true || При значении true предмет открыт в базе данных|-| explosiveness || Вещественное число > 0 || Взрывоопасность предмета|-| flammability || Вещественное число > 0 || Возгораемость предмета|-| radioactivity || Вещественное число > 0 || Радиоактивность предмета|} ==== Жидкости ====Специальная категория:<br>Директория:<pre> ├── Modik ├── content │ └── liquids │ └── lava.json</pre><code>liquid</code>{| class="wikitable sortable"|-! Свойство!! Описание !! Примечание|-|temperature|| Температура.<br>0.5 — это комнатная;<br>0 — очень холодная;<br>1 — знойная жара.|-|flammability|| Воспламеняемость.<br>Доступные значения: [0;1]<br>0 — полностью воспламеняется;<br>Всё, что выше, может загореться при воздействии тепла<br>0.5+ — очень легко воспламеняется.|-|viscosity|| Вязкость (Густота)<br>1 - Вязкая , желеобразная (При проливании жидкости ,она никогда не пропадёт)<br>0.5 - Вода (Пропадает через время)<br>0 - Маскимально жидкая (Моментально пропадает)|-|heatCapacity || Теплоёмкость<br>количества тепла сохраняемого этой жидкостью.<br>0.4 — вода (прилично)<br>Всё, что ниже, вероятно, менее плотно и хуже охлаждает.|-|explosiveness || Сила взрыва жидкости при перенагревании.<br> 0 — никак<br>1 — ядерная бомба|-|flameColor || Цвет при взрыве жидкости. || [[Цвета|Используйте только HEX цвета.]]|-|color || Цвет жидкости. || [[Цвета|Используйте только HEX цвета.]]|-|effect || Эффект. || [[Эффекты]]|} ==== Единицы (юниты) ===={| class="wikitable"|-! Переменные !! Значения !! Описание !! Примечание|-| type || flyingUnit, groundUnit || Тип юнита || -|-| name || Произвольная строка || Название юнита || -|-| description || Произвольная строка || Описание юнита || -|-| maxVelocity || От 0 до ∞ || Оганичение скорости для юнита || -|-| speed || От 0 до ∞ || Скорость передвижения юнита || -|-| flying || true \ false || Сможет ли не летающий юнит летать || -|-| health || От 0 до ∞ || Здоровье юнита || 1 = 1|-| drag || От 0 до ∞ || Величина отклонения юнита || -|-| engineOffset || От 0 до ∞ || Направление отклонения юнита || -|-| weaponOffsetY || От 0 до ∞ || место появления снарядов при выстреле || -|-| engineSize || От 0 до ∞ || - || -|-| rotatespeed || От 0 до ∞ || Скорость поворота юнита || -|-| baseRotateSpeed || От 0 до ∞ || Скорость поворота ног юнита (есле наземный) || -|-| range или attackLength || От 0 до ∞ || Дальность обнаружения юнитом врагов || -|-| hitsize || От 0 до ∞ || - || -|-| hitsizeTile || От 0 до ∞ || - || -|-| shootCone || От 0 до ∞ || Разброс оружия юнита || -|-| mass || От 0 до ∞ || Влияет на силу отталкивания юнита или от юнита || 1 = 1|-| targetAir || true \ false || Сможет ли юнит стрелять по воздушным целям || -|-| rotateWeapon || true \ false || Будет ли у юнита поварачиватся оружие || -|-| retreatPercent || От 0 до ∞ || - || -|-| itemCapacity || От 0 до ∞ || Размер внутреннего хранилища юнита || -|-| toMine || "1-ore, 2-ore" || Фильтр предметов для добычи || Есле 1 руда то указывается сразу за переменной, От 2 до ∞ в массиве|-| buildPower || От 0 до ∞ || Скорость постройки блоков юнитом || -|-| Weapon || weapon || Оружие юнита || -|-| immunities || - || Имунитеты || -|-| deathSound || "1.ogg" || Звук смерти || -|} пример кода со всеми переменными(не советую так делать)<pre>{ "type": "flyingUnit", "name": "Chrome Wraith", "description": "Generally annoying and flashy.", "maxVelocity": 10, "speed": 0.5, "drag": 10, // заставляет юнита лететь боком "flying": true, "health": 90, "engineOffset": 5.5, "range": 160, "weaponOffsetY": 7, // отдалило орудия вперёд от юнита "engineSize": 5, // увеличивает размер огонька с зади "rotateSpeed": 16, "baseRotateSpeed": 16, "shootCone": 16, "mass": 1500, "targetAir": true, "rotateWeapon": true, "retreatPercent": 100, "itemCapacity": 100, "tomine": "copper-ore" "buildPower": 80, "deathSound": "swings.ogg", "weapon": { "name": "chrome-blaster", "length": 1.5, "damage":45, "reload": 10, "alternate": true, "bullet": "lightning" }}</pre> ====Патроны====Используется в Туррелях{|class="wikitable sortable"|-!Свойство !! Описание !! Примечания|-|speed|| Скорость снаряда || Вещественное число |-|damage|| Урон || Вещественное число |-|bulletWidth|| Ширина снаряда|| Вещественное число |-|bulletHeight|| Длина снаряда|| Вещественное число |-|shootEffect|| Эффект выстрела|| Название эффекта|-|smokeEffect|| Эффект после выстрела || Название эффекта|-|ammoMultiplier|| Кол-во снарядов || Вещественное число |-|splashDamageRadius|| Радиус Взрыва||Вещественное число|-|splashDamage|| Урон От взрыва||Вещественное число|}Пример <pre>"Патрон": { "speed": 3.5, "damage": 19, "bulletWidth": 7, "bulletHeight": 9, "shootEffect": "shootSmall", "smokeEffect": "shootSmallSmoke", "ammoMultiplier": 1.0, "splashDamageRadius": 20, "splashDamage":10}</pre>====Турели====Специальная категория:<code>turret</code>.{| class="wikitable sortable"|-! Свойство!! Описание !! Примечание|-|name|| Имя турели.|| |-|description|| Описание турели.|||-|targetAir|| Турель стреляет по воздушным юнитам. || True или False.|-|targetGround || Турель стреляет по наземным юнитам. || True или False.|-|size || Размер турели. || В блоках.|-|inaccuracy || Разброс.|||-|reload || Перезарядка. || |-|shootCone || Используется для взрывателя,конусность выстрела. |||-|rotateSpeed || Скорость поворота турели. |||-|shoots || Выстрелов за раз. |||- |range || Дальность полёта пули. |||} Вот пример:<pre>{ "type": "burstTurret", "name": "minigun", "description": "Shoots faster!", "targetAir": true, "targetGround": true, "size": 2, "inaccuracy": 2, "reload": 10, "shootCone": 1, "rotateSpeed": 22, "shots": 1, "range": 110, "burstSpacing": 2, "ammo": { "titanium": { "speed": 9, "damage": 10, "bulletWidth": 2, "bulletHeight": 5, "shootEffect": "shootSmall", "smokeEffect": "shootSmallSmoke", "ammoMultiplier": 12 }, "silicon": { "speed": 8, "damage": 12, "bulletWidth": 3, "bulletHeight": 6, "shootEffect": "shootSmall", "smokeEffect": "shootSmallSmoke", "ammoMultiplier": 10 }, "thorium": { "speed": 8, "damage": 20, "bulletWidth": 4, "bulletHeight": 7, "shootEffect": "shootSmall", "smokeEffect": "shootSmallSmoke", "ammoMultiplier": 8 } }, "requirements": [ { "item": "lead", "amount": 60 }, { "item": "titanium", "amount": 40 }, { "item": "copper", "amount": 60 } ], "category": "turret", "research": "scatter"}</pre>==== Мехи ====Чтобы добавить новый мех, надо в папке <code>content</code> создать папку <code>mechs</code>, в ней у нас будет лежать JSON файл. {| class="wikitable sortable"|-! Свойство!! Описание !! Примечание|-|name|| Имя меха. || -|-|description|| Описание меха. || -|-|speed|| Скорость меха по земле. || 1 = 60|-|boostSpeed || Скорость меха по воздуху. || 1 = 60|-|buildPower || Скорость строительства. || 1 = 60|-|engineColor || Цвет двигателя меха. || [[Цвета|Используйте только HEX цвета.]]|-|flying || Летает или нет. || Используйте true или false.|-|health || Здоровье меха. || 1 = 60 HP|-|weaponOffsetX || Смещение оружия у меха по X. || В пикселях.|-|weaponOffsetY || Смещение оружия у меха по Y. || В пикселях.|- |weapon || Оружие меха || Пишите название текстурки оружия.|}1 = 60 означает то, что вместо вашего значения надо написать ваше значение , умноженное на 60, например чтобы у меха было здоровье 120, туда надо написать 2. Вот пример:<pre>{ "name": "Имя меха", "description": "Описание меха.", "speed": 0.6, "boostSpeed": 1.5, "buildPower": 2.0, "engineColor": "666495", "flying": false, "health": 300, "weaponOffsetX": 4, "weapon": { "name": "Имя оружия", "length": 1.5, "reload": 4, "alternate": false, "bullet": "lightning" }}</pre> ==== Оружие ====Используется в юнитах и мехах.Указывается как переменная <code> weapon </code>.Возможные свойства:{| class="wikitable"|-! Свойства !! Значения !! Описание !! примечание|-| name || произвольная строка || Название оружия|-| length || От 0 до ∞|| -|-| width || От 0 до ∞|| -|-| reload || От 0 до ∞ || Скорость перезарядки|-| range || От 0 до ∞ || Дальность выстрела|-| alternate || True \ False || Присутствие или отсутствие альтернативного огня|-| bullet || См. Пули || Эффект создаваемый когда происходит выстрел || может иметь дополнительные параметры|-| shots || От 1 до ∞ || Определяет сколько будет выпущено пулей за выстрел || может быть указан второй раз после след. параметра|-| shotDelay || От 0 до ∞ || Время перерыва между выстрелами|-| shotCone || От 0 до ∞ || Разброс|-| recoil || От 0 до ∞ || Отдача от выстрела|-| ejectEffect || См. Эффекты || Эффект от выстрела|-| spacing || От 0 до ∞ || -|-| inaccuracy || От 0 до ∞ || Неаккуратность выстрела|-| velocityRnd || От 0 до ∞ || -|-| shootSound || "1.ogg" || Звук выстрела|-| ignoreRotation || True \ False || -|-| shake || От 0 до ∞ || -|} ===== Пули =====используется в оружии для юнитов\мехов ==== Эффекты ===={| class="wikitable"|-! Эффект !! Описание|-| none || отсутствует|-| placeblock || Эффект блока|-| breakblock || Эффект уничтожения блока|-| smoke || Эффект дыма|-| spawn || Эффект спавна|-| tapblock || эффект нажатия на блок|-| vtolhover || Эффект вертикального взлёта|-| unitdrop || Эффект падения юнита|-| unitpickup || Эффект взлёта юнита|-| unitland || Эффект посадки юнита|-| pickup || Эффект поднятия|-| healwave || Эффект регенириющий волны|-| heal || Эффект регенерации|-| landshock || -|-| reactorsmoke || Эффект дыма реактора|-| nuclearsmoke || Эффект ядерного дыма|-| redgeneratespark || Эффект красной сгенериваной искры|-| fuelburn || Эффект горения топлива|-| plasticburn || Эффект горения пластика|-| pulverize || Эффект измельчения|-| pulverizeRed || Разновидность эффекта измельчения|-| pulverizeRedder || Разновидность эффекта измельчения|-| pulverizeSmall || Разновидность эффекта измельчения|-| pulverizeMedium || Разновидность эффекта измельчения|-| purify || Эффект очищения|-| purifyoil || Эффект очищения нефти|-| purifystone|| Эффект очищения камня|-| generate|| -|-| mine || Эффект бурения|-| mineBig || Эффект бурения среднего бура|-| mineHuge || Эффект бурения большого бура|-| smelt || Эффект плавки|-| teleportActivate || Эффект активного телепорта|-| teleport || Эффект телепортации|-| teleportOut || Эффект телепортирования|-| ripple || Эффект ряби, пульсации|-| bubble|| Эффект пузыря|-| launch || Эффект запуска|-| healBlock || Эффект лечебного блока|-| healBlockFull || -|-| healWaveMend || Эффект лечебной волны c починкой (?)|-| overdriveWave || Эффект ускоряющей волны|-| overdriveBlockFull || -|-| shieldBreak || Эффект уничтожения щита|-| hitBulletSmall || Эффект попадания маленький|-| hitFuse || Эффект загорания выстрелом|-| hitBulletBig || Эффект попадение большой пулей|-| hitFlameSmall || Эффект попадения маленьким огнём|-| hitLiquid || Эффект выстрела жыдкостью|-| hitLaser || Эффект выстрела лазером|-| hitLancer || Эффект выстрела лансером|-| hitMeltdown || Эффект выстрела испепелителем|-| despawn || -|-| flakExplosion || Эффект взрыва зенитного огня|-| blastExplosion || -|-| plasticExplosion || Эффект взрыва пластика|-| artilleryTrail || Эффект артилерийского хвоста (?)|-| incendTrail || Эффект хвоста зажигательного снаряда|-| missileTrail || Хвост ракеты|-| absorb || Эффект впитывания|-| flakExplosionBig || Взрыв большого зенитного огня|-| plasticExplosionFlak || -|-| burning || Эффект горения|-| fire || Эффект огня|-| fireSmoke || Эффект дыма от огня|-| steam || Эффект тумана или пара|-| fireballsmoke || Эффект дыма огненого шара|-| ballfire || Эффект шара огня|-| freezing || Эффект заморозки|-| melting || Эффект плавления|-| wet || Эффект намокания|-| oily || Эффект нефти|-| overdriven || -|-| dropItem || Эффект выбрасывания предмета|-| shockwave || Эффект ударной волны|-| bigShockwave || Эффект большой ударной волны|-| nuclearShockwave || Эффект взрывной волны от ядерного взрыва|-| explosion || Эффект взрыва|-| blockExplosion || Эффект взрыва блока|-| blockExplosionSmoke || Эффект дыма после взрыва блока|-| shootSmall || Эффект маленького выстрела|-| shootHeal || Эффект регенерирующего взрыва|-| shootSmallSmoke || -|-| shootBig || -|-| shootBig2 || -|-| shootBigSmoke || -|-| shootBigSmoke2 || -|-| shootSmallFlame || -|-| shootPyraFlame || -|-| shootLiquid || -|-| shellEjectSmall || -|-| shellEjectMedium || -|-| shellEjectBig || -|-| lancerLaserShoot || -|-| lancerLaserShootSmoke || -|-| lancerLaserCharge || -|-| lancerLaserChargeBegin || -|-| lightningCharge || -|-| lightningShoot || Эффект выстрела молнией|-| unitSpawn || Эффект спавна юнита|-| spawnShockwave || -|-| magmasmoke || -|-| impactShockwave || -|-| impactcloud || -|-| impactcloud || -|-| impactsmoke || -|-| dynamicExplosion || -|-| padlaunch || -|-| commandSend || -|-| coreLand || Эффект падения ядра|} ==== Статус эффекты ====Статус эффекты накладываются на некоторый объект на определенное время{| class="wikitable sortable"|-! Свойство!! Описание !! Примечание|-|none|| Нет эффекта.|| - |-|burning|| Эффект горения.|| Наносит урон в течение времени |-|freezing|| Эффект заморозки.|| Замедляет объект и уменьшает его броню|-|wet|| Эффект промокания.|| Делает объект уязвимым к электрическому урону|-|melting|| Эффект плавления.|| Наносит урон в течение времени и замедляет объект|-|tarred|| Эффект дегтя.|| Замедляет объект и делает его уязвимым к огненному урону|-|overdrived|| Эффект ускорения.|| Увеличивает скорость объекта и наносимый им урон|-|shielded|| Эффект защиты.|| Увеличивает броню объекта в 3 раза|-|boss|| Эффект босса.|| Увеличивает броню объекта и его урон в 3 раза|-|shocked|| Эффект шока.|| -|-|corroded|| Эффект коррозии.|| Наносит небольшой урон|} === Спрайты ===При добавлении название согласовывается с .json файлом. Игра поддерживает только спрайты с разрешением .png . Таблица размеров спрайта относительно размера блока.{| class="wikitable"|-! Спрайт !! Блок|-| 32 х 32 || 1 х 1|-| 64 х 64 || 2 х 2|-| 96 х 96 || 3 х 3|-| 128 х 128 || 4 х 4|} При рисовке юнитов и мехов допускается свободный размер изображения, который будет определять его размер Расположение спрайтов в моде<small> Modik └── content ├── sprites │ ├──blocks - Спрайты блоков, все текстуры для которых нет подпапок складываюстся сюда. | | ├──conveyors -Подпапка для конвееров. | | ├──drills -Подпапка для буров. | | ├──environment -Подпапка для текстур пола. | | ├──turrets -Подпапка для туррелей. | | └──units -Подпапка для заводов юнитов. │ ├──items - Спрайты предметов. │ ├──mechs - Спрайты мехов. │ ├──units - Спрайты юнитов. │ └──zones - Спрайты карт.</small> === Мультиязычность ===Наверное, самое простое для добавления.#Узнаём специальную категорию созданной вами вещью. Специальная категорию можно узнать в разделе Код. Ниже приведено обрезанное древо.<pre>└── Modik ├── bundles │ └── bundle.properties │ └── bundle_ru.properties</pre>#Создаём в папке <code>Modik/bundles</code> файл(если вы не создали ранее).*Если хотите добавить строки для английского, то выберите файл <code>bundle.properties</code>*Если хотите добавить строки для русского, то выберите файл <code>bundle_ru.properties</code>#Добавляем строку:</br>СпециальнаяКатегория.НазваниеВещи.name(имя)/description(описание)= <Вставить текст></br>'''Пример.'''Например, я хочу добавить для жидкости <code>lava</code> название и описание другое на русском.#Переходии в файл <code>bundle_ru.properties</code>#Пишем следующее:* <pre>liquid.lava.name = Лава</pre>*Нажимаю <code>Enter</code>*<pre>liquid.lava.description = Очень горячая жидкость.</pre>=== Звуки === == Учим английский ==Было перемещено [[Учим_английский|сюда]] для уменьшения высоты страницы.