Skip to content

Releases: denfry/TerraForge

Release list

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 30 Jul 12:42

Changed

  • Reworked the public README with a project banner, compatibility matrix, quick start, command
    reference and clearer preview-status messaging.
  • Added the MIT licence, contribution guide, support policy, code of conduct, security policy,
    issue forms, pull request template and release runbook.
  • Hardened GitHub Actions with immutable action SHAs, least-privilege permissions, wrapper
    validation, concurrency limits, exact artifact selection and SHA-256 release checksums.
  • Made every Gradle archive reproducible, added implementation metadata to jar manifests and
    embedded the TerraForge licence in distributable jars.
  • Added tag-driven Modrinth publishing for the Paper plugin.

Fixed

  • Fail closed when the prepared DEM directory cannot be opened instead of continuing with a
    partially initialized plugin.
  • Reject configured data paths that escape the TerraForge plugin directory.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 13:19

First tagged release. A world generated with this version has the real relief, coastlines, water
and land cover of the Earth, and nothing man-made.

World generation

  • Earth coordinate system: GeoPoint, EarthLocation, CoordinateTransformer, geodesic distances
    (Vincenty) and bearings.
  • Projections: Web Mercator, equirectangular and plate carrée, selected in terraforge.yml.
  • DEM pipeline: .tfdem tiles written offline, memory-mapped and sampled at runtime, with voids
    carried through preparation rather than filled.
  • Terrain generation: surface palette, vertical scaling, bedrock, sea level and ocean floor.
  • Water from prepared natural-water polygons; land cover from prepared .tflc grids, both falling
    back conservatively when coverage is missing.
  • Biomes derived from land cover, refined by elevation, latitude and water state.
  • Natural features only. Roads, buildings, railways, bridges, airports and power lines have no code
    path, and the plugin refuses to start if any of them is switched on.

Server

  • /earth — info, whereami (country, region, nearest place, real elevation), coords,
    distance, country, city, teleport city|country, cache, pregenerate, towny, debug
    (one-off report and a live per-player overlay) and reload, with tab completion for arguments.
  • /earth reload re-validates the config, clears caches and reloads the prepared geography without
    a restart. The generator is deliberately not hot-swapped: that would seam the world.
  • Bounded pregeneration driven from in-game, one chunk per tick.
  • Bounded, instrumented caches for DEM tiles, chunk samples and geography.

Integrations

  • Towny/NewTowny: towns annotated with real coordinates, elevation, country and region on
    creation, spawn move and rename, and forgotten on deletion. /earth towny refresh backfills towns
    that predate the plugin. SQLite writes run on their own thread; Towny and Bukkit are read only on
    the server thread.
  • BlueMap: cities, capitals, countries and regions published as TerraForge-owned marker sets,
    re-published after every BlueMap reload. Only sets prefixed terraforge- are ever touched, so
    Towny's own markers are left alone. GeoMarkerService lets other plugins register markers with or
    without BlueMap installed.

Offline CLI

  • prepare-dem — SRTM .hgt and north-up WGS84 GeoTIFF into .tfdem tiles.
  • prepare-boundaries, prepare-cities, prepare-landcover, prepare-geo — administrative
    boundaries, the GeoNames gazetteer with alternate names, land cover and natural water.
  • prepare-region — every dataset for one bounding box in a single pass and one transaction.
  • validate — overlapping boundaries, duplicate ISO codes and names, misplaced regions and cities,
    missing or duplicated capitals, plus a coverage report. --strict makes it a CI gate.
  • pregenerate — plans a chunk set and checks DEM coverage without writing anything.
  • info — what the configured world will look like.