Esempio n. 1
0
        public static void SaveMaterial(ICLIFlags flags, string path, FindLogic.Combo.ComboInfo info, ulong material)
        {
            FindLogic.Combo.MaterialInfo     materialInfo     = info.Materials[material];
            FindLogic.Combo.MaterialDataInfo materialDataInfo = info.MaterialDatas[materialInfo.MaterialData];

            Model.OWMatWriter14 materialWriter = new Model.OWMatWriter14();

            string textureDirectory = Path.Combine(path, "Textures");

            if (info.SaveRuntimeData.Threads)
            {
                info.SaveRuntimeData.Tasks.Add(Task.Run(() => {
                    SaveOWMaterialFile(path, materialInfo, materialWriter, info);
                }));
            }
            else
            {
                SaveOWMaterialFile(path, materialInfo, materialWriter, info);
            }

            foreach (KeyValuePair <ulong, ImageDefinition.ImageType> texture in materialDataInfo.Textures)
            {
                SaveTexture(flags, textureDirectory, info, texture.Key);
            }
        }
Esempio n. 2
0
        public static void SaveModelLook(ICLIFlags flags, string path, FindLogic.Combo.ComboInfo info,
                                         ulong modelLook)
        {
            Model.OWMatWriter14           materialWriter = new Model.OWMatWriter14();
            FindLogic.Combo.ModelLookInfo modelLookInfo  = info.ModelLooks[modelLook];
            if (info.SaveRuntimeData.Threads)
            {
                info.SaveRuntimeData.Tasks.Add(Task.Run(() => {
                    SaveOWMaterialModelLookFile(path, modelLookInfo, materialWriter, info);
                }));
            }
            else
            {
                SaveOWMaterialModelLookFile(path, modelLookInfo, materialWriter, info);
            }

            if (modelLookInfo.Materials == null)
            {
                return;
            }
            foreach (ulong modelLookMaterial in modelLookInfo.Materials)
            {
                SaveMaterial(flags, path, info, modelLookMaterial);
            }
        }
Esempio n. 3
0
        public static void SaveOWMaterialFile(string path, FindLogic.Combo.MaterialInfo materialInfo, Model.OWMatWriter14 materialWriter, FindLogic.Combo.ComboInfo info)
        {
            string materialPath =
                Path.Combine(path, "Materials", $"{materialInfo.GetNameIndex()}{materialWriter.Format}");

            CreateDirectoryFromFile(materialPath);
            using (Stream materialOutputStream = File.OpenWrite(materialPath)) {
                materialOutputStream.SetLength(0);
                materialWriter.Write(materialOutputStream, info, materialInfo);
            }
        }