mirror of
https://github.com/GTNewHorizons/ForgeMultipart.git
synced 2026-11-13 00:47:52 +00:00
b9d5e6ab523670fa8fb5756645c9beb0c19c9039
Replaces MultiPartRegistry.scala with a Java registry, its companion singleton and the three nested interfaces. All three interfaces are descriptor-identical to the reference and MODULE$ keeps every instance method downstream links against. Twelve jars reference this type. Both Scala-typed registerParts descriptors are preserved, since ForgeRelocationFMP links against the Function2 form and ProjRed against the IPartFactory2 Seq form. That leaves TileMultipart.partList as the last Scala-typed descriptor in the inventory. The two array overloads are declared varargs. The descriptor is unchanged and ACC_VARARGS does not affect linkage, but MicroblockClass called the Scala varargs form with a single string, which no longer resolves against a plain array parameter. readIDMap moves to java.util.List and the mangled accessors Scala emitted for its closures are gone; neither is referenced by any jar. Eight anonfun classes and one anonymous class are replaced by the two Java adapters the deprecated overloads build. Validated with 78 plain-JVM tests, a clean build, and the Java 8 Forge dedicated-server suite, which is the only layer where registration can run at all since it needs FML's active mod container.
ForgeMultipart
An API for dynamically handling different functional parts in the one block space.
Requirements:
- The latest version of CCL (files.minecraftforge.net/CodeChickenLib/)
- Forge
- A scala compatible IDE and project (For eclipse, download the scala eclipse plugin and right click on the project -> Add Scala Nature)
If you only want to use the API and not modify it:
- Download the latest dev version from files.minecraftforge.net/ForgeMultipart/
- Download the latest dev version of CCL.
- Place both mods in your /libs/ folder and link them as libraries in your IDE.
Implementation of all parts of the API should be clean and easy in Java. The minecraft multipart mod is implemented in java as a test case.
Languages
Scala
85.4%
Java
14.6%