node implementation on spawn areas
This commit is contained in:
parent
6b39998232
commit
7c12f31ed9
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const rl = @import("raylib");
|
const rl = @import("raylib");
|
||||||
|
const str_node = @import("../road/node.zig");
|
||||||
const spawn_area = @import("spawn-area.zig");
|
const spawn_area = @import("spawn-area.zig");
|
||||||
const structures = @import("../structures.zig");
|
const structures = @import("../structures.zig");
|
||||||
|
|
||||||
@ -75,4 +76,15 @@ pub const Areas = struct {
|
|||||||
|
|
||||||
return valuesToRandomise;
|
return valuesToRandomise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn getNodes(self: *Areas) ![]str_node.Node {
|
||||||
|
var nodes = try self.allocator.alloc(str_node.Node, self.areas.len);
|
||||||
|
|
||||||
|
for (0..self.areas.len) |i| {
|
||||||
|
const node_location = self.areas[i].getNodeLocation();
|
||||||
|
nodes[i] = str_node.Node.init(node_location);
|
||||||
|
}
|
||||||
|
|
||||||
|
return nodes;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
@ -34,6 +34,13 @@ pub const SpawnArea = struct {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn getNodeLocation(self: *const SpawnArea) rl.Vector2 {
|
||||||
|
return rl.Vector2{
|
||||||
|
.x = self.location.x + @as(f32, @floatFromInt(self.width)) * globals.getScale() / 2.0,
|
||||||
|
.y = self.location.y + @as(f32, @floatFromInt(self.height)) * globals.getScale() / 2.0,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
pub fn draw(self: *const SpawnArea) void {
|
pub fn draw(self: *const SpawnArea) void {
|
||||||
const rect = rl.Rectangle{
|
const rect = rl.Rectangle{
|
||||||
.x = self.location.x,
|
.x = self.location.x,
|
||||||
@ -42,6 +49,5 @@ pub const SpawnArea = struct {
|
|||||||
.height = @as(f32, @floatFromInt(self.height)) * globals.getScale(),
|
.height = @as(f32, @floatFromInt(self.height)) * globals.getScale(),
|
||||||
};
|
};
|
||||||
rl.drawRectangleRec(rect, .dark_gray);
|
rl.drawRectangleRec(rect, .dark_gray);
|
||||||
// todo draw cars
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -41,7 +41,7 @@ pub fn main() !void {
|
|||||||
rl.clearBackground(.light_gray);
|
rl.clearBackground(.light_gray);
|
||||||
|
|
||||||
try road_manager.inputHandler();
|
try road_manager.inputHandler();
|
||||||
area_manager.draw();
|
|
||||||
road_manager.draw();
|
road_manager.draw();
|
||||||
|
area_manager.draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const rl = @import("raylib");
|
const rl = @import("raylib");
|
||||||
|
const area_str = @import("../area/areas.zig");
|
||||||
const road_str = @import("road.zig");
|
const road_str = @import("road.zig");
|
||||||
const road_data = @import("road-data.zig");
|
const road_data = @import("road-data.zig");
|
||||||
const node_str = @import("node.zig");
|
const node_str = @import("node.zig");
|
||||||
@ -226,4 +227,11 @@ pub const RoadManager = struct {
|
|||||||
self.setDefaultColour();
|
self.setDefaultColour();
|
||||||
self.selected_road = null;
|
self.selected_road = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn getAreaNodes(self: *RoadManager, areas: area_str.Areas) !void {
|
||||||
|
const nodes = try areas.getNodes();
|
||||||
|
defer self.allocator.free(nodes);
|
||||||
|
|
||||||
|
try self.nodes.appendSlice(nodes);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user