Mody: co zawierają i jak je tworzyć — Guide
Mody dodają lub zmieniają zawartość i zachowanie w Mindustry — nowe bloki, przedmioty, ciecze, jednostki, sektory, planety i haki skryptowe — umożliwiając tworzenie przez społeczność nowych mechanik, grafik i map. Ta strona podsumowuje, jak są zbudowane mody, co zazwyczaj zawierają, jak je uzyskać lub tworzyć oraz praktyczne wskazówki dotyczące ich używania.
Co może zawierać mod
- Nowe bloki (mury, wieżyczki, fabryki, bloki energetyczne, przenośniki, bloki o specjalnym przeznaczeniu). Przykładowe typy pokazane w przykładach społecznościowych: niestandardowe mury, płytki ścienne i bloki obronne.
- Nowe przedmioty i ciecze (zasoby, paliwa, płyny typu custom liquids).
- Nowe typy pocisków/amunicji i mapowania amunicji dla wieżyczek (możesz dodać lub skopiować pociski i przypisać je do wieżyczek).
- Nowe jednostki i fabryki jednostek.
- Nowe planety, sektory i generatory sektorów (w tym ukryte lub stworzone przez społeczność sektory, które zastępują lub rozszerzają sektory generowane proceduralnie).
- Zasoby wizualne i warstwy rysowania dla bloków (regions, shadows, dodatkowe warstwy rysowania).
- Skrypty, obsługiwacze i procesory dla niestandardowych zachowań, w tym parsowanie treści Java/JavaScript.
- Nadpisania po stronie moda i powiązane zachowania bloków, które przekazują obsługę przedmiotów, cieczy i energii do innych kafelków.
Typowe wzorce techniczne i API
- Rozszerzanie zawartości: Mody zwykle rozszerzają klasy bazowe, aby tworzyć nową zawartość (np. rozszerzenie Wall, żeby zrobić niestandardowy mur, lub GenericCrafter dla fabryk). Przy tworzeniu zawartości konstruktor ustawia nazwę, opisy i flagi takie jak solid.
- Kopiowanie i modyfikowanie istniejącej zawartości: Możesz kopiować pociski, typy amunicji lub bloki, modyfikować pola (damage, visuals, requirements) i rejestrować je, unikając zmian w oryginałach.
- Akceptacja i obsługa przedmiotów/cieczy: Bloki mogą nadpisywać acceptItem/handleItem i acceptLiquid/handleLiquid, aby delegować do powiązanych kafelków lub implementować niestandardową logikę routingu. Haki energetyczne mogą podobnie delegować wywołania addPower do powiązanych kafelków.
- Rysowanie i warstwy: Bloki definiują regions i mogą określać dodatkowe warstwy rysowania (layer2) lub niestandardowe regiony cieni dla wizualizacji.
- Widoczność budowy i wymagania: Bloki zawierają pola buildVisibility, requirements, buildTime i size, aby kontrolować, kiedy/jak się pojawiają i jak są konstruowane.
Sektory, planety i zawartość mapy
- Mody mogą dodawać kompletne sektory i planety. Ukryte mapy ataków tworzone przez społeczność są używane przez niektóre modyfikowane kampanie i zastępują sektory generowane proceduralnie w seedach; autorzy często dodają notatki o zasobach i obronie (na przykład mapy z obfitymi Shock Mines lub końcowymi obronami z Plastanium/
Fazowy Mur).
- Planety można udostępnić lub uczynić widocznymi poprzez flagi konsoli podczas testów (np. Planets.
.accessible = Planets. .alwaysUnlocked = true).
Tworzenie modów: języki i narzędzia
- Java i JavaScript są wspierane przy tworzeniu modów. Workflow moda może używać Javy do zmian rdzeniowych lub skryptów w stylu ContentParser do tworzenia treści przypominającej JSON.
- Podstawowe zasoby moda: definicje dla items, liquids, blocks, units, bullets, planets/sectors i zlokalizowane pakiety (name/description) są typowe.
- Początkujący powinni zaczynać od kopiowania i edycji przykładowej zawartości (mury, wieżyczki, pociski) zamiast wymyślać wszystko od zera.
- Przydatne obszary do nauki modowania: items & liquids, fabryki (GenericCrafter), bloki produkcyjne/elektryczne, części rysowania wieżyczek, efekty/dźwięki/statusy, jednostki/bronie/umiejętności, planety/sektory/generacja oraz znajdowanie klas/pól w kodzie gry.
- Narzędzia i przepływy: Wielu modderów przełącza się między Java i JavaScript (JavaJS) i używa narzędzi społecznościowych (ACD, ContentParser) gdy to odpowiednie.
Instalacja i dostęp do modów
- Na Androidzie oficjalne wydania i beta buildy są dostępne przez Google Play (zostań testerem beta, aby otrzymywać najnowsze buildy). Buildy testowe na iOS są dystrybuowane przez TestFlight.
- Część zawartości modów lub ukryte przedmioty/planety można odblokować lub uczynić widocznymi przez konsolę deweloperską (naciśnij F8) ustawiając flagi widoczności planety lub obiektu na true.
- Zawartość oficjalnych modów: niektóre mody tworzone przez dewelopera(ów) są dystrybuowane jako „official mods” w społeczności; pojawiają się na listach modów, ale zachowują się jak mody społecznościowe.
Przykładowe fragmenty i wzorce
- Przypisanie niestandardowego pocisku do tabeli amunicji istniejącej wieżyczki (styl JavaScript):
- Example: Blocks.duo.ammoTypes.put(Items.pyratite, Blocks.hail.ammoTypes.get(Items.pyratite))
- Kopiowanie pocisku i zmiana właściwości:
- Example pattern: bullet = Blocks.hail.ammoTypes.get(Items.graphite).copy(); bullet.damage = 200; Blocks.hail.ammoTypes.put(Items.titanium, bullet)
- Minimalna definicja niestandardowego muru (w stylu JavaScript):
- Example pattern shows setting region, health, category, size, requirements, buildTime, icons and description when extending Wall.
Dobre praktyki i normy społeczności
- Ponownie używaj i kopiuj istniejącą zawartość tam, gdzie to możliwe, aby pozostać kompatybilnym z balansem gry i wizualami.
- Trzymaj klucze lokalizacyjne w Bundles (block.[name].name i block.[name].description), aby wspierać tłumaczenia.
- Testuj nowe sektory i planety przy użyciu flag widoczności konsoli przed publikacją.
- Wnoś raporty błędów lub pull requesty, jeśli potrafisz programować w Javie; dołącz do kanałów społecznościowych w celu tłumaczeń, dyskusji i informacji zwrotnej.
- Tworząc skomplikowane powiązane bloki, upewnij się, że nadpisane metody właściwie delegują funkcje accept/handle oraz routing mocy do powiązanych kafelków, aby uniknąć przerw w łańcuchach zaopatrzenia.
Gdzie używa się modów
- Mody zasilać mogą niestandardowe mapy survivalowe, sektory ataku stworzone przez społeczność, nową zawartość kampanii i narzędzia poprawiające komfort pracy twórców.
- Niektóre oficjalne i społecznościowe mody są pakowane jako dodatki i dystrybuowane przez przeglądarkę modów lub zewnętrzne hostingi.
Ten przewodnik obejmuje typowe struktury i przepływy pracy, na które natkniesz się używając lub tworząc mody do Mindustry: rozszerzanie zawartości, nadpisywanie zasobów i zachowań, dodawanie sektorów/planet oraz praktyczne kroki dotyczące testowania i dystrybucji.