viewById works again, layer still ontop of other things

This commit is contained in:
Harrison DiAmbrosio 2025-12-04 23:50:39 -05:00
parent 3ccf47e0be
commit 9186aeecd3
23 changed files with 282 additions and 181 deletions

43
src/lua/Fs.zig Normal file
View file

@ -0,0 +1,43 @@
const Fs = @This();
const std = @import("std");
const zlua = @import("zlua");
const Lua = @import("Lua.zig");
const gpa = std.heap.c_allocator;
pub fn joinpath(L: *zlua.Lua) i32 {
const nargs: i32 = L.getTop();
if (nargs < 2) {
L.raiseErrorStr("Expected at least two paths to join", .{});
return 0;
}
var paths = std.ArrayList([:0]const u8).initCapacity(gpa, @intCast(nargs)) catch {
return 0;
};
defer paths.deinit(gpa);
var i: u8 = 1;
while (i <= nargs) : (i += 1) {
if (!L.isString(i)) {
L.raiseErrorStr("Expected string at argument %d", .{i});
return 0;
}
const partial_path = L.toString(i) catch unreachable;
paths.append(gpa, partial_path) catch {
// TODO: tell lua?
return 0;
};
}
const final_path: []const u8 = std.fs.path.join(gpa, paths.items) catch {
// TODO: tell lua?
return 0;
};
_ = L.pushString(final_path);
return 1;
}