private void Write(Type type, object value, PPDPackStreamWriter w) { if (type.IsEnum || type == typeof(int)) { WriteInt(w, (int)value); } else if (type == typeof(bool)) { WriteBoolean(w, (bool)value); } else if (type == typeof(float)) { WriteFloat(w, (float)value); } else if (type == typeof(string)) { WriteString(w, (string)value); } else if (type == typeof(byte)) { WriteByte(w, (byte)value); } else { throw new Exception("Not supported type"); } }
public void Write(string fileName, Action <PPDPackStreamWriter> callback) { long startpos = stream.Position; if (callback != null) { var st = new PPDPackStreamWriter(stream, fileName); callback(st); } var size = (uint)(stream.Position - startpos); files.Add(new FileInfo(fileName, size)); }
protected void WriteByte(PPDPackStreamWriter writer, byte value) { writer.WriteByte(value); }
protected void WriteFloat(PPDPackStreamWriter writer, float value) { var writeData = BitConverter.GetBytes(value); writer.Write(writeData, 0, writeData.Length); }
protected void WriteBoolean(PPDPackStreamWriter writer, bool value) { var writeData = BitConverter.GetBytes(value); writer.Write(writeData, 0, writeData.Length); }
protected void WriteString(PPDPackStreamWriter writer, string value) { var writeData = Encoding.UTF8.GetBytes(value); writer.Write(writeData, 0, writeData.Length); }