Exemplo n.º 1
0
 internal override void Write(ResourceWriter writer)
 {
     if (Data != null)
     {
         writer.WriteBytes(Data);
     }
 }
Exemplo n.º 2
0
 protected override void WriteCore(ResourceWriter writer)
 {
     if (Data != null)
     {
         writer.WriteBytes(Data);
     }
 }
Exemplo n.º 3
0
 internal override void Write(ResourceWriter writer)
 {
     writer.WriteString(Name);
     writer.WriteInt16(( short )Format);
     writer.WriteInt32(Data.Length);
     writer.WriteBytes(Data);
     writer.WriteByte(Field1C);
     writer.WriteByte(Field1D);
     writer.WriteByte(Field1E);
     writer.WriteByte(Field1F);
 }
Exemplo n.º 4
0
 internal override void Write(ResourceWriter writer)
 {
     writer.WriteUInt16(( ushort )ShaderType);
     writer.WriteInt32(Data.Length);
     writer.WriteUInt16(Field06);
     writer.WriteUInt32(Field08);
     writer.WriteUInt32(Field0C);
     writer.WriteUInt32(Field10);
     writer.WriteUInt32(Field14);
     writer.WriteUInt32(Field18);
     writer.WriteBytes(Data);
 }
Exemplo n.º 5
0
        public void Save(Stream stream, bool leaveOpen)
        {
            using (var writer = new ResourceWriter(stream, leaveOpen))
            {
                if (ResourceType == ResourceType.AnimationPack)
                {
                    // For AnimationPacks we write a model file header, and then a chunk containing the pack data.
                    writer.WriteFileHeader(ResourceFileIdentifier.Model, Version, ResourceType.ModelPack);
                    writer.WriteResourceChunk(this);
                    return;
                }

                writer.WriteFileHeader(ResourceFileIdentifier.Model, Version, ResourceType);

                switch (ResourceType)
                {
                case ResourceType.Epl:
                    // We have to write this to the file so we can remember it when we load it.
                    //writer.WriteBoolean( ( ( Epl ) this ).IncludesProperties );
                    break;

                case ResourceType.Node:
                    Node.WriteRecursive(writer, ( Node )this);
                    return;

                case ResourceType.ChunkType000100F8:
                {
                    var chunk = ( ChunkType000100F8 )this;
                    writer.WriteInt32(chunk.Data.Length);
                    writer.WriteBytes(chunk.Data);
                    return;
                }
                }

                WriteCore(writer);
            }
        }
Exemplo n.º 6
0
        protected override void WriteCore(ResourceWriter writer)
        {
            writer.WriteInt32(Count);

            foreach (var property in Values)
            {
                writer.WriteInt32(( int )property.ValueType);
                writer.WriteStringWithHash(Version, property.Name);

                switch (property.ValueType)
                {
                case UserPropertyValueType.Int:
                    writer.WriteInt32(4);
                    writer.WriteInt32(property.GetValue <int>());
                    break;

                case UserPropertyValueType.Float:
                    writer.WriteInt32(4);
                    writer.WriteSingle(property.GetValue <float>());
                    break;

                case UserPropertyValueType.Bool:
                    writer.WriteInt32(1);
                    writer.WriteBoolean(property.GetValue <bool>());
                    break;

                case UserPropertyValueType.String:
                {
                    var value = property.GetValue <string>();
                    writer.WriteInt32(value.Length + 1);
                    writer.WriteStringRaw(value);
                }
                break;

                case UserPropertyValueType.ByteVector3:
                    writer.WriteInt32(3);
                    writer.WriteByteVector3(property.GetValue <ByteVector3>());
                    break;

                case UserPropertyValueType.ByteVector4:
                    writer.WriteInt32(4);
                    writer.WriteByteVector4(property.GetValue <ByteVector4>());
                    break;

                case UserPropertyValueType.Vector3:
                    writer.WriteInt32(12);
                    writer.WriteVector3(property.GetValue <Vector3>());
                    break;

                case UserPropertyValueType.Vector4:
                    writer.WriteInt32(16);
                    writer.WriteVector4(property.GetValue <Vector4>());
                    break;

                case UserPropertyValueType.ByteArray:
                {
                    var value = property.GetValue <byte[]>();
                    writer.WriteInt32(value.Length);
                    writer.WriteBytes(value);
                }
                break;

                default:
                    throw new InvalidOperationException($"Unknown node property type: {property.ValueType}");
                }
            }
        }
Exemplo n.º 7
0
 internal override void Write(ResourceWriter writer)
 {
     writer.WriteBytes(RawData);
 }