internal override void Write(ResourceWriter writer) { if (Data != null) { writer.WriteBytes(Data); } }
protected override void WriteCore(ResourceWriter writer) { if (Data != null) { writer.WriteBytes(Data); } }
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); }
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); }
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); } }
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}"); } } }
internal override void Write(ResourceWriter writer) { writer.WriteBytes(RawData); }