Exemplo n.º 1
0
        private void WriteResource(GFDLibrary.Resource resource)
        {
            switch (resource.Type)
            {
            case ResourceType.Model:
                WriteModel(( Model )resource);
                break;

            case ResourceType.AnimationPackage:
                WriteAnimationPackage(( AnimationPackage )resource);
                break;

            case ResourceType.TextureDictionary:
                WriteTextureDictionary(( TextureDictionary )resource);
                break;

            case ResourceType.MaterialDictionary:
                WriteMaterialDictionary(( MaterialDictionary )resource);
                break;

            case ResourceType.Scene:
                WriteScene(( Scene )resource);
                break;

            case ResourceType.ChunkType000100F9:
                WriteChunkType000100F9(( ChunkType000100F9 )resource);
                break;

            case ResourceType.ChunkType000100F8:
                WriteBytes((( ChunkType000100F8 )resource).RawData);
                break;

            case ResourceType.ShaderCachePS3:
                WriteShaderCache(( ShaderCachePS3 )resource);
                break;

            case ResourceType.ShaderCachePSP2:
                WriteShaderCache(( ShaderCachePSP2 )resource);
                break;

            // Custom resource types
            case ResourceType.Bundle:
                WriteResourceBundle(( ResourceBundle )resource);
                break;

            case ResourceType.Material:
                WriteMaterial(resource.Version, ( Material )resource);
                break;

            case ResourceType.MaterialAttribute:
                WriteMaterialAttribute(resource.Version, ( MaterialAttribute )resource);
                break;

            default:
                throw new Exception($"Resource type { resource.Type } can not be written to a file directly.");
            }
        }
Exemplo n.º 2
0
 public static void WriteToStream(GFDLibrary.Resource resource, Stream stream, Endianness endianness)
 {
     using (var writer = new ResourceWriter(stream, endianness))
         writer.WriteResourceFile(resource);
 }
Exemplo n.º 3
0
 // Write resource methods
 private void WriteResourceFile(GFDLibrary.Resource resource)
 {
     WriteResourceFileHeader(resource.Version, GetFileType(resource.Type));
     WriteResource(resource);
 }