Release v0.4.5.8
Some fixes and changes
This commit is contained in:
+23
-20
@@ -289,6 +289,8 @@ namespace KKdMainLib.A3DA
|
||||
{
|
||||
name = "m_objhrc" + d + i0 + d;
|
||||
|
||||
Dict.FindValue(out Data.MObjectHRC[i0].Name, name + "name");
|
||||
|
||||
if (Dict.StartsWith(name + "joint_orient"))
|
||||
{
|
||||
Data.MObjectHRC[i0].JointOrient = new Vector3<double?>();
|
||||
@@ -308,7 +310,7 @@ namespace KKdMainLib.A3DA
|
||||
Dict.FindValue(out Data.MObjectHRC[i0].Instance[i1]. Shadow, nameView + "shadow");
|
||||
Dict.FindValue(out Data.MObjectHRC[i0].Instance[i1].UIDName, nameView + "uid_name");
|
||||
|
||||
Data.MObjectHRC[i0].Instance[i1].MT = Dict.ReadMT(name);
|
||||
Data.MObjectHRC[i0].Instance[i1].MT = Dict.ReadMT(nameView);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,7 +323,7 @@ namespace KKdMainLib.A3DA
|
||||
Dict.FindValue(out Data.MObjectHRC[i0].Node[i1].Name , nameView + "name" );
|
||||
Dict.FindValue(out Data.MObjectHRC[i0].Node[i1].Parent, nameView + "parent");
|
||||
|
||||
Data.MObjectHRC[i0].Node[i1].MT = Dict.ReadMT(name);
|
||||
Data.MObjectHRC[i0].Node[i1].MT = Dict.ReadMT(nameView);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -427,12 +429,12 @@ namespace KKdMainLib.A3DA
|
||||
Data.ObjectHRC[i0].Node = new Node[int.Parse(value)];
|
||||
for (i1 = 0; i1 < Data.ObjectHRC[i0].Node.Length; i1++)
|
||||
{
|
||||
name = "objhrc" + d + i0 + d + "node" + d + i1 + d;
|
||||
nameView = name + "node" + d + i1 + d;
|
||||
|
||||
Dict.FindValue(out Data.ObjectHRC[i0].Node[i1].Name , name + "name" );
|
||||
Dict.FindValue(out Data.ObjectHRC[i0].Node[i1].Parent, name + "parent");
|
||||
Dict.FindValue(out Data.ObjectHRC[i0].Node[i1].Name , nameView + "name" );
|
||||
Dict.FindValue(out Data.ObjectHRC[i0].Node[i1].Parent, nameView + "parent");
|
||||
|
||||
Data.ObjectHRC[i0].Node[i1].MT = Dict.ReadMT(name);
|
||||
Data.ObjectHRC[i0].Node[i1].MT = Dict.ReadMT(nameView);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -525,10 +527,10 @@ namespace KKdMainLib.A3DA
|
||||
IO.Write(Data.CameraRoot[SOi0].ViewPoint.FocalLength, nameView + "focal_length" + d, A3DC);
|
||||
IO.Write(Data.CameraRoot[SOi0].ViewPoint.FOV, nameView + "fov" + d, A3DC);
|
||||
IO.Write(nameView + "fov_is_horizontal=", Data.CameraRoot[i0].ViewPoint.FOVHorizontal);
|
||||
IO.Write(Data.CameraRoot[SOi0].ViewPoint.MT, nameView, A3DC, IsX, 0b10000);
|
||||
IO.Write(Data.CameraRoot[SOi0].ViewPoint.MT , nameView, A3DC, IsX, 0b10000);
|
||||
IO.Write(Data.CameraRoot[SOi0].ViewPoint.Roll, nameView + "roll" + d, A3DC);
|
||||
IO.Write(Data.CameraRoot[SOi0].ViewPoint.MT, nameView, A3DC, IsX, 0b01111);
|
||||
IO.Write(Data.CameraRoot[SOi0].MT, name, A3DC, IsX, 0b00001);
|
||||
IO.Write(Data.CameraRoot[SOi0].ViewPoint.MT , nameView, A3DC, IsX, 0b01111);
|
||||
IO.Write(Data.CameraRoot[SOi0] .MT , name , A3DC, IsX, 0b00001);
|
||||
}
|
||||
IO.Write("camera_root.length=", Data.CameraRoot.Length);
|
||||
}
|
||||
@@ -617,7 +619,7 @@ namespace KKdMainLib.A3DA
|
||||
IO.Write(Data.Light[SOi0].Diffuse , name, "Diffuse" , A3DC);
|
||||
IO.Write(Data.Light[SOi0].Incandescence, name, "Incandescence", A3DC);
|
||||
IO.Write(Data.Light[SOi0].Specular , name, "Specular" , A3DC);
|
||||
IO.Write(name + "id=", Data.Light[SOi0].Id);
|
||||
IO.Write(name + "id=" , Data.Light[SOi0].Id );
|
||||
IO.Write(name + "name=", Data.Light[SOi0].Name);
|
||||
IO.Write(Data.Light[SOi0].Position , name + "position" + d, A3DC, IsX);
|
||||
IO.Write(Data.Light[SOi0].SpotDirection, name + "spot_direction" + d, A3DC, IsX);
|
||||
@@ -677,10 +679,12 @@ namespace KKdMainLib.A3DA
|
||||
for (i1 = 0; i1 < Data.MObjectHRC[i0].Node.Length; i1++)
|
||||
{
|
||||
SOi1 = SO1[i1];
|
||||
IO.Write(Data.MObjectHRC[SOi0].Node[SOi1].MT, nameView + SOi1 + d, A3DC, IsX, 0b10000);
|
||||
IO.Write(Data.MObjectHRC[SOi0].Node[SOi1].MT,
|
||||
nameView + SOi1 + d, A3DC, IsX, 0b10000);
|
||||
IO.Write(nameView + SOi1 + d + "name=", Data.MObjectHRC[SOi0].Node[SOi1].Name );
|
||||
IO.Write(nameView + SOi1 + d + "parent=", Data.MObjectHRC[SOi0].Node[SOi1].Parent);
|
||||
IO.Write(Data.MObjectHRC[SOi0].Node[SOi1].MT, nameView + SOi1 + d, A3DC, IsX, 0b01111);
|
||||
IO.Write(Data.MObjectHRC[SOi0].Node[SOi1].MT,
|
||||
nameView + SOi1 + d, A3DC, IsX, 0b01111);
|
||||
}
|
||||
IO.Write(nameView + "length=", Data. MObjectHRC[SOi0].Node.Length);
|
||||
}
|
||||
@@ -874,7 +878,7 @@ namespace KKdMainLib.A3DA
|
||||
IO.Close();
|
||||
}
|
||||
|
||||
private int CompressF16 => (int)Data._.CompressF16;
|
||||
private int CompressF16 => Data._.CompressF16.GetValueOrDefault();
|
||||
|
||||
private void A3DCReader()
|
||||
{
|
||||
@@ -1640,8 +1644,8 @@ namespace KKdMainLib.A3DA
|
||||
{
|
||||
Name = _TT.ReadString("Name"),
|
||||
C = _TT.ReadKeyUV ("C" ),
|
||||
O = _TT.ReadKeyUV ("C" ),
|
||||
R = _TT.ReadKeyUV ("C" ),
|
||||
O = _TT.ReadKeyUV ("O" ),
|
||||
R = _TT.ReadKeyUV ("R" ),
|
||||
Ro = _TT.ReadKey ("Ro" ),
|
||||
RF = _TT.ReadKey ("RF" ),
|
||||
TF = _TT.ReadKeyUV ("TF" ),
|
||||
@@ -2173,15 +2177,14 @@ namespace KKdMainLib.A3DA
|
||||
public override string ToString() => ToString(true);
|
||||
public string ToString(bool Brackets)
|
||||
{
|
||||
if (Value == null)
|
||||
return Main.ToString(Frame);
|
||||
if (Value == null) return Main.ToString(Frame);
|
||||
|
||||
string s = "";
|
||||
if (Brackets && Type > 0) s += "(";
|
||||
s += Main.ToString(Frame);
|
||||
if (Type == 1 && Value.Length > 0) s += "," + Main.ToString(Value[0]);
|
||||
if (Type == 2 && Value.Length > 1) s += "," + Main.ToString(Value[1]);
|
||||
if (Type == 3 && Value.Length > 2) s += "," + Main.ToString(Value[2]);
|
||||
if (Type > 0 && Value.Length > 0) s += "," + Main.ToString(Value[0]);
|
||||
if (Type > 1 && Value.Length > 1) s += "," + Main.ToString(Value[1]);
|
||||
if (Type > 2 && Value.Length > 2) s += "," + Main.ToString(Value[2]);
|
||||
if (Brackets && Type > 0) s += ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ namespace KKdMainLib.A3DA
|
||||
Dict.FindValue(out Key.BinOffset, Temp + BO );
|
||||
Dict.FindValue(out Key.Type , Temp + "type");
|
||||
|
||||
if (Key.BinOffset == null && Key.Type == null) return null;
|
||||
if (Key.Type == null) return Key;
|
||||
if (Key.Type == 0x0000) return Key;
|
||||
|
||||
@@ -114,6 +115,7 @@ namespace KKdMainLib.A3DA
|
||||
|
||||
public static void Write(this Stream IO, RGBAKey RGBA, string Temp, string Data, bool A3DC = false)
|
||||
{
|
||||
if (RGBA.R == null && RGBA.B == null && RGBA.G == null && RGBA.A == null) return;
|
||||
IO.Write(Temp + Data + "=", "true");
|
||||
IO.Write(RGBA.A, Temp + Data + d + "a" + d, A3DC); IO.Write(RGBA.B, Temp + Data + d + "b" + d, A3DC);
|
||||
IO.Write(RGBA.G, Temp + Data + d + "g" + d, A3DC); IO.Write(RGBA.R, Temp + Data + d + "r" + d, A3DC);
|
||||
@@ -178,6 +180,8 @@ namespace KKdMainLib.A3DA
|
||||
IO.Write(Temp + "raw_data_key_type=" , Key.RawData. KeyType );
|
||||
}
|
||||
IO.Write(Temp + "type=", Key.Type & 0xFF);
|
||||
if (Key.RawData == null && Key.Trans == null && Key.Value != null)
|
||||
if (Key.Value != 0) IO.Write(Temp + "value=", Key.Value);
|
||||
}
|
||||
|
||||
public static void ReadMT(this Stream IO, ref ModelTransform MT, int C_F16)
|
||||
@@ -186,10 +190,10 @@ namespace KKdMainLib.A3DA
|
||||
|
||||
IO.Position = IO.Offset + (int)MT.BinOffset;
|
||||
|
||||
IO.ReadOffset(ref MT.Scale);
|
||||
IO.ReadOffset(ref MT.Rot );
|
||||
IO.ReadOffset(ref MT.Trans);
|
||||
MT.Visibility.BinOffset = IO.ReadInt32();
|
||||
IO.ReadOffset(out MT.Scale);
|
||||
IO.ReadOffset(out MT.Rot );
|
||||
IO.ReadOffset(out MT.Trans);
|
||||
MT.Visibility = new Key { BinOffset = IO.ReadInt32() };
|
||||
|
||||
IO.ReadVec3(ref MT.Scale , C_F16);
|
||||
IO.ReadVec3(ref MT.Rot , C_F16, true);
|
||||
@@ -202,13 +206,15 @@ namespace KKdMainLib.A3DA
|
||||
IO.ReadKey(ref RGBA.B, C_F16); IO.ReadKey(ref RGBA.A, C_F16); }
|
||||
|
||||
public static void ReadVec3(this Stream IO, ref Vector3<Key> Key, int C_F16, bool F16 = false)
|
||||
{ IO.ReadKey(ref Key.X, C_F16, F16); IO.ReadKey(ref Key.Y, C_F16, F16); IO.ReadKey(ref Key.Z, C_F16, F16); }
|
||||
{ IO.ReadKey(ref Key.X, C_F16, F16); IO.ReadKey(ref Key.Y,
|
||||
C_F16, F16); IO.ReadKey(ref Key.Z, C_F16, F16); }
|
||||
|
||||
public static void ReadKeyUV(this Stream IO, ref KeyUV UV, int C_F16)
|
||||
{ IO.ReadKey(ref UV.U, C_F16); IO.ReadKey(ref UV.V, C_F16); }
|
||||
|
||||
public static void ReadKey(this Stream IO, ref Key Key, int C_F16, bool F16 = false)
|
||||
{
|
||||
if (Key == null) return;
|
||||
if (Key.BinOffset == null || Key.BinOffset < 0) return;
|
||||
|
||||
IO.Position = IO.Offset + (int)Key.BinOffset;
|
||||
@@ -238,8 +244,10 @@ namespace KKdMainLib.A3DA
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadOffset(this Stream IO, ref Vector3<Key> Key)
|
||||
{ Key.X.BinOffset = IO.ReadInt32(); Key.Y.BinOffset = IO.ReadInt32(); Key.Z.BinOffset = IO.ReadInt32(); }
|
||||
public static void ReadOffset(this Stream IO, out Vector3<Key> Key)
|
||||
{ Key = new Vector3<Key> { X = new Key { BinOffset = IO.ReadInt32() },
|
||||
Y = new Key { BinOffset = IO.ReadInt32() },
|
||||
Z = new Key { BinOffset = IO.ReadInt32() }, }; }
|
||||
|
||||
public static void WriteOffset(this Stream IO, ref ModelTransform MT, bool ReturnToOffset)
|
||||
{
|
||||
@@ -292,11 +300,11 @@ namespace KKdMainLib.A3DA
|
||||
new KeyUV { U = k.ReadKey("U"), V = k.ReadKey("V") };
|
||||
|
||||
public static Key ReadKey(this MsgPack k, string name)
|
||||
{ if (k.Element(name, out MsgPack Name)) return Name.ReadKey(); return new Key(); }
|
||||
{ if (k.Element(name, out MsgPack Name)) return Name.ReadKey(); return null; }
|
||||
|
||||
public static Key ReadKey(this MsgPack k)
|
||||
{
|
||||
if (k == null) return new Key();
|
||||
if (k == null) return null;
|
||||
|
||||
Key Key = new Key { EPTypePost = k.ReadNDouble("Post"),
|
||||
EPTypePre = k.ReadNDouble("Pre"), Max = k.ReadNDouble("M"),
|
||||
@@ -386,5 +394,28 @@ namespace KKdMainLib.A3DA
|
||||
else if (Key.Value != 0) Keys.Add("V", Key.Value);
|
||||
return Keys;
|
||||
}
|
||||
|
||||
public static void Write(this Stream IO, string Data, ref bool? val)
|
||||
{ if (val != null) IO.Write(Data, ( bool)val ); }
|
||||
public static void Write(this Stream IO, string Data, long? val)
|
||||
{ if (val != null) IO.Write(Data, ( long)val ); }
|
||||
public static void Write(this Stream IO, string Data, ulong? val)
|
||||
{ if (val != null) IO.Write(Data, ( ulong)val ); }
|
||||
public static void Write(this Stream IO, string Data, double? val)
|
||||
{ if (val != null) IO.Write(Data, (double)val ); }
|
||||
public static void Write(this Stream IO, string Data, double? val, byte r)
|
||||
{ if (val != null) IO.Write(Data, (double)val, r); }
|
||||
public static void Write(this Stream IO, string Data, ref bool val) =>
|
||||
IO.Write(Data, Main.ToString(val));
|
||||
public static void Write(this Stream IO, string Data, long val) =>
|
||||
IO.Write(Data, val.ToString( ));
|
||||
public static void Write(this Stream IO, string Data, ulong val) =>
|
||||
IO.Write(Data, val.ToString( ));
|
||||
public static void Write(this Stream IO, string Data, double val) =>
|
||||
IO.Write(Data, val.ToString( ));
|
||||
public static void Write(this Stream IO, string Data, double val, byte r) =>
|
||||
IO.Write(Data, val.ToString(r ));
|
||||
public static void Write(this Stream IO, string Data, string val)
|
||||
{ if (val != null) IO.Write((Data + val + "\n").ToUTF8()); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using KKdMainLib.IO;
|
||||
using KKdMainLib.A3DA;
|
||||
using KKdMainLib.MessagePack;
|
||||
using MPIO = KKdMainLib.MessagePack.IO;
|
||||
|
||||
|
||||
@@ -4,8 +4,10 @@ namespace KKdMainLib.IO
|
||||
{
|
||||
public static class IOExtensions
|
||||
{
|
||||
public static string NullTerminatedASCII(this Stream stream, byte End = 0) => stream.NullTerminated(End).ToASCII();
|
||||
public static string NullTerminatedUTF8 (this Stream stream, byte End = 0) => stream.NullTerminated(End).ToUTF8 ();
|
||||
public static string NullTerminatedASCII(this Stream stream, byte End = 0) =>
|
||||
stream.NullTerminated(End).ToASCII();
|
||||
public static string NullTerminatedUTF8 (this Stream stream, byte End = 0) =>
|
||||
stream.NullTerminated(End).ToUTF8 ();
|
||||
public static byte[] NullTerminated (this Stream stream, byte End = 0)
|
||||
{
|
||||
List<byte> s = new List<byte>();
|
||||
|
||||
+22
-82
@@ -121,12 +121,9 @@ namespace KKdMainLib.IO
|
||||
public uint ReadUInt32Endian() => ( uint)UIntFromArray(4, IsBE);
|
||||
public long ReadInt64Endian() => IntFromArray(8, IsBE);
|
||||
public ulong ReadUInt64Endian() => UIntFromArray(8, IsBE);
|
||||
public Half ReadHalfEndian()
|
||||
{ ushort a = ReadUInt16Endian(); return ( Half ) a; }
|
||||
public float ReadSingleEndian()
|
||||
{ uint a = ReadUInt32Endian(); return *( float*)&a; }
|
||||
public double ReadDoubleEndian()
|
||||
{ ulong a = ReadUInt64Endian(); return *(double*)&a; }
|
||||
public Half ReadHalfEndian() { ushort a = ReadUInt16Endian(); return ( Half ) a; }
|
||||
public float ReadSingleEndian() { uint a = ReadUInt32Endian(); return *( float*)&a; }
|
||||
public double ReadDoubleEndian() { ulong a = ReadUInt64Endian(); return *(double*)&a; }
|
||||
|
||||
public short ReadInt16Endian(bool IsBE) => ( short) IntFromArray(2, IsBE);
|
||||
public ushort ReadUInt16Endian(bool IsBE) => (ushort)UIntFromArray(2, IsBE);
|
||||
@@ -174,45 +171,26 @@ namespace KKdMainLib.IO
|
||||
public void Write( float? val) => Write(val.GetValueOrDefault());
|
||||
public void Write(double? val) => Write(val.GetValueOrDefault());
|
||||
|
||||
public void Write( bool* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( sbyte* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( byte* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( short* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write(ushort* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( int* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( uint* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( long* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( ulong* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( float* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write(double* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( bool* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( sbyte* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( byte* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( short* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write(ushort* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( int* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( uint* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( long* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( ulong* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write( float* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
public void Write(double* val, int Length) { for (i = 0; i < Length; i++) Write(val[i]); }
|
||||
|
||||
public void WriteEndian( short* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian(ushort* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( int* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( uint* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( long* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( ulong* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( float* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian(double* val, int Length)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( short* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian(ushort* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( int* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( uint* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( long* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( ulong* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian( float* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
public void WriteEndian(double* val, int Length) { for (i = 0; i < Length; i++) WriteEndian(val[i]); }
|
||||
|
||||
public void WriteEndian( short* val, int Length, bool IsBE)
|
||||
{ for (i = 0; i < Length; i++) WriteEndian(val[i], IsBE); }
|
||||
@@ -235,18 +213,6 @@ namespace KKdMainLib.IO
|
||||
{ if (UTF8) Write(val.ToString().ToUTF8()); else Write(val.ToString().ToASCII()); }
|
||||
public void Write(string val, bool UTF8 = true)
|
||||
{ if (UTF8) Write(val .ToUTF8()); else Write(val .ToASCII()); }
|
||||
|
||||
public void Write(string Data, ref bool? val) => Write(Data, val.GetValueOrDefault() );
|
||||
public void Write(string Data, long? val) => Write(Data, val.GetValueOrDefault() );
|
||||
public void Write(string Data, ulong? val) => Write(Data, val.GetValueOrDefault() );
|
||||
public void Write(string Data, double? val) => Write(Data, val.ToString( ));
|
||||
public void Write(string Data, double? val, byte r) => Write(Data, val.ToString(r ));
|
||||
public void Write(string Data, ref bool val) => Write(Data, Main.ToString(val));
|
||||
public void Write(string Data, long val) => Write(Data, val.ToString( ));
|
||||
public void Write(string Data, ulong val) => Write(Data, val.ToString( ));
|
||||
public void Write(string Data, double val) => Write(Data, val.ToString( ));
|
||||
public void Write(string Data, double val, byte r) => Write(Data, val.ToString(r ));
|
||||
public void Write(string Data, string val) => Write((Data + val + "\n").ToUTF8());
|
||||
|
||||
public void WriteEndian( short val) => ToArray(2, Endian(val, 2, IsBE));
|
||||
public void WriteEndian(ushort val) => ToArray(2, Endian(val, 2, IsBE));
|
||||
@@ -274,32 +240,6 @@ namespace KKdMainLib.IO
|
||||
{ if (IsBE) { for (byte i = 0; i < Length; i++) { buf[i] = (byte)BE; BE >>= 8; } BE = 0;
|
||||
for (byte i = 0; i < Length; i++) { BE |= buf[i]; if (i < Length - 1) BE <<= 8; } } return BE; }
|
||||
|
||||
/*public void WriteEndian( short val) => ToArrayEndian(2, val, IsBE);
|
||||
public void WriteEndian(ushort val) => ToArrayEndian(2, val, IsBE);
|
||||
public void WriteEndian( int val) => ToArrayEndian(4, val, IsBE);
|
||||
public void WriteEndian( uint val) => ToArrayEndian(4, val, IsBE);
|
||||
public void WriteEndian( long val) => ToArrayEndian(8, val, IsBE);
|
||||
public void WriteEndian( ulong val) => ToArrayEndian(8, val, IsBE);
|
||||
public void WriteEndian( float val) => ToArrayEndian(4, *( uint*)&val, IsBE);
|
||||
public void WriteEndian(double val) => ToArrayEndian(8, *(ulong*)&val, IsBE);
|
||||
|
||||
public void WriteEndian( short val, bool IsBE) => ToArrayEndian(2, val, IsBE);
|
||||
public void WriteEndian(ushort val, bool IsBE) => ToArrayEndian(2, val, IsBE);
|
||||
public void WriteEndian( int val, bool IsBE) => ToArrayEndian(4, val, IsBE);
|
||||
public void WriteEndian( uint val, bool IsBE) => ToArrayEndian(4, val, IsBE);
|
||||
public void WriteEndian( long val, bool IsBE) => ToArrayEndian(8, val, IsBE);
|
||||
public void WriteEndian( ulong val, bool IsBE) => ToArrayEndian(8, val, IsBE);
|
||||
public void WriteEndian( float val, bool IsBE) => ToArrayEndian(4, *( uint*)&val, IsBE);
|
||||
public void WriteEndian(double val, bool IsBE) => ToArrayEndian(8, *(ulong*)&val, IsBE);
|
||||
|
||||
private void ToArrayEndian(byte L, long val, bool IsBE = false)
|
||||
{ CheckWrited(); if (IsBE) for (i = L; i > 0; i--) { buf[i - 1] = (byte)val; val >>= 8; }
|
||||
else for (i = 0; i < L; i++) { buf[i ] = (byte)val; val >>= 8; } Write(buf, L); }
|
||||
|
||||
private void ToArrayEndian(byte L, ulong val, bool IsBE = false)
|
||||
{ CheckWrited(); if (IsBE) for (i = L; i > 0; i--) { buf[i - 1] = (byte)val; val >>= 8; }
|
||||
else for (i = 0; i < L; i++) { buf[i ] = (byte)val; val >>= 8; } Write(buf, L); }*/
|
||||
|
||||
private void ToArray(byte L, long val)
|
||||
{ CheckWrited(); for (i = 0; i < L; i++) { buf[i] = (byte)val; val >>= 8; } Write(buf, L); }
|
||||
|
||||
|
||||
@@ -13,7 +13,8 @@ namespace KKdMainLib.MessagePack
|
||||
public MsgPack(string Name, Types Type = Types.Map32) => NewMsgPack(Name, Type);
|
||||
public MsgPack( long Count) => NewMsgPack(null, Count);
|
||||
public MsgPack(string Name, long Count) => NewMsgPack(Name, Count);
|
||||
public MsgPack(string Name, Types Type, object Object) { this.Name = Name; this.Type = Type; this.Object = Object; }
|
||||
public MsgPack(string Name, Types Type, object Object)
|
||||
{ this.Name = Name; this.Type = Type; this.Object = Object; }
|
||||
|
||||
public static MsgPack Null => null;
|
||||
|
||||
@@ -60,16 +61,26 @@ namespace KKdMainLib.MessagePack
|
||||
public MsgPack Add( float val) => Add(null, val);
|
||||
public MsgPack Add(double val) => Add(null, val);
|
||||
|
||||
public MsgPack Add(string Val, sbyte? val) { if (val == null) Add(Null); else Add(Val, ( sbyte)val); return this; }
|
||||
public MsgPack Add(string Val, byte? val) { if (val == null) Add(Null); else Add(Val, ( byte)val); return this; }
|
||||
public MsgPack Add(string Val, short? val) { if (val == null) Add(Null); else Add(Val, ( short)val); return this; }
|
||||
public MsgPack Add(string Val, ushort? val) { if (val == null) Add(Null); else Add(Val, (ushort)val); return this; }
|
||||
public MsgPack Add(string Val, int? val) { if (val == null) Add(Null); else Add(Val, ( int)val); return this; }
|
||||
public MsgPack Add(string Val, uint? val) { if (val == null) Add(Null); else Add(Val, ( uint)val); return this; }
|
||||
public MsgPack Add(string Val, long? val) { if (val == null) Add(Null); else Add(Val, ( long)val); return this; }
|
||||
public MsgPack Add(string Val, ulong? val) { if (val == null) Add(Null); else Add(Val, ( ulong)val); return this; }
|
||||
public MsgPack Add(string Val, float? val) { if (val == null) Add(Null); else Add(Val, ( float)val); return this; }
|
||||
public MsgPack Add(string Val, double? val) { if (val == null) Add(Null); else Add(Val, (double)val); return this; }
|
||||
public MsgPack Add(string Val, sbyte? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( sbyte)val); return this; }
|
||||
public MsgPack Add(string Val, byte? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( byte)val); return this; }
|
||||
public MsgPack Add(string Val, short? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( short)val); return this; }
|
||||
public MsgPack Add(string Val, ushort? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, (ushort)val); return this; }
|
||||
public MsgPack Add(string Val, int? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( int)val); return this; }
|
||||
public MsgPack Add(string Val, uint? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( uint)val); return this; }
|
||||
public MsgPack Add(string Val, long? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( long)val); return this; }
|
||||
public MsgPack Add(string Val, ulong? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( ulong)val); return this; }
|
||||
public MsgPack Add(string Val, float? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, ( float)val); return this; }
|
||||
public MsgPack Add(string Val, double? val)
|
||||
{ if (val == null) Add(Null); else Add(Val, (double)val); return this; }
|
||||
|
||||
public MsgPack Add(string Val, byte[] val)
|
||||
{ if (val == null) Add(Null); else
|
||||
|
||||
@@ -11,5 +11,5 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: Guid("2BA7EFC6-91D1-8BBC-C487-06C7F36CC789")]
|
||||
[assembly: AssemblyVersion("0.4.5.7")]
|
||||
[assembly: AssemblyFileVersion("0.4.5.7")]
|
||||
[assembly: AssemblyVersion("0.4.5.8")]
|
||||
[assembly: AssemblyFileVersion("0.4.5.8")]
|
||||
|
||||
Reference in New Issue
Block a user