Moonlight Lib

Moonlight Lib


Moonlight Lib

Formerly Selene Library, this is a small set of utilities that offer a set of very specific features

As of now it contains the following:

  • Dynamic resource pack utilities

A set of utilities that allow creating dynamic runtime resource packs and datapacks. Also easily allows respriting and retexturing existing textures, specifically useful to add new wood based blocks.

  • Dynamic block set registration

 Allows mods to specify a block set (which can be for example a wood type). The mod then will scan all registered blocks and fill the block set up only to then allow mods to register blocks that depend on it.

This can't be easily done using traditional methods since the wood set itself depends on the registered blocks so registration must happen at a very specific time. This utility makes that task possible and easy to do. Note that it is still a form of dynamic registration which might have some drawbacks.

In a nutshell you have dynamic wood type support for your blocks. The wood set type already comes built-in.

  • Block Color API:A set of utilities which allows to detect any arbitrary modded block DyeColor as well as getting the equivalent block in a different color
    This works dynamically for any modded block or item
  • Custom map markers: 
      A complete system that allows to easily implement and add map decoration and map markers as well as control every aspect of them like rendering. Also allows storing simple data inside maps data offering a couple of hooks to use it too like on item tooltip.
     This system also offers a simple Data Driven implementation meaning you can easily register new markers with datapacks!

  • Dynamic Villager AI

 A helper system to easily and dynamically add tasks and modify villager schedules in a compatible way without overriding the whole existing AI. Also allows to properly add memory types

  • Custom first and third person animations:

  Allows modders to implement a simple interface in their items to allow it to have custom third and first person animations (like crossbows). 
 Includes simple and easy to use interfaces that can let you control first person and third person animations as well as a callback for rendering the item itself (similar to spyglass) directly in your item class

  • Grindstone achievement triggers:
      The mod adds a custom trigger that gets called when an item is passed through a grindstone that you can call in your mods advancements jsons

  • Soft fluid system:
      An entirely Data Driven custom virtual fluid system that goes on top of forge one and is designed to fit better in vanilla minecraft and having as main feature the ability to have multiple fluid containers items like bottles, bowls and buckets, as well as providing support for stews and drinks that can be consumed directly from a fluid tank. As opposed to the forge fluid system it has a base unit of 1 minecraft bottle (250 forge mb). The system also automatically generates all the needed fluids for already registered forge fluids and allows the user to override them or add to them easily. Fluids are virtual so they can only exist in modded container specifically for them

  •  Dispenser utilities:

 Some code that allows to easily register dispenser behaviors without overriding already existing ones. Also comes with builtin spawn egg and block placement behaviors

  • Multi-Loader utilities

    This includes some code to ease development in a multi loaded environment.
    These have been designed to be as simple as possible and easy to implement for a forge mod as for forge they simply wrap around its api and provide somewhat equivalent functionality for fabric. Following features are included:

    - Simple and unified registry system for both loader which also (for fabric) registers entries in order like forge registries

    - Config wrapper system which allows to develop for forge config and cloth config simultaneously. Includes synced common configs and config screen helpers

    - Common network code which allows to develop packets for both loaders

    - Common dynamic baked models and special item renderers

    - Basic support for forge recipe conditions

    - Many platform helper methods

For examples check the javadocs and the example folder included in the mod

Need a server? Check out Akliz, they have top brand servers just for modded minecraft.
Use code "supplementaries" to get 20% off and also support me in the process!