You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b8cf0df
Browse filesBrowse the repository at this point in the historyBrowse files
Shane Wall
committed
Add baked auto-connectors and navmesh compatibility coverage
Introduce bake-time auto-connectors generated from paint-layer height boundaries, including dock settings, persisted level state, and a new HFAutoConnector generator integrated into HFBakeSystem post-processing.
Scope connector generation out of selection-only bakes, preserve navmesh baking in that path, and harden navmesh parsed-geometry configuration behind a version-safe helper that supports both geometry_parsed_geometry_type and parsed_geometry_type.
Expand automated coverage with dedicated auto-connector tests plus bake-system integration tests for connector generation, collision creation, navmesh settings propagation, parsed-geometry configuration, and helper branch behavior. Update docs and project changelog/roadmap entries to describe the feature and validation.
@@ -40,7 +40,7 @@ HammerForge is a single `addons/` folder. No external tools, no custom builds, n
40
40
41
41
|||
42
42
|---|---|
43
-
|**21 subsystems** + coordinator architecture |**1226 unit + integration tests** with CI on every push |
43
+
|**21 subsystems** + coordinator architecture |**1270 unit + integration tests** with CI on every push |
44
44
|**15 brush shapes** (box through dodecahedron) |**150 built-in prototype textures** for instant greyboxing |
45
45
|**Quake `.map`** + **glTF `.glb`** export |**.hflevel** native format with threaded I/O |
46
46
|**Customizable keymaps** (JSON) |**Plugin API** for custom tools |
@@ -120,7 +120,7 @@ Grid-based paint layers with chunked storage for large worlds:
120
120
-**Displacement surfaces:** Source-style subdivided face grids (power 2-4) with Raise/Lower/Smooth/Noise/Alpha paint modes, sew adjacent displacements, elevation scale
121
121
-**Convert Selection to Heightmap:** select brushes → rasterize top faces → create sculptable terrain layer
122
122
-**Material blending:** four-slot shader with per-cell blend weights painted directly on the grid
123
-
-**Auto-connectors:** ramp and stair mesh generation between layers at different heights
123
+
-**Auto-connectors:** ramp and stair mesh generation between layers at different heights, auto-generated during bake with mode selection (Ramp/Stairs/Auto), configurable step height and width
124
124
-**Foliage & Scatter brush:** circle/spline shapes, density preview via MultiMesh (Dots/Wireframe/Full), slope/height filtering, align-to-normal, commit as permanent MultiMeshInstance3D
125
125
-**Region streaming:** sparse chunk loading for open worlds
- 55 new tests across 2 files (test_displacement 40, test_bevel 15). Total: **1172 tests across 69 files**.
235
235
236
-
## Next (Wave 2c remaining)
237
-
- Material atlasing for large scenes.
236
+
## Done (Material Atlasing — Draw-Call Reduction)
237
+
-**Material atlas** (`HFMaterialAtlas`): shelf bin-packing of albedo textures into single atlas (up to 4096x4096). 2px gutter padding with edge-pixel extension. Half-texel UV inset. Per-face tiling detection splits hardware-repeat faces into separate surfaces. Baker `bake_from_faces()` integration with `remap_uv()`. `bake_use_atlas` LevelRoot property + dock checkbox + state persistence.
238
+
- 26 new tests. Total: **1203 tests across 70 files**.
239
+
240
+
## Done (Merge Tool — Brush Combination)
241
+
-**Merge brushes** (`HFBrushSystem.merge_brushes_by_ids()`): combine 2+ selected brushes into one CUSTOM brush. Full Transform3D pipeline (local→world→merged local), per-brush material_override as per-face material_idx. Ctrl+Shift+M keybinding, context toolbar Mrg button, command palette entry.
242
+
- 23 new tests. Total: **1226 tests across 71 files**.
0 commit comments