예제 #1
0
 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");
     }
 }
예제 #2
0
파일: PackWriter.cs 프로젝트: KHCmaster/PPD
        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));
        }
예제 #3
0
 protected void WriteByte(PPDPackStreamWriter writer, byte value)
 {
     writer.WriteByte(value);
 }
예제 #4
0
        protected void WriteFloat(PPDPackStreamWriter writer, float value)
        {
            var writeData = BitConverter.GetBytes(value);

            writer.Write(writeData, 0, writeData.Length);
        }
예제 #5
0
        protected void WriteBoolean(PPDPackStreamWriter writer, bool value)
        {
            var writeData = BitConverter.GetBytes(value);

            writer.Write(writeData, 0, writeData.Length);
        }
예제 #6
0
        protected void WriteString(PPDPackStreamWriter writer, string value)
        {
            var writeData = Encoding.UTF8.GetBytes(value);

            writer.Write(writeData, 0, writeData.Length);
        }