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