TerraLib
Library for the mod "seasons" made by Elias
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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.