90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

terramath-1.3.0-1.20.6+forge

Changelog

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

New Commands

  • Added /terramath [info|formula|settings] command to display information about the world settings, current formula, or configuration settings.
  • Added /formula command that outputs the current terrain generation formula in a copyable format for easy sharing.

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

Files

terramath-1.3.0-1.20.6+forge.jar(1.18 MiB) Primary Download

Project members

addavriance

Member

Details

Licensed GPL-3.0-only
Published 7 months ago
Updated 2 months ago