From eb0c1721dac90fae0e00f428be7a2f8ef1801807 Mon Sep 17 00:00:00 2001 From: Tangent Date: Sun, 19 Jul 2026 09:29:54 -0600 Subject: [PATCH] overview --- src/main.lua | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/main.lua b/src/main.lua index 26cd409..d6b7d64 100644 --- a/src/main.lua +++ b/src/main.lua @@ -50,7 +50,8 @@ local biomes = { } love.load = function() - map.size = 150 + map.size = 500 + map.tile_size = 1 map.altitude = heightmap.create(map.size, map.size, 0, 1) map.temperature = heightmap.create(map.size, map.size, 0, 1) map.humidity = heightmap.create(map.size, map.size, 0, 1) @@ -86,7 +87,7 @@ love.load = function() end -- planetizer! - map.terrain = {} + map.terrain = {w = map.size, h = map.size} local radius = (map.size / 2)^2 for x = 0, map.size do map.terrain[x] = {} @@ -110,37 +111,37 @@ love.load = function() end end +local camera = { + x = 0, y = 0, + speed = 500, +} love.update = function(dt) lovebird.update() + + if love.keyboard.isDown("w") then + camera.y = camera.y - camera.speed * dt + end + if love.keyboard.isDown("s") then + camera.y = camera.y + camera.speed * dt + end + if love.keyboard.isDown("a") then + camera.x = camera.x - camera.speed * dt + end + if love.keyboard.isDown("d") then + camera.x = camera.x + camera.speed * dt + end end +local window_width, window_height = love.graphics.getDimensions() love.draw = function() - local tile_size = 2 + love.graphics.translate(window_width / 2 - (map.size * map.tile_size) / 2 - camera.x, window_height / 2 - (map.size * map.tile_size) / 2 - camera.y) - for x = 0, map.altitude.w do - for y = 0, map.altitude.h do - -- raw heightmap - local value = map.altitude[x][y] - if value then - love.graphics.setColor(value, value, value, 1) - love.graphics.rectangle("fill", x * tile_size, y * tile_size, tile_size, tile_size) - end - - -- temperature map - local value = map.temperature[x][y] - love.graphics.setColor(value, 0, 0, 1) - love.graphics.rectangle("fill", map.size * tile_size + x * tile_size, y * tile_size, tile_size, tile_size) - - -- humidity map - local value = map.humidity[x][y] - love.graphics.setColor(0, 0, value, 1) - love.graphics.rectangle("fill", x * tile_size, map.size * tile_size + y * tile_size, tile_size, tile_size) - - -- "naive" biomed map + for x = 0, map.size do + for y = 0, map.size do local value = map.terrain[x][y] if value then love.graphics.setColor(value) - love.graphics.rectangle("fill", map.size * tile_size + x * tile_size, map.size * tile_size + y * tile_size, tile_size, tile_size) + love.graphics.rectangle("fill", x * map.tile_size, y * map.tile_size, map.tile_size, map.tile_size) end end end