Plugin for building mindustry mods.
My mod template based on this plugin.
build.useAndroid - whether .dex file be built (If you do not know what it means, set this parameter false)
build.sdkRoot - androidSDK root path (example D:/soft/android-sdk)
copy - list of paths where .jar file will be copied
Main project and it's initialized subproject contains reference to its plugin objects.
Every plugin object contains settings field, that stores it's project/subproject settings.
Below described all tasks, settings and most useful methods.
Plugin object: nmp
nmpBuild- build desktop jarnmpDex- build dex jar (will be skipped iflocal.build.useAndroind)nmpBuildRelease- build combined jar (desktop and android (iflocal.build.useAndroind))nmpCopyBuildRelease- build combined jar (desktop and android (iflocal.build.useAndroind)) and copy it inlocal.copynmpGenerateModInfo- generatemod.jsonfile (only ifnmp.generateModInfo)
mindutsryVersion- mindustry and arc version that will be used as dependencies (defaultv146)modName- name of mod, affects output .jar name andmod.jsonmodVersion- name of mod, affects output .jar name,mod.jsonandproject.versionmodGroup- group of mod, affects output .jar name andproject.groupjabelVersion- jabel version that will be used to compile mod (default1.0.0)generateModInfo- whethermod.jsonbe generated (defaultfalse)sourceCompatibility- mod source bytecode version (allows newer features) (default 20th java version)
setupProjectAsAnnoProject(Project)- initialize annotations subproject projectsetupProjectAsToolsProject(Project)- initialize tools subproject project
Plugin object: nmpa
nmpaGenerateProcessorsFile- generatejavax.annotation.processing.Processorfile
sourceCompatibility- anno source bytecode version (allows newer features) (by default referenced tojabelVersionof main project)jabelVersion- jabel version that will be used to compile anno (by default referenced tosourceCompatibilityof main project)
Plugin object: nmpt
nmptRunTools- runs specified main class of tools project,
sourceCompatibility- tools source bytecode version (allows newer features) (by default referenced tojabelVersionof main project)jabelVersion- jabel version that will be used to compile tools (by default referenced tosourceCompatibilityof main project)
Arrow from A to B means that task A depends on task B. Dashed arrows means optional dependency (for example, task A will be performed without task B if it disabled by config).
Marks:
- cyan - added by plugin.
- yellow - default or added by another plugins
graph LR;
classDef nmpTask fill:#193d40
classDef defTask fill:#896300
subgraph mainProject [Main project]
direction TB
nmpCopyBuildRelease-->nmpBuildRelease
nmpBuildRelease-.->nmpDex
nmpBuildRelease-->nmpBuild
nmpDex-->nmpBuild
nmpBuild-.->nmpGenerateModInfo
nmpBuild-->mainProject:classes([classes])
end
subgraph annoProject [Anno project]
direction TB
annoProject:processResources([processResources])-->nmpaGenerateProcessorsFile
end
subgraph toolsProject [Tools project]
direction TB
nmptRunTools --> toolsProject:classes([classes])
end
class nmpCopyBuildRelease nmpTask
class nmpBuildRelease nmpTask
class nmpDex nmpTask
class nmpBuild nmpTask
class nmpGenerateModInfo nmpTask
class nmpaGenerateProcessorsFile nmpTask
class nmptRunTools nmpTask
class mainProject:classes defTask
class toolsProject:classes defTask
class annoProject:processResources defTask
mainProject ---> annoProject