Significant work done porting to headless engine

This commit is contained in:
barrulus 2025-08-04 00:01:48 +01:00
parent ab08dc9429
commit d1b07fff01
573 changed files with 50603 additions and 0 deletions

View file

@ -0,0 +1,41 @@
# Removed Rendering/UI Logic from lakes.js
## Analysis Result: No Rendering Logic Found
After careful analysis of the original `lakes.js` module, **no DOM manipulation or SVG rendering logic was found** that needed to be removed.
## Original Code Analysis
The original `lakes.js` module contained only:
1. **Data Processing Functions:**
- `detectCloseLakes()` - Pure computational logic for lake classification
- `defineClimateData()` - Mathematical calculations for lake climate properties
- `cleanupLakeData()` - Data cleanup and filtering operations
- `getHeight()` - Mathematical calculation for lake elevation
- `getName()` - Name generation using external Names module
2. **DOM Reads Only (No DOM Writes):**
- `byId("lakeElevationLimitOutput").value` - Configuration input (converted to config property)
- `heightExponentInput.value` - Configuration input (converted to config property)
## No Removed Code Blocks
There were **no code blocks removed** from the original module because:
- No `d3.select()` calls for DOM/SVG manipulation
- No `document.getElementById().innerHTML` assignments
- No DOM element creation or modification
- No SVG path generation or rendering
- No UI notification calls (like `tip()`)
- No direct DOM manipulation whatsoever
## Conclusion
The original `lakes.js` module was already focused purely on data processing and mathematical calculations. The only browser dependencies were:
1. DOM reads for configuration (converted to config parameters)
2. Access to global state variables (converted to dependency injection)
3. External utility dependencies (converted to injected parameters)
All refactoring work was focused on **dependency injection** and **config parameter extraction** rather than removing rendering logic, as none existed in the original code.