mirror of
https://github.com/PixelGuys/Cubyz.git
synced 2025-08-03 11:17:05 -04:00
Use readVec
and writeVec
where applicable (#1336)
* Use readVec and writeVec where applicable * Use writeVec in chunkRequest.sendRequest
This commit is contained in:
parent
f193eb68bd
commit
05d39a81b8
@ -120,12 +120,8 @@ pub const ItemDropManager = struct { // MARK: ItemDropManager
|
||||
var writer = utils.BinaryWriter.initCapacity(allocator, self.size*50);
|
||||
for(self.indices[0..self.size]) |i| {
|
||||
writer.writeInt(u16, i);
|
||||
writer.writeFloat(f64, self.list.items(.pos)[i][0]);
|
||||
writer.writeFloat(f64, self.list.items(.pos)[i][1]);
|
||||
writer.writeFloat(f64, self.list.items(.pos)[i][2]);
|
||||
writer.writeFloat(f64, self.list.items(.vel)[i][0]);
|
||||
writer.writeFloat(f64, self.list.items(.vel)[i][1]);
|
||||
writer.writeFloat(f64, self.list.items(.vel)[i][2]);
|
||||
writer.writeVec(Vec3d, self.list.items(.pos)[i]);
|
||||
writer.writeVec(Vec3d, self.list.items(.vel)[i]);
|
||||
}
|
||||
return writer.data.toOwnedSlice();
|
||||
}
|
||||
@ -468,12 +464,8 @@ pub const ClientItemDropManager = struct { // MARK: ClientItemDropManager
|
||||
var vel: [ItemDropManager.maxCapacity]Vec3d = undefined;
|
||||
while(reader.remaining.len != 0) {
|
||||
const i = try reader.readInt(u16);
|
||||
pos[i][0] = try reader.readFloat(f64);
|
||||
pos[i][1] = try reader.readFloat(f64);
|
||||
pos[i][2] = try reader.readFloat(f64);
|
||||
vel[i][0] = try reader.readFloat(f64);
|
||||
vel[i][1] = try reader.readFloat(f64);
|
||||
vel[i][2] = try reader.readFloat(f64);
|
||||
pos[i] = try reader.readVec(Vec3d);
|
||||
vel[i] = try reader.readVec(Vec3d);
|
||||
}
|
||||
mutex.lock();
|
||||
defer mutex.unlock();
|
||||
|
@ -738,11 +738,7 @@ pub const Protocols = struct {
|
||||
pub const id: u8 = 2;
|
||||
pub const asynchronous = false;
|
||||
fn receive(conn: *Connection, reader: *utils.BinaryReader) !void {
|
||||
const basePosition = Vec3i{
|
||||
try reader.readInt(i32),
|
||||
try reader.readInt(i32),
|
||||
try reader.readInt(i32),
|
||||
};
|
||||
const basePosition = try reader.readVec(Vec3i);
|
||||
conn.user.?.clientUpdatePos = basePosition;
|
||||
conn.user.?.renderDistance = try reader.readInt(u16);
|
||||
while(reader.remaining.len >= 4) {
|
||||
@ -767,9 +763,7 @@ pub const Protocols = struct {
|
||||
if(requests.len == 0) return;
|
||||
var writer = utils.BinaryWriter.initCapacity(main.stackAllocator, 14 + 4*requests.len);
|
||||
defer writer.deinit();
|
||||
writer.writeInt(i32, basePosition[0]);
|
||||
writer.writeInt(i32, basePosition[1]);
|
||||
writer.writeInt(i32, basePosition[2]);
|
||||
writer.writeVec(Vec3i, basePosition);
|
||||
writer.writeInt(u16, renderDistance);
|
||||
for(requests) |req| {
|
||||
const voxelSizeShift: u5 = std.math.log2_int(u31, req.voxelSize);
|
||||
|
@ -9,6 +9,7 @@ const ConnectionManager = network.ConnectionManager;
|
||||
const utils = main.utils;
|
||||
const vec = main.vec;
|
||||
const Vec3d = vec.Vec3d;
|
||||
const Vec3f = vec.Vec3f;
|
||||
const Vec3i = vec.Vec3i;
|
||||
const BinaryReader = main.utils.BinaryReader;
|
||||
const BinaryWriter = main.utils.BinaryWriter;
|
||||
@ -250,21 +251,9 @@ pub const User = struct { // MARK: User
|
||||
pub fn receiveData(self: *User, reader: *BinaryReader) !void {
|
||||
self.mutex.lock();
|
||||
defer self.mutex.unlock();
|
||||
const position: [3]f64 = .{
|
||||
try reader.readFloat(f64),
|
||||
try reader.readFloat(f64),
|
||||
try reader.readFloat(f64),
|
||||
};
|
||||
const velocity: [3]f64 = .{
|
||||
try reader.readFloat(f64),
|
||||
try reader.readFloat(f64),
|
||||
try reader.readFloat(f64),
|
||||
};
|
||||
const rotation: [3]f32 = .{
|
||||
try reader.readFloat(f32),
|
||||
try reader.readFloat(f32),
|
||||
try reader.readFloat(f32),
|
||||
};
|
||||
const position: [3]f64 = try reader.readVec(Vec3d);
|
||||
const velocity: [3]f64 = try reader.readVec(Vec3d);
|
||||
const rotation: [3]f32 = try reader.readVec(Vec3f);
|
||||
self.player.rot = rotation;
|
||||
const time = try reader.readInt(i16);
|
||||
self.timeDifference.addDataPoint(time);
|
||||
@ -407,15 +396,9 @@ fn update() void { // MARK: update()
|
||||
for(userList) |user| {
|
||||
const id = user.id; // TODO
|
||||
writer.writeInt(u32, id);
|
||||
writer.writeFloat(f64, user.player.pos[0]);
|
||||
writer.writeFloat(f64, user.player.pos[1]);
|
||||
writer.writeFloat(f64, user.player.pos[2]);
|
||||
writer.writeFloat(f32, user.player.rot[0]);
|
||||
writer.writeFloat(f32, user.player.rot[1]);
|
||||
writer.writeFloat(f32, user.player.rot[2]);
|
||||
writer.writeFloat(f64, user.player.vel[0]);
|
||||
writer.writeFloat(f64, user.player.vel[1]);
|
||||
writer.writeFloat(f64, user.player.vel[2]);
|
||||
writer.writeVec(Vec3d, user.player.pos);
|
||||
writer.writeVec(Vec3f, user.player.rot);
|
||||
writer.writeVec(Vec3d, user.player.vel);
|
||||
}
|
||||
for(userList) |user| {
|
||||
main.network.Protocols.entityPosition.send(user.conn, writer.data.items, itemData);
|
||||
|
Loading…
x
Reference in New Issue
Block a user