Перейти к содержимому
Mineforgian

Nifty

A cross-platform library mod for transfer, machinery, networking, UI and more.

Загрузки
703
Подписчики
2
Обновлён
20 ноября 2022 г.
Лицензия
GPL-2.0-only

Опубликован 15 ноября 2022 г.

Nifty

Nifty is a cross-platform library mod providing simplified systems for transfer, machinery, networking, UI and more, on both Forge and Fabric. If you're grabbing this mod as a dependency, don't worry about the ramblings below.

Nifty is used as a library for most of my other mods to ease cross-platform development and lessen code duplication; it also does introduce its own systems that are vastly useful though with Aspects and transfer functionality.

Info

Feel free to use Nifty in any of your own projects, as a mod dependency or within a modpack. See the LICENSE file for more information. Contribution is also heavily appreciated; if you find Nifty is lacking a feature you think would fit, let us know in the issues.

The API is pretty extensively documented through the Javadoc.

Features (for developers)

  • Aspects
    • System that looks something like a cross between Forge's capabilities and the Fabric API lookups
    • Very similar implementation to capabilities; block entities etc can implement an interface to provide an aspect
    • The aspects are then wrapped in a lazy optional, much like forge, and recognize when they are invalidated
  • Fully featured simulation-based transfer system for items, fluids, and energy
    • Simple handler implementations for use in your own systems
    • FluidStack system that gets wrapped on Forge and defers to FluidVariants on Fabric
    • Wrappers on both Forge and Fabric
    • Full mod support: on Forge, uses default item, fluid and FE systems; on Fabric, uses Fabric API transfer systems and Team Reborn's Energy API
    • Also includes abstracted implementations for simple transfer of your own custom types
  • Component UI sytem (InputWidgets) stolen from my API in Logic Networks, which will eventually be swapped to depend on this one
  • Some rendering helper methods
  • Base blockentity, menu, and block implementations simplifying machine creation
  • Platform information and utilities, accessors, etc
  • Networking system for simple packet registration and handling, reminiscent of Forge's SimpleImpl
  • More in the works!

Ченджлог

v1.1.0Релиз1.19.2 · 20 ноября 2022 г.

Added

  • RecipeIngredient and implementations for more modular item, fluid ingredients etc.
  • RecipeOutput, RecipeOutputSet, and item/fluid implementations
  • ModularRecipe for recipes that can input/output fluids and items, and can require processing times/energy consumption
  • FluidStack#getTooltip, along with a per-instance tooltip cache that is only created when it's queried for the first time.
  • FluidStack#setTag, because I guess I forgot it before oops
  • Drawable and its subclasses for configurable renderable things that aren't Gizmos - eventually Gizmos will be restructured to use this interface
  • Drawables with a bunch of convenient drawable instances, such as slots, recipe arrows (with filling variants), burn indicators etc.

Changed

  • Moved some rendering things around, like Texture - now found among drawables.
  • Some refactoring with gizmos to account for the above additions and changes.
v1.1.0Релиз1.19.2 · 20 ноября 2022 г.

Added

  • RecipeIngredient and implementations for more modular item, fluid ingredients etc.
  • RecipeOutput, RecipeOutputSet, and item/fluid implementations
  • ModularRecipe for recipes that can input/output fluids and items, and can require processing times/energy consumption
  • FluidStack#getTooltip, along with a per-instance tooltip cache that is only created when it's queried for the first time.
  • FluidStack#setTag, because I guess I forgot it before oops
  • Drawable and its subclasses for configurable renderable things that aren't Gizmos - eventually Gizmos will be restructured to use this interface
  • Drawables with a bunch of convenient drawable instances, such as slots, recipe arrows (with filling variants), burn indicators etc.

Changed

  • Moved some rendering things around, like Texture - now found among drawables.
  • Some refactoring with gizmos to account for the above additions and changes.
v1.0.0Бета1.19.2 · 15 ноября 2022 г.

Beta release

v1.0.0Бета1.19.2 · 15 ноября 2022 г.

Beta release

Комментарии

Загружаем…