Skip to content

Releases: burnhamrobertp/bar-map-editor

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 30 Jun 23:19

Patch release: a large performance fix for the Layout node.

  • Layout node rasterization is dramatically faster, fixing the sluggish Layout edit view (the 2D spline/shape canvas + 3D preview). Splines were rasterised by measuring every output pixel against every curve sample -- O(pixels x samples) -- and re-run on the UI thread on each edit, so adjusting a river could freeze the editor for a fraction of a second per change regardless of GPU.
    • Both rasterisers now skip pixels outside the shape's bounding box.
    • The spline band is stamped per polyline segment using exact point-to-segment distance, so cost scales with the band area instead of pixels x samples.
    • Measured ~13x faster at preview resolution (about 230 ms down to 17 ms for a typical multi-point river with symmetry).
  • This also speeds up exporting any map that uses spline-based features (rivers, streams, canyons, coastlines, the Layout node generally).

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 20:49

A large release: a data-driven node registry, a unified properties/settings UI, a feature-macro library for common landforms, a new differential-erosion node, surface-detail normals, and editor/export parity work.

Node graph and registry:

  • Node types are now a single data-driven registry -- ports, parameters, palette entry, canvas colour, and source-node validation all derive from one descriptor per node, replacing the hand-maintained executor.rs match and scattered metadata.
  • Node parameters can be driven by graph connections (scalar parameter ports).
  • New Differential Erosion node: wears soft rock down while hard strata and slope-protected faces stand proud, forming mesas, benches, and stratified walls. Distinct from hydraulic erosion, which follows water flow and carves valleys.
  • New interactive Curve node editor for value remapping.
  • New Channel Split / Channel Merge for splitting a colour buffer into R/G/B/A heightmaps and recombining them; added coast-erosion and lightmap-bake compute operations.

Properties and settings:

  • Every settings modal and node-property panel now renders through one shared field renderer -- consistent rows, sliders that update live while dragging plus an editable value box, a reset-to-default control, and whole-row hover tooltips.
  • Settings modals gain a search filter and a Common/Advanced split so the fields most maps actually tune are up front and the rest stay one toggle away.
  • Node-property sliders show the registry default as a tick and a reset control; parameter descriptions surface as row tooltips.
  • Fixed-width label column and panel width so rows stay aligned instead of drifting as the panel settles.
  • Action-bar modals close on Escape; section help shows on hover instead of a separate info icon.

Feature-macro library:

  • Replaced the old biome macros with a data-driven feature-macro library of standalone landform generators (butte, mesa, plateau, basin, crater, chokepoint, land bridge, river, stream, canyon, island, ridge, and more), each with placement and configuration knobs.
  • River, stream, and canyon channels meander; islands get irregular coastlines; primitive features use irregular hand-drawn geometry rather than perfect shapes.
  • Path and area features seed editable splines so the initial shape can be drawn by hand.

Terrain and erosion:

  • Hydraulic erosion intensity is now resolution-independent (droplet count scales with grid area), so the low-res preview matches the full-res export instead of eroding far harder.
  • AutoTexture water bands and the CoastErosion shoreline anchor to the map's actual sea level.
  • Mirror symmetry seams are feathered to remove the hard copy line.
  • Reconciled hydraulic erosion defaults and dropped a dead method parameter.

Surface detail and normals:

  • Procedural tileable detail-normal generator with a detailNormalTex picker in the resources panel; presets render as a relief thumbnail gallery and are generated off the UI thread.
  • Surface Detail points at the splat-normal system; detailNormalTex is baked from the heightmap at export when left unset; the redundant heightmap-derived NormalMap node is gone.

Lava and water:

  • Lava is detected and emitted via mapconfig/lava.lua instead of being inferred from water damage.
  • Water damage is authorable, so caustic water can be set up.

Editor/export parity and CLI:

  • GPU-dispatched nodes now match the CPU export exactly; CPU and GPU noise generation are unified.
  • bar-cli: heightmap export command, a --gpu flag, full project validation in validate, and strict heightmap output in compile/export.

