TerraLib

Library for the mod "seasons" made by Elias

9

Quick challenge

How far can you run before the mobs catch you?

TerraLib

🌍 TerraLib

A lightweight Fabric utility library for seasons, temperature, and world-persistent data. Designed to power seasonal survival mechanics with ease.

🚀 Features

* Events: Track days and transition between Spring, Summer, Autumn, and Winter. * Events: Per-player temperature simulation with built-in effects (freezing/overheating). * Events: Easy, namespaced NBT storage for saving data directly to world files. * Events: Custom hooks for `SEASON_CHANGED`, `DAY_CHANGED`, and `PLAYER_TEMP_CHANGED`.

🛠 Setup for Developers

Add the following to your `build.gradle`: ```gradle repositories { maven { url = "https://api.modrinth.com/maven" } }

dependencies { modImplementation "maven.modrinth:terralib:YOUR_VERSION" include "maven.modrinth:terralib:YOUR_VERSION" // Recommended: bundle the lib } ```

📖 Quick Start

Check Current Season ```Java SeasonAPI.Season current = SeasonAPI.getSeason(); if (current == SeasonAPI.Season.WINTER) { // Do winter stuff } ```

Save Custom World Data

```Java TerraWorldData data = TerraWorldData.get(world); data.putInt("my_mod", "some_value", 100); ```

Listen for Season Changes

```Java TerraLibEvents.SEASON_CHANGED.register((world, oldSeason, newSeason) -> { System.out.println("The world shifted from " + oldSeason + " to " + newSeason); }); ```

🖥️ Commands

TerraLib includes a debug suite for testing seasonal and temperature logic:

- /terralib season get: Displays current season, day, and forced status.

- /terralib season set <season>: Forces a specific season and anchors the time offset.

- /terralib season skip: Skips to the next season.

- /terralib temp get <player>: Views detailed temperature data and status labels.

📄 License

This library is available under the `MIT License`. Feel free to bundle it in your modpacks or use it as a dependency for your own Fabric mods.

ADS