Lazuli

Lazuli

Mod

A personal library mod aiming to make modding less tedious.

Client and server Library

119 downloads
1 follower
Follow Save
Lazuli Logo

Lazuli

Lazuli is a personal library mod made to make modding a little less tedious.

This library is the culmination of all the foundational and API code that I wrote for my mods. I started to dislike having to rewrite it all every time, so I decided that it's time to make Yet Another Library Mod.

You're welcome modpackers, now you'll have one extra mod to pad your mod counts with to make your modpacks look larger than they are :3

"Features"

Lazuli ultimately boils down to tons of helper functions, and there are quite a lot of them at that. Here are the "highlights" or "interesting" things (I guess).

  • Blocks
    • Generic "block with entity" helpers (AbstractBlockWithEntity)
    • Energy-capable BE helpers (IEnergyBE, AbstractEnergyBE, AbstractCapacitorBE, AbstractGeneratorBE)
    • Inventory-capable BE helpers (IInventoryBE, AbstractInventoryBE)
    • Fluid-capable BE helpers (IFluidBE, AbstractSingleTankBE)
    • "Zoned" block entities, ripped from Minefactorial (IZonedBE)
  • Client Things
    • Particle helpers
    • A 2D particle engine for GUIs or wherever else you want to use them (IParticleEngine2D, ScreenParticleEngine2D)
    • Screen Helpers
  • Crafting
    • Ingredients/outputs for in-world blocks, entities, item entities, and fluids
  • Collections (a more flexible WeightedRandomList implementation, HistoryList)
  • Colours (UnpackedColour, ColourPalette)
  • Energy (LazuliEnergyStorage, ProtectiveEnergyStorage)
  • Fluids
  • Inventories (ContainerUtils, RoundRobinInventory, GhostStackHandler)
  • Items (GhostItemStack)
  • Mathematics (CubicBezier, QuadraticBezier)
  • Menus (AbstractBlockEntityContainer, GhostSlot, SlotOutputOnly)
  • Misc helpers (TickScheduler)
  • World helpers (AABBHelpers, FakePlayerHelpers, Raycasting)

Usage

Lazuli is extensively documented using Javadocs. I also publish source and Javadoc JARs for you to include via Gradle.

To add Lazuli to your project, just add it as a modImplementation in Gradle:

// Applies to all Gradle plugins
repositories {
	// Modrinth maven is the easiest and most reliable place for me to publish at the moment.
	// I publish sources and JavaDocs here too.
	exclusiveContent {
		forRepository {
			maven("https://api.modrinth.com/maven")
		}
		filter {
			includeGroup("maven.modrinth")
		}
	}
}

dependencies {
	// Loom and Architectury Loom
	modImplementation("maven.modrinth:lazuli:VERSION")
}

Project members

EmmaTheMartian

Member

Details

Licensed MIT
Published 5 months ago
Updated 4 months ago