Commit Graph

25 Commits

Author SHA1 Message Date
7d06706400 feat: ChunkStreamer unload path and SpawnReady property 2026-06-01 11:35:35 +02:00
c1f0928344 feat: ChunkStreamer load path with target-set, dispatch, and diff application 2026-06-01 11:19:06 +02:00
dc74fdadcc feat: add streaming primitives (IChunkRenderer, IJobExecutor, NeighborSnapshots, ChunkJob) 2026-06-01 10:55:20 +02:00
39375b83ea refactor: extract shared ChunkMath.FloorDiv helper 2026-06-01 10:45:58 +02:00
6a68953c9a feat: World.SetBlock writes through to IChunkModificationStore 2026-06-01 10:35:10 +02:00
7c310ebc6a feat: add IChunkModificationStore and in-memory implementation 2026-06-01 10:16:46 +02:00
MDietermann
a8e94a27b2 fix: Water TextureCoord mapping 2026-05-31 22:15:14 +02:00
MDietermann
03cf0ceb07 feat: add WorldGenerator filling vertical chunk stacks 2026-05-31 22:08:41 +02:00
MDietermann
6196b38cc8 feat: add TerrainSampler with dense box-blur border smoothing 2026-05-31 22:06:30 +02:00
MDietermann
9880e4379c feat: add BiomeMap with per-cell climate classification 2026-05-31 21:58:34 +02:00
MDietermann
589904beec feat: add Plains/Desert/Mountains/Forest biomes and registry 2026-05-31 21:56:55 +02:00
MDietermann
294f3b82ef feat: add WorldConstants, SurfacePalette and IBiome contract 2026-05-31 21:54:10 +02:00
MDietermann
d0707fde9d feat: add deterministic VoronoiCells partition 2026-05-31 21:50:09 +02:00
MDietermann
44f53e8d50 feat: add seeded NoiseSource over FastNoiseLite 2026-05-31 21:46:53 +02:00
MDietermann
99b411bdbd build: vendor FastNoiseLite, remove unused SimplexNoise package 2026-05-31 21:45:02 +02:00
MDietermann
c81cd3c561 feat: derive atlas tile size from loaded texture dimensions 2026-05-31 21:43:53 +02:00
MDietermann
50f2bc4221 fix: complete WaterBlock IBlock implementation and BlockIds list 2026-05-31 21:41:25 +02:00
MDietermann
af7a83300f feat: 4x4 atlas with TileCoord-based UVs and grass faces 2026-05-31 21:39:42 +02:00
MDietermann
6eb17b6c5d feat: make Sand/Snow opaque and register Sand/Snow/Water blocks 2026-05-31 21:38:11 +02:00
MDietermann
4e14786668 New Atlas + Texture Pipeline 2026-05-31 20:32:46 +02:00
49d35cab5b feat: add multi-chunk world with cross-chunk face culling
Add a World that stores chunks in a Dictionary keyed by chunk
coordinate, with floor-division world<->chunk coordinate mapping
(correct for negative coords). The mesher takes an optional neighbor
sampler so faces at chunk borders are culled against adjacent chunks
instead of always meshing the shell. Render one ChunkRenderer per
chunk, placed via the model matrix. Reorganize the World layer into
Blocks/ and Chunk/ sub-namespaces.
2026-05-28 15:32:45 +02:00
70c986529b style: apply code-style cleanup (explicit types, this-qualification, switch expressions) 2026-05-28 13:29:13 +02:00
ecae0d4ce4 feat: add face-culled chunk mesher behind IChunkMesher 2026-05-28 12:00:26 +02:00
90be1035d4 feat: add Chunk as a dense 16-cubed id array 2026-05-28 11:56:49 +02:00
f4d3f9aab4 feat: add block model with IBlock flyweight and registry 2026-05-28 11:53:15 +02:00