/mekhq

MekHQ is a java helper program for the MegaMek game that allows users to load a list of entities from an XML file, perform repairs and customizations, and then save the new entities to another XML file that can be loaded into MegaMek.

Primary LanguageJava

MekHQ

Table of Contents

  1. About
  2. Status
  3. Compiling
  4. Support
  5. License
  6. Dependencies

1. About

MekHQ is a Java helper program for the MegaMek game that allows users to load a list of entities from an XML file, perform repairs and customizations, and then save the new entities to another XML file that can be loaded into MegaMek. For more details, see our website and join our Discord.

2. Status

Type MM Status MML Status MHQ Status
Latest Release Release Release Release
Javadocs javadoc javadoc javadoc
License GPLv3 license GPLv3 license GPLv3 license
Build (CI) MM Nightly CI MML Nightly CI MHQ Nightly CI
Issues GitHub Issues GitHub Issues GitHub Issues
PRs GitHub Open Pull Requests GitHub Open Pull Requests GitHub Open Pull Requests
Code Coverage MegaMek codecov.io MegaMekLab codecov.io MekHQ codecov.io

Note that not everything has been implemented across the suite at this time, which will lead to gaps.

3. Compiling

  1. Install Gradle.

  2. Follow the instructions on the wiki for using Gradle.

4. Support

For bugs, crashes, or other issues you can fill out a GitHub issue request.

5. License

MekHQ is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
MekHQ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with MekHQ. If not, see <http://www.gnu.org/licenses/>.

Please see MekHQ/license.txt for more information.

6. Dependencies

These are all listed in the format "{ Project Name } ({ Optional - Alternate Project Name }) ({ Optional - Description }) : { Implemented Version } { Current Version Badge } : { Project Link }"

6.1. Internal Dependencies

MegaMek (MM) : N/A : https://github.com/MegaMek/megamek

MegaMekLab (MML) : N/A : https://github.com/MegaMek/megameklab

6.2. Build Script Dependencies

launch4j : 2.5.4 launch4j : https://github.com/TheBoegl/gradle-launch4j

grgit : 5.0.0 Maven Central : https://github.com/ajoberstar/grgit

6.3. Suitewide Dependencies

Flat Look and Feel (FlatLaf) (Expanded Themes, including Dark Mode) : 2.6 Maven Central : https://github.com/JFormDesigner/FlatLaf

Jakarta XML Bind API (JAXB API) (XML Setup) : 4.0.0 Maven Central : https://eclipse-ee4j.github.io/jaxb-ri/

Jakarta XML Bind Runtime (JAXB Runtime) (XML Setup) : 4.0.1 Maven Central : https://eclipse-ee4j.github.io/jaxb-ri/

Log4j2 (Logging) : 2.19.0 Maven Central : https://logging.apache.org/log4j/2.x/

JUnit Jupiter (Unit Testing) : 5.9.1 Maven Central : https://junit.org/junit5/

Mockito (Unit Testing) : 4.10.0 Maven Central : https://site.mockito.org/

6.4. MegaMek Dependencies

Jackson (Jackson JSON) (JSON setup used for the internal graphical preference setup) : 2.14.1 Jackson : https://github.com/FasterXML/jackson-core

SerialKiller (Java Deserialization Security) : Latest Develop : https://github.com/ikkisoft/SerialKiller

Jakarta Mail : 2.0.1 Maven Central : https://eclipse-ee4j.github.io/mail/

XStream (Legacy XML Setup) : 1.4.14 Maven Central : http://x-stream.github.io/

Apache Commons Text : 1.10.0 Maven Central : https://commons.apache.org/proper/commons-text/

Apache Freemarker : 2.3.31 Maven Central : https://freemarker.apache.org/ Update Note : You'll need to also increase the version of Freemarker being actively used in MegaMek's TemplateConfiguration.java file.

6.5. MegaMekLab Dependencies

Apache PDFBox : 2.0.27 Maven Central : https://pdfbox.apache.org/

Apache XMLGraphics Batik Bridge : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik Codec : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik Dom : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik Rasterizer : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik SVGGen : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics FOP : 2.7 Maven Central : https://xmlgraphics.apache.org/fop/

6.6. MekHQ Dependencies

Javax Vecmath : 1.5.2 Maven Central

Joda Time : 2.12.2 Maven Central : https://www.joda.org/joda-time/

Apache Commons CSV : 1.9.0 Maven Central : https://commons.apache.org/proper/commons-csv/

Apache Commons Math3 : 3.6.1 Maven Central : https://commons.apache.org/proper/commons-math/

Apache Commons Text : 1.10.0 Maven Central : https://commons.apache.org/proper/commons-text/

Commonmark : 0.21.0 Maven Central : https://github.com/commonmark/commonmark-java

JFreechart : 1.5.3 Maven Central : https://www.jfree.org/jfreechart/

Joda Money (Finances) : 1.0.3 Maven Central : https://www.joda.org/joda-money/

Mockito JUnit Jupiter (Unit Testing) : 4.10.0 Maven Central : https://site.mockito.org/