예제 #1
0
        public static string DumpGenericAsset(
            string assetName,
            Mesh mesh,
            Material material,
            Mesh lodMesh         = null,
            Material lodMaterial = null)
        {
            assetName = assetName.Replace("_Data", string.Empty);
            Logger.Warning($"Dumping asset \"{assetName}\"...");

            DumpUtil.DumpMeshAndTextures(assetName, mesh, material);
            DumpUtil.DumpMeshAndTextures($"{assetName}_lod", lodMesh, lodMaterial);
            Logger.Warning($"Successfully dumped asset \"{assetName}\"");
            return(assetName);
        }
예제 #2
0
        public static string DumpVehicle(
            string assetName,
            Mesh mesh,
            Material material,
            Mesh lodMesh,
            Material lodMaterial,
            VehicleInfo.MeshInfo[] subMeshes)
        {
            assetName = assetName.Replace("_Data", string.Empty);
            Logger.Warning($"Dumping asset \"{assetName}\"...");

            if (mesh != null)
            {
                DumpUtil.DumpMeshAndTextures(assetName, mesh, material);
            }

            if (lodMesh != null)
            {
                DumpUtil.DumpMeshAndTextures(assetName + "_lod", lodMesh, lodMaterial);
            }

            if (subMeshes != null)
            {
                for (var i = 0; i < subMeshes.Length; i++)
                {
                    var subInfo = subMeshes[i]?.m_subInfo;
                    if (subInfo == null)
                    {
                        continue;
                    }

                    if (subInfo.m_mesh != null)
                    {
                        DumpUtil.DumpMeshAndTextures($"{assetName}_sub_mesh_{i}", subInfo.m_mesh, subInfo.m_material);
                    }

                    if (subInfo.m_lodMesh != null)
                    {
                        DumpUtil.DumpMeshAndTextures($"{assetName}_sub_mesh_{i}_lod", subInfo.m_lodMesh, subInfo.m_lodMaterial);
                    }
                }
            }

            Logger.Warning($"Successfully dumped asset \"{assetName}\"");
            return(assetName);
        }
예제 #3
0
        public static string DumpNetwork(string assetName, NetInfo.Segment[] segments, NetInfo.Node[] nodes)
        {
            assetName = assetName.Replace("_Data", string.Empty);
            Logger.Warning($"Dumping asset \"{assetName}\"...");

            if (segments != null)
            {
                for (var index = 0; index < segments.Length; index++)
                {
                    var segment = segments[index];
                    if (segment == null)
                    {
                        continue;
                    }

                    DumpUtil.DumpMeshAndTextures($"{assetName}_segment_{index}", segment.m_mesh, segment.m_material);
                    DumpUtil.DumpMeshAndTextures($"{assetName}_segment_{index}_lod", segment.m_lodMesh, segment.m_lodMaterial);
                }
            }

            if (nodes != null)
            {
                for (var index = 0; index < nodes.Length; index++)
                {
                    var node = nodes[index];
                    if (node == null)
                    {
                        continue;
                    }

                    DumpUtil.DumpMeshAndTextures($"{assetName}_node_{index}", node.m_mesh, node.m_material);
                    DumpUtil.DumpMeshAndTextures($"{assetName}_node_{index}_lod", node.m_lodMesh, node.m_lodMaterial);
                }
            }

            Logger.Warning($"Successfully dumped asset \"{assetName}\"");
            return(assetName);
        }