This commit is contained in:
Vicente Ferrari Smith 2026-02-03 10:19:36 +01:00
parent ee790cf700
commit c6fdd68afe
4 changed files with 45 additions and 22 deletions

View File

@ -5,7 +5,7 @@ const shared = @import("shared");
const server = @import("server.zig"); const server = @import("server.zig");
const enet = @import("c.zig").enet; const enet = @import("c.zig").enet;
pub fn spawn(chunk: *shared.chunk.Chunk, comptime T: type, allocator: std.mem.Allocator, value: T) !void { pub fn spawn(allocator: std.mem.Allocator, chunk: *shared.chunk.Chunk, comptime T: type, value: T) !void {
std.debug.assert(value.id == shared.entity.INVALID_ID); std.debug.assert(value.id == shared.entity.INVALID_ID);
const id = server.next_entity_id; const id = server.next_entity_id;
@ -21,7 +21,7 @@ pub fn spawn(chunk: *shared.chunk.Chunk, comptime T: type, allocator: std.mem.Al
} }
} }
std.log.info("{}", .{entity.to_message()}); // std.log.info("{}", .{shared.protocol.makeSpawnMessage(T, entity)});
// serialize entity // serialize entity
var buffer: [128]u8 = undefined; var buffer: [128]u8 = undefined;
@ -32,6 +32,18 @@ pub fn spawn(chunk: *shared.chunk.Chunk, comptime T: type, allocator: std.mem.Al
var writer = bufzilla.Writer.init(&fixed); var writer = bufzilla.Writer.init(&fixed);
try writer.writeAny(msg); try writer.writeAny(msg);
// std.log.info("{s}", .{fixed.buffered()});
var buffer2: [4096]u8 = undefined;
var fixed2 = std.io.Writer.fixed(&buffer2);
var inspector = bufzilla.Inspect(.{}).init(fixed.buffered(), &fixed2, .{});
try inspector.inspect();
std.log.info("{}", .{msg});
std.debug.print("{s}\n", .{fixed2.buffered()});
// const encoded = fixed.buffered(); // const encoded = fixed.buffered();
// const packet = try znet.Packet.init(encoded, 0, .reliable); // const packet = try znet.Packet.init(encoded, 0, .reliable);

View File

@ -47,12 +47,16 @@ pub fn main() !void {
var the_chunk = try shared.chunk.initChunk(allocator); var the_chunk = try shared.chunk.initChunk(allocator);
defer shared.chunk.deinitChunk(&the_chunk, allocator); defer shared.chunk.deinitChunk(&the_chunk, allocator);
try chunk.spawn(&the_chunk, shared.entity.Soldier, allocator, .{ try chunk.spawn(
allocator,
&the_chunk,
shared.entity.Soldier,
.{
.hp = 10,
.pos = zm.f32x4(1, 0, 0, 0), .pos = zm.f32x4(1, 0, 0, 0),
.vel = zm.f32x4(0, 0, 0, 0), .vel = zm.f32x4(0, 0, 0, 0),
.hp = 10, }
);
});
var old_time = std.time.nanoTimestamp(); var old_time = std.time.nanoTimestamp();

View File

@ -13,9 +13,9 @@ pub const EntityKinds = .{
pub const Soldier = struct { pub const Soldier = struct {
id: id = INVALID_ID, id: id = INVALID_ID,
hp: i32,
pos: zm.Vec, pos: zm.Vec,
vel: zm.Vec, vel: zm.Vec,
hp: i32,
pub fn update(self: *Soldier) void { pub fn update(self: *Soldier) void {
self.pos += self.pos + self.vel; self.pos += self.pos + self.vel;

View File

@ -50,31 +50,38 @@ pub fn makeSpawnMessage(comptime T: type, e: T) Message {
pub const Soldier_v1 = struct { pub const Soldier_v1 = struct {
id: entity.id = entity.INVALID_ID, id: entity.id = entity.INVALID_ID,
pos: zm.Vec,
hp: i32, hp: i32,
pos: zm.Vec,
vel: zm.Vec,
we: struct {
hell: i32,
},
pub fn init(soldier: entity.Soldier) Soldier_v1 { pub fn init(soldier: entity.Soldier) Soldier_v1 {
return .{ return .{
.id = soldier.id, .id = soldier.id,
.pos = soldier.pos,
.hp = soldier.hp, .hp = soldier.hp,
.pos = soldier.pos,
.vel = soldier.vel,
.we = .{ .hell = 666 },
}; };
} }
pub fn encode(self: Soldier_v1, w: *std.Io.Writer) !void { // pub fn encode(self: Soldier_v1, w: *std.Io.Writer) !void {
try w.writeInt(u64, self.id, .little); // try w.writeInt(u64, self.id, .little);
try writeVec4(w, self.pos); // try writeVec4(w, self.pos);
try writeVec4(w, self.vel); // try writeVec4(w, self.vel);
} // }
pub fn decode(r: *bufzilla.Reader) !Soldier_v1 { // pub fn decode(r: *bufzilla.Reader) !Soldier_v1 {
_ = r; // _ = r;
return .{ // return .{
// .id = try r.readInt(u64, .little), // // .id = try r.readInt(u64, .little),
// .pos = try readVec4(r), // // .pos = try readVec4(r),
// .vel = try readVec4(r), // // .vel = try readVec4(r),
}; // };
} // }
}; };
pub const Alien_v1 = struct { pub const Alien_v1 = struct {