mirror of
https://github.com/GTNewHorizons/ForgeMultipart.git
synced 2026-11-12 08:27:50 +00:00
cd5b8018789b06fcd9524abefbc5170ff5e76fc0
Converts the Block face of the API and its companion object. BlockMultipart$ is descriptor-identical to the reference including reduceMOP's Tuple2 return, and the class differs by exactly one descriptor: hasTileEntity$default$1, the accessor Scala emits for a default argument, which Java has no equivalent for. No jar references any member of this class. addCollisionBoxesToList keeps its descriptor; only its generic signature changes from Scala's List<?> to the raw List that vanilla's Block actually declares, which is the more faithful override. getClientTile returns TileMultipartClient, a Scala trait extending TileMultipart, so in bytecode it is a bare interface carrying none of the class's members; addHitEffects casts to reach the part list. Third occurrence of that pattern after JIconHitEffects and TRandomUpdateTick. Four anonfun classes removed, including two nested inner closures. Validated with 90 plain-JVM tests, a clean build, and the Java 8 Forge dedicated-server suite. Most of this class needs a player, a ray trace or a renderer, so breaking, selection, collision, pick block, activation and particles stay on the manual checklist.
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%