示例#1
0
        private static void ConvertScbToGltf(FileConversionParameter parameter)
        {
            WadEntry     staticObjectWadEntry = parameter.Parameter;
            StaticObject staticObject         = StaticObject.ReadSCB(staticObjectWadEntry.GetDataHandle().GetDecompressedStream());
            ModelRoot    gltf = staticObject.ToGltf();

            gltf.SaveGLB(Path.ChangeExtension(parameter.OutputPath, "glb"));
        }
示例#2
0
        private static void ConvertSimpleSkinToGltf(FileConversionParameter parameter)
        {
            WadEntry   simpleSkinWadEntry = parameter.Parameter;
            SimpleSkin simpleSkin         = new SimpleSkin(simpleSkinWadEntry.GetDataHandle().GetDecompressedStream());
            ModelRoot  gltf = simpleSkin.ToGltf();

            gltf.SaveGLB(Path.ChangeExtension(parameter.OutputPath, "glb"));
        }
示例#3
0
        private static void ConvertMapGeometryToGltf(FileConversionParameter parameter)
        {
            WadEntry    mapGeometryWadEntry = parameter.Parameter;
            MapGeometry mapGeometry         = new MapGeometry(mapGeometryWadEntry.GetDataHandle().GetDecompressedStream());
            ModelRoot   gltf = mapGeometry.ToGLTF();

            gltf.SaveGLB(Path.ChangeExtension(parameter.OutputPath, "glb"));
        }
示例#4
0
        private static void ConvertSimpleSkinWithSkeletonToGltf(FileConversionParameter parameter)
        {
            WadEntry simpleSkinWadEntry = parameter.Parameter;
            WadEntry skeletonWadEntry   = parameter.AdditionalParameters.FirstOrDefault(x => x.Item1 == FileConversionAdditionalParameterType.Skeleton).Item2;

            SimpleSkin simpleSkin = new SimpleSkin(simpleSkinWadEntry.GetDataHandle().GetDecompressedStream());
            Skeleton   skeleton   = new Skeleton(skeletonWadEntry.GetDataHandle().GetDecompressedStream());

            ModelRoot gltf = simpleSkin.ToGltf(skeleton);

            gltf.SaveGLB(Path.ChangeExtension(parameter.OutputPath, "glb"));
        }
示例#5
0
        private static IEnumerable <string> ProcessLegacyDirList(WadEntry entry)
        {
            using Stream entryStream = entry.GetDataHandle().GetDecompressedStream();
            using (BinaryReader br = new BinaryReader(entryStream))
            {
                uint pathCount = br.ReadUInt32();

                for (int i = 0; i < pathCount; i++)
                {
                    yield return(Encoding.ASCII.GetString(br.ReadBytes(br.ReadInt32())));
                }
            }
        }
示例#6
0
        private static void ConvertScbToObj(FileConversionParameter parameter)
        {
            WadEntry     staticObjectWadEntry = parameter.Parameter;
            StaticObject staticObject         = StaticObject.ReadSCB(staticObjectWadEntry.GetDataHandle().GetDecompressedStream());
            var          objs = staticObject.ToObj();

            string baseName = Path.GetFileNameWithoutExtension(parameter.OutputPath);

            foreach ((string material, OBJFile obj) in objs)
            {
                string objPath = parameter.OutputPath.Replace(baseName, baseName + '_' + material);
                obj.Write(objPath);
            }
        }
示例#7
0
        public static string Get(WadEntry entry)
        {
            if (_hashtable.ContainsKey(entry.XXHash))
            {
                return(_hashtable[entry.XXHash]);
            }
            else
            {
                Stream decompressedStream = entry.GetDataHandle().GetDecompressedStream();
                string extension          = LeagueUtilities.GetExtension(LeagueUtilities.GetExtensionType(decompressedStream));

                return(string.Format("{0}.{1}", entry.XXHash.ToString("x16"), extension));
            }
        }