DOF/sqr/Core/BaseTool/BlobExClass.nut

67 lines
1.4 KiB
Plaintext

/*
文件名:BlobExClass.nut
路径:BaseClass/BaseTool/BlobExClass.nut
创建日期:2024-05-07 17:34
文件用途:拓展的Blob类
*/
class blobex extends blob {
//-----------------Metamethods--------------------//
function _typeof() {
return "blobex";
}
//-----------------Metamethods--------------------//
constructor(arg) {
//通过blob构造
if (typeof arg == "blob") {
base.constructor(arg.len());
writeblob(arg);
}
//直接构造
else {
base.constructor(arg);
}
}
function writeblob(B) {
base.writeblob(B);
seek(0);
}
function GetUShort() {
return readn('w');
}
function GetShort() {
return readn('s');
}
function charPtrToInt(arr) {
local value = ((arr[0]) << 0) |
((arr[1]) << 8) |
((arr[2]) << 16) |
((arr[3]) << 24);
return value;
}
function GetInt() {
local CurTPos = tell();
local Ret = charPtrToInt([this[CurTPos], this[CurTPos + 1], this[CurTPos + 2], this[CurTPos + 3]]);
seek(4, 'c');
return Ret;
}
function Get256() {
local Buf = readn('c');
return (256.0 + Buf.tofloat()) % 256.0;
}
function GetFloat() {
return readn('f');
}
function GetString(count) {
return stream_myreadstring(count);
}
}