Initial commit

This commit is contained in:
2026-04-28 17:50:46 +02:00
commit edfc54b927
10 changed files with 423 additions and 0 deletions

43
src/simulator.zig Normal file
View File

@@ -0,0 +1,43 @@
const std = @import("std");
const rl = @import("raylib");
const NodeManager = @import("infrastructure/node_manager.zig").NodeManager;
const RoadManager = @import("infrastructure/road_manager.zig").RoadManager;
pub const Simulator = struct {
allocator: std.mem.Allocator,
node_man: NodeManager,
road_man: RoadManager,
pub fn init(new_allocator: std.mem.Allocator) Simulator {
return .{
.allocator = new_allocator,
.node_man = .init(),
.road_man = .init(),
};
}
pub fn deinit(self: *Simulator) void {
self.road_man.deinit(self.allocator);
self.node_man.deinit(self.allocator);
}
pub fn draw(self: *const Simulator, pos: rl.Vector2) void {
rl.clearBackground(.light_gray);
self.road_man.draw();
self.node_man.draw(pos);
}
pub fn handleInput(self: *Simulator, pos: rl.Vector2) void {
self.handleMouseInput(pos);
}
fn handleMouseInput(self: *Simulator, pos: rl.Vector2) void {
if (rl.isMouseButtonReleased(.left)) self.leftClickEvent(pos);
}
fn leftClickEvent(self: *Simulator, pos: rl.Vector2) void {
// TODO
}
};