Filter loader...
Filter versions...
Filter channels...

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
  • Ported to versions 1.20.2-1.20.4

New Features

  • Added formula input field in World creation tab for custom terrain generation
  • Implemented comprehensive mathematical function system including trigonometric, logarithmic and special functions
  • Added support for multiple variables (x, y, z) in formulas

Improvements

  • Optimized formula parsing and evaluation system
  • Added clear error messages for invalid formulas
  • Enhanced formula validation to prevent incorrect inputs

Bug Fixes

  • Fixed incorrect height calculations in extreme cases

Project members

addavriance

Member

Details

Licensed GPL-3.0-only
Published 9 months ago
Updated 4 months ago