World Machine import tooling:

  • World Machine .tmd import-evaluation tooling with gap reports, plus link-topology and faithful-translation probes.

Node canvas:

  • New and imported nodes size to their port count, so a node is never created shorter than the height it could be manually resized down to.

Validation:

  • FinalComposition requires a texture input; full project validation runs in the CLI.

Bug fixes:

  • Slider handles stay clear of their neighbours at the value extremes.
  • Whole-row hover tooltips no longer cover the field controls they describe.
  • Default field values render in the normal text colour instead of a muted placeholder.
  • Identity modal labels are corrected and fields fill the row.

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 01 Jun 07:49

Full Changelog: v0.2.3...v0.2.4

  • Layout authoring is now a single unified Layout node, replacing the separate LayoutGenerator and SplineLayout nodes. One node holds a list of items, each independently an ellipse, rectangle, line, or freehand-drawn spline.
  • Layout nodes have a dedicated edit view: double-click the node to open a full-area tab with a 2D editing canvas on the left and a 3D preview on the right.
  • 2D canvas editor for Layout items
    • Tool dropdown picks ellipse, rectangle, line, or draw (freehand spline)
    • Drag to create a shape; Shift snaps line angles to 45-degree increments and constrains ellipses / rectangles to equal radii
    • Press a shape's body to select and drag it in one motion
    • Corner-resize handles anchor the opposite corner so the shape grows from where you grab; hold Shift for center-fixed scaling
    • Grid divisions match the map's dimensions, so a 4x4 map shows 4 main squares per axis with subtler sub-cells inside each
  • Layout 3D preview matches the Sculpt viewport in rendering quality and camera controls (orbit, pan, zoom)
  • Layout items can be mirrored across X, mirrored across both axes, or rotated 90 degrees from a single authored shape; mirror modes choose between replace and average blending for overlapping pixels
  • Demo .barproj projects under examples/spline-layout-demos/ and examples/symmetric-layout-demos/ showcase the new node

Bug fixes:

  • Slider edits in the Layout sidebar persist while dragging the bar (previously the value would visually snap back until release)

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 25 May 07:35

Full Changelog: v0.2.2...v0.2.3

  • Hide the command-prompt window when launching the installed Windows binary
  • Write tracing output to bme.log next to the binary on every launch, truncated each run, so logs are still recoverable when stdout is gone
  • Game archives in the Test-in-BAR dropdown now resolve to their real modinfo.lua identity instead of a literal $VERSION placeholder
    • Only archives actually installed at <install>/data/games/ appear -- the synthetic "Beyond All Reason (latest)" entry is gone
    • BAR-install paths configured one level too deep (.../data or .../data/games) are auto-normalised so resolution doesn't double-stack
  • Lock 3D Sculpt and Preview layouts when no hardware-accelerated wgpu adapter is detected
    • Editor starts on Node Graph in that case even if a 3D layout was last selected
    • Disabled menu entries explain why on hover
  • Linux GUI no longer crashes at startup on software-only Vulkan stacks (lavapipe / WSLg without GPU passthrough)
  • Compile worker catches panics and surfaces them as logged errors instead of silently disconnecting
  • Validation badge on action-bar buttons now sits on the corner instead of floating off the top-right edge

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 23 May 07:37

Full Changelog: v0.2.0...v0.2.1

  • Added path to BAR installation directory in Edit -> Preferences (previously autodetected)
  • Disabled test-in-bar button without valid path to BAR installation
  • Fix test-in-bar colliding with existing .sd7 and deleting it
  • Fix test-in-bar generating distinct directories for each map test
  • Fix test-in-bar failing due to invalid path to test directory
  • Importing .sd7 now removes version strings from the name, if present
    • The name + version fields should distinguish maps
  • Open Project errors if not targeting a .barproj directory
  • Recent Projects no longer includes the project you have presently open

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 23 May 00:59