TerraMath

Create custom terrain using mathematical functions and formulas for unique procedural world generation.

File Details

terramath-1.3.0-1.20.4+fabric.jar

  • R
  • May 13, 2025
  • 1.18 MB
  • 166
  • 1.20.4+2
  • Fabric

File Name

terramath-1.3.0-1.20.4+fabric.jar

Supported Versions

  • 1.20.4
  • 1.20.3
  • 1.20.2

Curse Maven Snippet

Fabric

modImplementation "curse.maven:terra-math-1149108:6524194"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

## Overview
Version 1.3.0 introduces significant improvements to the TerraMath mod, including performance optimizations, new mathematical capabilities, enhanced error handling, and  server compatibility.

## What's New

### Mathematical Capabilities
Constants Support: Added support for mathematical constants
  - Basic constants: pi (π), e, phi (φ)
  - Advanced constants: zeta3 (ζ3), catalan (K), alpha (α), delta (δ), omega (Ω)
  - All constants can be referenced by both symbol and name (e.g., π or pi)

### New Mathematical Functions
  - atan2(x,y) - Two-argument inverse tangent
  - root(x,n) - Calculate nth root of x
  - gcd(x,y) - Greatest common divisor
  - lcm(x,y) - Least common multiple
  - modi(x,y) - Modular inverse
  - and even more...

### Optimized Random Number Generation
  - rand() - Generate random number between 0 and 1
  - randnormal(mean,stdev) - Generate number from normal distribution
  - randrange(min,max) - Generate random number in specified range

### Noise Functions
  - perlin(x,y,z) - Perlin noise generator
  - simplex(x,y,z) - Simplex noise generator
  - normal(x,y,z) - Normal noise generator
  - blended(x,y,z) - Blended noise (combines multiple types)
  - octaved(x,z,octaves,persistence) - Octaved noise for more natural terrain

### Technical Improvements
- Formula Compilation: Formulas are now compiled into Java code using Janino rather than represented as node objects, significantly improving performance
- Error Handling: Added detailed syntax error handling with user-friendly notifications
- Dedicated Server Compatibility: Improved support for dedicated servers
  - Server configuration file handling
  - Fixed loading of noise settings from world data
  - Added notification system for corrupted formulas

### User Experience
  - New config system
  - Larger formula input field (up to 1024 characters)
  - Added tooltip for long error messages
  - Updated config translations for multiple languages
  - Added modmenu description translation support

### Bug Fixes
- Fixed function shadowing when one name is a prefix of another
- Prevented null exceptions caused by integer division by zero
- Fixed checkbox state persistence
- Improved formula validation and error handling
- Fixed noise settings loading from world data
- Resolved several UI positioning issues

### Developer Changes
- Reorganized math package into specialized subpackages (parser, formula, functions)
- Reorganized utility functions into subpackages
- Replaced HashMap with ConcurrentHashMap to prevent concurrency issues
- Added terrain information command for debugging
- Code cleanup and performance improvements throughout

## Removed Features
- Removed dependency on Architectury API
- Removed redundant 1.5x multiplier from the base formula

## Coming Soon
- More formula examples in the community Discord
- Additional noise types and combinations
- Further performance optimizations for complex formulas