mirror of
https://github.com/unmojang/node-minecraft-protocol.git
synced 2025-09-27 21:24:25 -04:00
Merge pull request #173 from rom1504/refactor_numeric
refactor numeric.js : all the functions were the same
This commit is contained in:
commit
84079bb0a8
@ -1,113 +1,3 @@
|
||||
module.exports = {
|
||||
'byte': [readByte, writeByte, 1],
|
||||
'ubyte': [readUByte, writeUByte, 1],
|
||||
'short': [readShort, writeShort, 2],
|
||||
'ushort': [readUShort, writeUShort, 2],
|
||||
'int': [readInt, writeInt, 4],
|
||||
'long': [readLong, writeLong, 8],
|
||||
'float': [readFloat, writeFloat, 4],
|
||||
'double': [readDouble, writeDouble, 8]
|
||||
};
|
||||
|
||||
function readByte(buffer, offset) {
|
||||
if(offset + 1 > buffer.length) return null;
|
||||
var value = buffer.readInt8(offset);
|
||||
return {
|
||||
value: value,
|
||||
size: 1,
|
||||
};
|
||||
}
|
||||
|
||||
function writeByte(value, buffer, offset) {
|
||||
buffer.writeInt8(value, offset);
|
||||
return offset + 1;
|
||||
}
|
||||
|
||||
function readUByte(buffer, offset) {
|
||||
if(offset + 1 > buffer.length) return null;
|
||||
var value = buffer.readUInt8(offset);
|
||||
return {
|
||||
value: value,
|
||||
size: 1,
|
||||
};
|
||||
}
|
||||
|
||||
function writeUByte(value, buffer, offset) {
|
||||
buffer.writeUInt8(value, offset);
|
||||
return offset + 1;
|
||||
}
|
||||
|
||||
function readFloat(buffer, offset) {
|
||||
if(offset + 4 > buffer.length) return null;
|
||||
var value = buffer.readFloatBE(offset);
|
||||
return {
|
||||
value: value,
|
||||
size: 4,
|
||||
};
|
||||
}
|
||||
|
||||
function writeFloat(value, buffer, offset) {
|
||||
buffer.writeFloatBE(value, offset);
|
||||
return offset + 4;
|
||||
}
|
||||
|
||||
function readDouble(buffer, offset) {
|
||||
if(offset + 8 > buffer.length) return null;
|
||||
var value = buffer.readDoubleBE(offset);
|
||||
return {
|
||||
value: value,
|
||||
size: 8,
|
||||
};
|
||||
}
|
||||
|
||||
function writeDouble(value, buffer, offset) {
|
||||
buffer.writeDoubleBE(value, offset);
|
||||
return offset + 8;
|
||||
}
|
||||
|
||||
|
||||
function readShort(buffer, offset) {
|
||||
if(offset + 2 > buffer.length) return null;
|
||||
var value = buffer.readInt16BE(offset);
|
||||
return {
|
||||
value: value,
|
||||
size: 2,
|
||||
};
|
||||
}
|
||||
function writeShort(value, buffer, offset) {
|
||||
buffer.writeInt16BE(value, offset);
|
||||
return offset + 2;
|
||||
}
|
||||
|
||||
function readUShort(buffer, offset) {
|
||||
if(offset + 2 > buffer.length) return null;
|
||||
var value = buffer.readUInt16BE(offset);
|
||||
return {
|
||||
value: value,
|
||||
size: 2,
|
||||
};
|
||||
}
|
||||
|
||||
function writeUShort(value, buffer, offset) {
|
||||
buffer.writeUInt16BE(value, offset);
|
||||
return offset + 2;
|
||||
}
|
||||
|
||||
function readInt(buffer, offset) {
|
||||
if(offset + 4 > buffer.length) return null;
|
||||
var value = buffer.readInt32BE(offset);
|
||||
return {
|
||||
value: value,
|
||||
size: 4,
|
||||
};
|
||||
}
|
||||
|
||||
function writeInt(value, buffer, offset) {
|
||||
buffer.writeInt32BE(value, offset);
|
||||
return offset + 4;
|
||||
}
|
||||
|
||||
|
||||
function readLong(buffer, offset) {
|
||||
if(offset + 8 > buffer.length) return null;
|
||||
return {
|
||||
@ -122,6 +12,39 @@ function writeLong(value, buffer, offset) {
|
||||
return offset + 8;
|
||||
}
|
||||
|
||||
function generateFunctions(bufferReader,bufferWriter,size)
|
||||
{
|
||||
var reader=function(buffer, offset)
|
||||
{
|
||||
if(offset + size > buffer.length) return null;
|
||||
var value = buffer[bufferReader](offset);
|
||||
return {
|
||||
value: value,
|
||||
size: size
|
||||
};
|
||||
};
|
||||
var writer=function(value, buffer, offset) {
|
||||
buffer[bufferWriter](value, offset);
|
||||
return offset + size;
|
||||
};
|
||||
return [reader, writer, size];
|
||||
}
|
||||
|
||||
var nums= {
|
||||
'byte': ["readInt8", "writeInt8", 1],
|
||||
'ubyte': ["readUInt8", "writeUInt8", 1],
|
||||
'short': ["readInt16BE", "writeInt16BE", 2],
|
||||
'ushort': ["readUInt16BE", "writeUInt16BE", 2],
|
||||
'int': ["readInt32BE", "writeInt32BE", 4],
|
||||
'float': ["readFloatBE", "writeFloatBE", 4],
|
||||
'double': ["readDoubleBE", "writeDoubleBE", 8]
|
||||
};
|
||||
|
||||
var types=Object.keys(nums).reduce(function(types,num){
|
||||
types[num]=generateFunctions(nums[num][0], nums[num][1], nums[num][2]);
|
||||
return types;
|
||||
},{});
|
||||
types["long"]=[readLong, writeLong, 8];
|
||||
|
||||
|
||||
|
||||
module.exports = types;
|
||||
|
Loading…
x
Reference in New Issue
Block a user