Модификации
Тут маловато информации Если есть ещё - принесите её нам в жертву. Нам она нужна. Если по теме, конечно :3 |
Модификации — это неотъемлемая часть игры. С помощью них можно добавлять новые жидкости, блоки, руды. Модификации в Mindustry состоят из папки или zip-файла, и с файлом mod.json, а также набора спрайтов и файлов .json (для плагинов) или скомпилированных java-исходников в виде файлов .class (для модов), определяющих новый контент. Режим java-модов (с возможностью написания собственной логики для игры) на момент сборки 99 поддерживается только в пользовательских сборках.
ANDROID-ВЕРСИЯ ТЕПЕРЬ ПОДДЕРЖИВАЕТ МОДИФИКАЦИИ
Содержание
Скачивание специальной версии
Вообще этот пункт на данный момент не обязателен, но если вы хотите самые свежие фиксы загрузчика модов, то можете скачать специальную версию bleeding edge
- Тыкаем сюда.
Также есть полуавтоматическое скачивание.
- Тыкаем опять сюда.
- Ищем и скачиваем Mindustry-BE-Desktop-xxxx.jar, где xxxx — идентификатор версии.
Импорт модификации
Есть три способа импортировать модификацию. И все они простые
1. (только PC-версия) Скопируйте и вставьте папку/файл мода в папку mods Mindustry В Steam это находится в установочном каталоге Mindustry:
steam/steamapps/common/Mindustry/save/mods
Если у вас нет Steam-версии, то путь должен быть следующим:
%appdata%/Mindustry/mods
2. Заархивируйте папку с модификацией (не в отдельную папку, а лишь содержимое)(можете пропустить этот пункт, если мод уже находится в архиве).
2.1. Импортируйте через встроенный файловый менеджер игры:
Главное меню→Модификации→Импортировать модификацию. Это не рекомендуется для мододелов, т.к. вам нужно постоянно архивировать в мод.
3.Узнайте адрес к модификации на github и скопируйте имя пользователя+название репозитория.
3.1.Импортируйте через игру:
Главное меню→Модификации→Импортировать GitHub модификацию.
Создание модификации
Перед созданием НАСТОЯТЕЛЬНО рекомендуем почитать эту статью >>> JSON |
И ещё эту >>> Git |
- Переходим в директорию
- Для Steam:
steam/steamapps/common/Mindustry/mods
- Для остальных настольных:
%appdata%/Mindustry/mods
%appdata%/Mindustry/mods
- Создаём папку с любым названием. Желательно латиницей. Пусть название модификации будет
Modik
. - Создаём папки и файлы так же, как и в древе снизу. Если лень создавать, то можете скачать отсюда.
└── Modik ├── content │ └── blocks │ └── magma.json │ └── liquids │ └── lava.json │ │──items ├── mod.json ├── sounds │ ├── pewpew.mp3 │ └── pewpew.ogg └── sprites │ └── blocks │ └── liquids
Код
Подсказки!
- В большинстве случаев используется английский для создания модификаций. Если вы не знаете какой-то блок, то можно нажать сюда
- Прочитайте руководство по синтаксису JSON.
- Лучше используйте английский.
- Всему нужно тип. Всегда.
- Все блоки, предметы, мехи и т.д. имеют два одинаковых типа. Это name(имя) и description(описание).
Пример:
"name": "Zoloto" "description":"Золото (для тех, кто не знает английский)"
Блоки
Специальная категория:
blocks
Было перемещено сюда для уменьшения высоты страницы.
Предметы
Специальная категория:
item
Переменные | Значения | Описание |
---|---|---|
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 | Радиоактивность предмета |
Жидкости
Специальная категория:
Директория:
├── Modik ├── content │ └── liquids │ └── lava.json
liquid
Свойство | Описание | Примечание |
---|---|---|
temperature | Температура. 0.5 — это комнатная; 0 — очень холодная; 1 — знойная жара. | |
flammability | Воспламеняемость. Доступные значения: [0;1] 0 — полностью воспламеняется; Всё, что выше, может загореться при воздействии тепла 0.5+ — очень легко воспламеняется. | |
viscosity | Вязкость (Густота) 1 - Вязкая , желеобразная (При проливании жидкости ,она никогда не пропадёт) 0.5 - Вода (Пропадает через время) 0 - Маскимально жидкая (Моментально пропадает) | |
heatCapacity | Теплоёмкость количества тепла сохраняемого этой жидкостью. 0.4 — вода (прилично) Всё, что ниже, вероятно, менее плотно и хуже охлаждает. | |
explosiveness | Сила взрыва жидкости при перенагревании. 0 — никак 1 — ядерная бомба | |
flameColor | Цвет при взрыве жидкости. | Используйте только HEX цвета. |
color | Цвет жидкости. | Используйте только HEX цвета. |
effect | Эффект. | Эффекты |
Единицы (юниты)
Переменные | Значения | Описание | Примечание |
---|---|---|---|
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" | Звук смерти | - |
пример кода со всеми переменными(не советую так делать)
{ "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" } }
Патроны
Используется в Туррелях
Свойство | Описание | Примечания |
---|---|---|
speed | Скорость снаряда | Вещественное число |
damage | Урон | Вещественное число |
bulletWidth | Ширина снаряда | Вещественное число |
bulletHeight | Длина снаряда | Вещественное число |
shootEffect | Эффект выстрела | Название эффекта |
smokeEffect | Эффект после выстрела | Название эффекта |
ammoMultiplier | Кол-во снарядов | Вещественное число |
splashDamageRadius | Радиус Взрыва | Вещественное число |
splashDamage | Урон От взрыва | Вещественное число |
Пример
"Патрон": { "speed": 3.5, "damage": 19, "bulletWidth": 7, "bulletHeight": 9, "shootEffect": "shootSmall", "smokeEffect": "shootSmallSmoke", "ammoMultiplier": 1.0, "splashDamageRadius": 20, "splashDamage":10 }
Турели
Специальная категория:turret
.
Свойство | Описание | Примечание |
---|---|---|
name | Имя турели. | |
description | Описание турели. | |
targetAir | Турель стреляет по воздушным юнитам. | True или False. |
targetGround | Турель стреляет по наземным юнитам. | True или False. |
size | Размер турели. | В блоках. |
inaccuracy | Разброс. | |
reload | Перезарядка. | |
shootCone | Используется для взрывателя,конусность выстрела. | |
rotateSpeed | Скорость поворота турели. | |
shoots | Выстрелов за раз. | |
range | Дальность полёта пули. |
Вот пример:
{ "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" }
Мехи
Чтобы добавить новый мех, надо в папке content
создать папку mechs
, в ней у нас будет лежать JSON файл.
Свойство | Описание | Примечание |
---|---|---|
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.
Вот пример:
{ "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" } }
Оружие
Используется в юнитах и мехах.
Указывается как переменная weapon
.
Возможные свойства:
Свойства | Значения | Описание | примечание |
---|---|---|---|
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 до ∞ | - |
Пули
используется в оружии для юнитов\мехов
Эффекты
Эффект | Описание |
---|---|
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 | Эффект падения ядра |
Статус эффекты
Статус эффекты накладываются на некоторый объект на определенное время
Свойство | Описание | Примечание |
---|---|---|
none | Нет эффекта. | - |
burning | Эффект горения. | Наносит урон в течение времени |
freezing | Эффект заморозки. | Замедляет объект и уменьшает его броню |
wet | Эффект промокания. | Делает объект уязвимым к электрическому урону |
melting | Эффект плавления. | Наносит урон в течение времени и замедляет объект |
tarred | Эффект дегтя. | Замедляет объект и делает его уязвимым к огненному урону |
overdrived | Эффект ускорения. | Увеличивает скорость объекта и наносимый им урон |
shielded | Эффект защиты. | Увеличивает броню объекта в 3 раза |
boss | Эффект босса. | Увеличивает броню объекта и его урон в 3 раза |
shocked | Эффект шока. | - |
corroded | Эффект коррозии. | Наносит небольшой урон |
Спрайты
При добавлении название согласовывается с .json файлом.
Игра поддерживает только спрайты с разрешением .png .
Таблица размеров спрайта относительно размера блока.
Спрайт | Блок |
---|---|
32 х 32 | 1 х 1 |
64 х 64 | 2 х 2 |
96 х 96 | 3 х 3 |
128 х 128 | 4 х 4 |
При рисовке юнитов и мехов допускается свободный размер изображения, который будет определять его размер
Расположение спрайтов в моде
Modik └── content ├── sprites │ ├──blocks - Спрайты блоков, все текстуры для которых нет подпапок складываюстся сюда. | | ├──conveyors -Подпапка для конвееров. | | ├──drills -Подпапка для буров. | | ├──environment -Подпапка для текстур пола. | | ├──turrets -Подпапка для туррелей. | | └──units -Подпапка для заводов юнитов. │ ├──items - Спрайты предметов. │ ├──mechs - Спрайты мехов. │ ├──units - Спрайты юнитов. │ └──zones - Спрайты карт.
Мультиязычность
Наверное, самое простое для добавления.
- Узнаём специальную категорию созданной вами вещью. Специальная категорию можно узнать в разделе Код. Ниже приведено обрезанное древо.
└── Modik ├── bundles │ └── bundle.properties │ └── bundle_ru.properties
- Создаём в папке
Modik/bundles
файл(если вы не создали ранее).
- Если хотите добавить строки для английского, то выберите файл
bundle.properties
- Если хотите добавить строки для русского, то выберите файл
bundle_ru.properties
- Добавляем строку:
СпециальнаяКатегория.НазваниеВещи.name(имя)/description(описание)= <Вставить текст>
Пример.
Например, я хочу добавить для жидкости lava
название и описание другое на русском.
- Переходии в файл
bundle_ru.properties
- Пишем следующее:
liquid.lava.name = Лава
- Нажимаю
Enter
liquid.lava.description = Очень горячая жидкость.
Звуки
Учим английский
Было перемещено сюда для уменьшения высоты страницы.