implement infinite worlds with threaded chunk generation

This commit is contained in:
Alex Zenla
2024-09-03 09:18:35 -04:00
parent 6f985ce1c9
commit 5e40e12c8b
7 changed files with 133 additions and 18 deletions

View File

@ -87,8 +87,13 @@ class Game: GameDelegate {
// Regenerate current chunk
if regenChunk {
self.world.generate(chunkID: World.makeID(position: self.player.position))
let chunkID = World.makeID(position: self.player.position)
let chunk = self.world.generateSingleChunkUncommitted(chunkID: chunkID)
self.world.addChunk(chunkID: chunkID, chunk: chunk)
}
self.world.generateAdjacentChunksIfNeeded(position: self.player.position)
self.world.update()
}
func draw(_ renderer: Renderer, _ time: GameTime) {