feat: P.0.lib.render integration — render hook + tile colors + lib-core.render dep

This commit is contained in:
Axel Meyer
2026-05-09 20:09:28 +02:00
parent 3bd61905c5
commit 86b7ce4b36
3 changed files with 15 additions and 10 deletions

View File

@@ -2,7 +2,7 @@
"id": "demo_tilemap",
"tile_size": 32,
"tiles": [
{"id": "grass", "walkable": true},
{"id": "stone", "walkable": false}
{"id": "grass", "walkable": true, "color": [110, 170, 80]},
{"id": "stone", "walkable": false, "color": [120, 120, 120]}
]
}

View File

@@ -1,14 +1,13 @@
local maps = require("lib-core.maps")
local maps = require("lib-core.maps")
local r_lib = require("lib-core.render")
-- inline stubs (extract in P.0.lib.{render,camera,input,player_control,actor,interaction})
local render = { hello = function() return "render stub" end }
-- inline stubs (extract in P.0.lib.{camera,input,player_control,actor,interaction})
local camera = { hello = function() return "camera stub" end }
local input = { hello = function() return "input stub" end }
local player_control = { hello = function() return "player_control stub" end }
local actor = { hello = function() return "actor stub" end }
local interaction = { hello = function() return "interaction stub" end }
-- Load + activate the demo map (P.0.lib.maps slice)
local demo_map = maps.load("maps/demo.map.json")
maps.set_current(demo_map)
@@ -18,22 +17,25 @@ local TARGET_FRAMES = 60
function init(ctx)
engine.print("spine-prototype init: maps loaded")
engine.print("inline stubs loaded: "
.. render.hello() .. ", "
.. camera.hello() .. ", "
.. input.hello() .. ", "
.. player_control.hello() .. ", "
.. actor.hello() .. ", "
.. interaction.hello())
local size = maps.size()
engine.print(string.format("map size: %dx%d", size.w, size.h))
local corner = maps.tile_at(0, 0)
local interior = maps.tile_at(5, 5)
engine.print("tile at (0,0): " .. corner.id)
engine.print("tile at (5,5): " .. interior.id)
engine.print("walkable at (0,0): " .. tostring(maps.is_walkable(0, 0)))
engine.print("walkable at (5,5): " .. tostring(maps.is_walkable(5, 5)))
engine.print(string.format("render: %d tiles per frame", size.w * size.h))
end
function render(ctx)
engine.render.clear_color(engine.render.rgb(20, 20, 30))
r_lib.draw_map()
end
function update(ctx, dt)

View File

@@ -4,5 +4,8 @@
"kind": "module",
"api": "^0.1",
"entry_point": "init.lua",
"deps": [{"id":"lib-core.maps","version":"0.1.0"}]
"deps": [
{"id":"lib-core.maps","version":"0.1.0"},
{"id":"lib-core.render","version":"0.1.0"}
]
}