First of all, apologies for not posting updates for a while. Having said that, it’s time for a new one!

As always, we’re going to start with a selection of mods to keep an eye on:

  • Aether Legacy has a Fabric port! While still rather invasive in its implementation, it’s still a new frontier for the community,
  • Draylar’s take on battle towers,
  • RetroExchange for fans of transmutation stones,
  • TIS-3D, in case all of the multithreading going on recently made you want to mess with multithreading inside your multithreaded game, and so forth.

Let’s see what changed in the past month.

Yarn

Yarn, of course, is our mappings set - and we’re still well on our way to increasing coverage:

Type Yarn 19w03c.4 Yarn 19w07a.13 Total Change
Classes 87.09% 90.99% +3.90%
Fields 68.75% 74.53% +5.78%
Methods 67.24% 70.85% +3.61%

In short: Step by step. As always, keep contributing!

Fabric (API)

The API module has finally seem some much-needed refactors:

  • a general reorganization of the structure coinciding with a particularly breaking snapshot, making the API user and API developer areas more clearly separated;
  • new, cleaner and more reusable event API,
  • new, more powerful and cross-operative networking hook system.

However, due to the attention other modules need, it still isn’t quite moving at the pace we would like it to. New features (such as pick block hooks) are trickling in, however, and modders are making great mods even without them!

One of the biggest features - a set of extended static rendering hooks - has finally reached close-to-final review stages after two months and dozens of hours of arguing and re-refactoring. More will be said about them soon - they should open doors to a large variety of mod features which could not adequately utilize Fabric to date!

Fabric Loader

As mentioned last month, Fabric Loader has three key areas needing work: versioning, JAR-in-JARs and configuration. Let’s see where we stand on each of them.

  • Versioning is ready to go - the PR is about to be merged. However, format extensions for more powerful dependency definition and resolution are still required, and are being discussed as we speak.
  • JAR-in-JARs are predicated on the above, but should not take long for a “quick and dirty” implementation to crop up once this (and some Loom changes mentioned below) are done.
  • Configuration has become a local in-joke and is unfortunately stuck. Brave people are welcome to take up the subject again, but the current developers are likely to tackle it only after the list of other important things has been exhausted. For now, JSONs or Java .properties can be used as a workaround.

Fabric Loader 0.4.0 will also bring other features:

  • Many refactors, improvements and compatibility improvements for Loom,
  • Support for many more versions of Minecraft (and many more things in general) than just 1.14 snapshots,
  • Cleanly defined API for common operations instead of calling Loader internals,
  • Hopefully, a documented fabric.mod.json format!

Fabric Loom

Fabric Loom is our Gradle duct tape. A developer has stepped up to rewrite it to be a Gradle plugin, not just duct tape, and we should be able to share more about it soon. All I can say for now is that the resulting features and much improved usage (fewer bugs, better IDE support, better plugin interop, etc.) will be welcomed across the whole development community.

Once the rewrite hits, we can begin adding additional features to Loom, such as proper support for JAR-in-JARs.

Closing Thoughts

A bit slow, but steady! I’m thankful for the community which continues to back us and provide new, exciting content and showcases, as well as contributes to Fabric, helping us help you help us all. Thanks!