Ejemplo n.º 1
0
 //============================================================
 // <T>打开处理。</T>
 //============================================================
 public void Open()
 {
     if (!RDirectory.Exists(_configDirectory))
     {
         return;
     }
     if (_opened)
     {
         return;
     }
     // 打开文件
     foreach (string fileName in RDirectory.ListFiles(_configDirectory))
     {
         // 检查类型
         if (!fileName.EndsWith(".xml"))
         {
             continue;
         }
         // 创建主题
         FTplTheme theme = new FTplTheme();
         theme.FileName = fileName;
         using (FXmlDocument xdocument = new FXmlDocument(fileName)) {
             theme.LoadConfig(xdocument.Root);
         }
         _themes.Set(theme.Name, theme);
         // 设置默认主题
         if (_activeTheme == null)
         {
             _activeTheme = theme;
         }
     }
     _opened = true;
 }
Ejemplo n.º 2
0
        //============================================================
        // <T>加载按钮事件。</T>
        //
        // @param sender 事件产生者
        // @param e      数据对象
        //============================================================
        private void tsbReload_Click(object sender, EventArgs e)
        {
            FStrings directorys = RDirectory.ListFiles(_resource.Directory);

            foreach (string fileName in directorys)
            {
                bool haveIt = false;
                if (fileName.EndsWith(".png"))
                {
                    //foreach (FDsResourceClip clip in _resourceAnimation.Clips) {
                    //   if (haveIt) {
                    //      break;
                    //   }
                    //   if (null != clip) {
                    //      foreach (FDsResourceFrame frame in clip.Frames) {
                    //         if (fileName.EndsWith(frame.FileName)) {
                    //            haveIt = true;
                    //            break;
                    //         }
                    //      }
                    //   }
                    //}
                    if (!haveIt)
                    {
                        MessageBox.Show(fileName);
                    }
                }
            }
        }
Ejemplo n.º 3
0
 //============================================================
 // <T>加载全部处理。</T>
 //============================================================
 public virtual void LoadAll()
 {
     // 清空集合
     if (_folders != null)
     {
         _folders.Clear();
     }
     if (_objects != null)
     {
         _objects.Clear();
     }
     // 加载所有子目录
     foreach (string path in RDirectory.ListDirectories(_directory))
     {
         // 跳过SVN目录
         if (path.IndexOf(".svn") != -1)
         {
             continue;
         }
         // 加载子目录
         OnLoadFolder(path);
     }
     if (_folders != null)
     {
         _folders.Sort();
     }
     // 加载配置
     if (RFile.Exists(ConfigFileName))
     {
         FXmlDocument xdoc = new FXmlDocument();
         xdoc.LoadFile(ConfigFileName);
         LoadConfig(xdoc.Root);
     }
 }
Ejemplo n.º 4
0
        //============================================================
        // <T>扫描资源。</T>
        //============================================================
        public override void Scan()
        {
            base.Scan();
            // 扫描所有文件
            _optionValid = true;
            FStrings fileNames = RDirectory.ListFiles(_directory);

            fileNames.Sort();
            foreach (string fileName in fileNames)
            {
                // 文件是否图片
                string name = fileName.Substring(fileName.LastIndexOf("\\") + 1);
                if (name.EndsWith(".png"))
                {
                    name = name.Substring(0, name.Length - 4);
                    // 是否符合命名标准
                    if (5 == name.Length)
                    {
                        int direction  = RInt.Parse(name.Substring(0, 1));
                        int frameIndex = RInt.Parse(name.Substring(1)) - 1;
                        // 同步剪辑
                        FRsResourceClip  clip  = SyncClip(direction);
                        FRsResourceFrame frame = new FRsResourceFrame();
                        frame.FileName = fileName;
                        clip.PushFrame(frame);
                        // 设置有效
                        _optionValid = true;
                    }
                    else
                    {
                        RMoCore.TrackConsole.Write(this, "Scan", "Invalid picture define. (file_name={0})", fileName);
                    }
                }
            }
            // 检查剪辑帧数相等
            FRsResourceClip firstClip = FristClip;

            if (null != firstClip)
            {
                foreach (FRsResourceClip clip in _clips)
                {
                    if (clip != null)
                    {
                        if (firstClip.FrameCount != clip.FrameCount)
                        {
                            RMoCore.TrackConsole.Write(this, "Scan", "Animation clip frame is differenty. (first_frames={0}, clip_frames={1})",
                                                       firstClip.FrameCount, clip.FrameCount);
                        }
                    }
                }
            }
            string _configName = _directory + "\\config.xml";

            if (RFile.Exists(_configName))
            {
                FXmlDocument xdoc = new FXmlDocument();
                xdoc.LoadFile(_configName);
                LoadConfig(xdoc.Root);
            }
        }
Ejemplo n.º 5
0
        static void FilterProject(string projectName, string path)
        {
            // 获得项目文件集合
            FDictionary <SFileInfo> infos = new FDictionary <SFileInfo>();

            foreach (string fileName in RDirectory.ListFiles(path))
            {
                if (fileName.EndsWith(".h") || fileName.EndsWith(".cpp"))
                {
                    string    formatName = fileName.Replace('\\', '/');
                    string    name       = RString.Right(formatName, "/");
                    SFileInfo info       = new SFileInfo();
                    info.fileName = formatName;
                    info.include  = false;
                    infos.Set(name, info);
                }
            }
            // 查找使用中的文件集合
            string       configFileName = path + "/vcproject/" + projectName + ".vcxproj";
            FXmlDocument document       = new FXmlDocument(configFileName);

            foreach (FXmlNode xnode in document.Root.Nodes)
            {
                if (xnode.IsName("ItemGroup"))
                {
                    foreach (FXmlNode xfile in xnode.Nodes)
                    {
                        if (xfile.IsName("ClInclude") || xfile.IsName("ClCompile"))
                        {
                            string    include = xfile.Get("Include");
                            string    name    = RString.Right(include, "\\");
                            SFileInfo info    = infos.Find(name);
                            if (info != null)
                            {
                                info.include = true;
                            }
                        }
                    }
                }
            }
            // 查找删除集合
            foreach (SFileInfo info in infos.Values)
            {
                if (!info.include)
                {
                    RLogger.Find(typeof(SFileInfo)).Debug(null, "FilterProject", info.fileName);
                    File.Delete(info.fileName);
                }
            }
            // 查找没用目录
            RDirectory.Delete(path + "/build");
            RDirectory.Delete(path + "/dist");
            RDirectory.Delete(path + "/nbproject/private");
            RDirectory.Delete(path + "/maproject/libs");
            RDirectory.Delete(path + "/maproject/obj");
            RDirectory.Delete(path + "/vcproject/Debug");
            RDirectory.Delete(path + "/vcproject/Release");
            RDirectory.Delete(path + "/vcproject/x64");
            File.Delete(path + "/vcproject/" + projectName + ".vcxproj.user");
        }
Ejemplo n.º 6
0
        //============================================================
        // <T>扫描工作路径,获得对象列表。</T>
        //============================================================
        public override void Scan()
        {
            base.Scan();
            // 检查文件集合
            FStrings fileNames = RDirectory.ListFiles(_directory);

            foreach (string fileName in fileNames)
            {
                if (fileName.EndsWith(".xml"))
                {
                    string name = RFile.GetFileName(fileName);
                    name = name.Substring(0, name.Length - 4);
                    if (name.StartsWith("import.") || name.StartsWith("temp."))
                    {
                        continue;
                    }
                    FDrScene scene = new FDrScene();
                    scene.Name            = _name;
                    scene.Label           = _label;
                    scene.TechniqueName   = name;
                    scene.Directory       = _directory;
                    scene.DirectoryExprot = _directoryExprot;
                    scene.Scan();
                    _scenes.Push(scene);
                }
            }
            // 设置目录
            _exportFileName = _directoryExprot + "\\sc_" + Code + ".swf";
            // 加载设置文件
            if (RFile.Exists(_configFileName))
            {
                //LoadConfig(new FXmlDocument(_directory + "\\config.xml").Root);
            }
        }
Ejemplo n.º 7
0
        //============================================================
        // <T>扫描工作路径,获得对象列表。</T>
        //============================================================
        public override void Scan()
        {
            base.Scan();
            // 设置目录
            _exportFileName = _directoryExprot + "\\tx_" + Code + ".swf";
            // 查询图片
            string resourceDirectory = RContent3dManager.TextureConsole.ResourceDirectory;

            foreach (string filename in RDirectory.ListFiles(_directory))
            {
                if (filename.EndsWith(".jpg"))
                {
                    FFileInfo        info   = new FFileInfo(filename);
                    FDrTextureBitmap bitmap = new FDrTextureBitmap();
                    bitmap.TypeCd   = EDrTexture.Diffuse;
                    bitmap.Source   = info.FullName.Substring(resourceDirectory.Length);
                    bitmap.FileName = info.FullName;
                    bitmap.Length   = info.Info.Length;
                    _bitmaps.Push(bitmap);
                }
            }
            // 加载设置文件
            if (RFile.Exists(_configFileName))
            {
                LoadConfigFile(_configFileName);
            }
        }
Ejemplo n.º 8
0
        //============================================================
        // <T>加载文件夹信息,取得地址。</T>
        // <P>加载文件下文件信息,取得文件地址。</P>
        //
        // @param directory 文件路径。
        //============================================================
        public void LoadDirectory(string directory)
        {
            // 加载给定路径下面的文件夹.
            FStrings paths = RDirectory.ListDirectories(directory);
            int      count = paths.Count;

            for (int n = 0; n < count; n++)
            {
                // 检查文件夹
                string path = paths[n];
                if (path.Contains(".svn"))
                {
                    continue;
                }
                // 取得文件夹类型名称。
                string name  = path.Substring(path.LastIndexOf("\\") + 1);
                string id    = name.Substring(0, name.IndexOf('-'));
                string label = name.Substring(name.IndexOf('-') + 1).Trim();
                // 文件夹的全路径地址。
                FDsMap map = new FDsMap();
                map.Resource.Directory = path;
                map.Resource.Tid       = RInt.Parse(id);
                map.Resource.Name      = name;
                map.Resource.Label     = label;
                map.Resource.LoadDirectory();
                _maps.Push(map.Resource);
            }
        }
Ejemplo n.º 9
0
        //============================================================
        // <T>扫描资源控制台。</T>
        //
        // @author TYFNG 20120409
        //============================================================
        public void Scan()
        {
            // 检查文件存在性
            if (!RDirectory.Exists(_directory))
            {
                return;
            }
            // 扫描文件
            FStrings fileNames = RDirectory.ListFiles(_directory);

            foreach (string fileName in fileNames)
            {
                // 检查后缀
                if (!fileName.EndsWith(".xml"))
                {
                    continue;
                }
                // 解析资源
                string     name    = fileName.Substring(fileName.LastIndexOf("\\") + 1);
                string     code    = name.Substring(0, name.Length - 4);
                FRsDataset dataset = new FRsDataset();
                dataset.Code     = code;
                dataset.FileName = fileName;
                _datasets.Set(code, dataset);
            }
        }
Ejemplo n.º 10
0
 //============================================================
 // <T>加载所有目录。</T>
 //============================================================
 public virtual void LoadFolderAll()
 {
     // 加载所有子目录
     foreach (string path in RDirectory.ListDirectories(_directory))
     {
         // 跳过SVN目录
         if (path.IndexOf(".svn") != -1)
         {
             continue;
         }
         // 加载子目录
         OnLoadFolder(path);
     }
     if (_folders != null)
     {
         _folders.Sort();
     }
     // 加载配置
     if (RFile.Exists(ConfigFileName))
     {
         FXmlDocument xdoc = new FXmlDocument();
         try {
             xdoc.LoadFile(ConfigFileName);
         } catch (Exception e) {
             throw new FFatalException(e, "Open config file error. (file_name={0})", ConfigFileName);
         }
         LoadConfig(xdoc.Root);
     }
 }
Ejemplo n.º 11
0
 //============================================================
 // <T>加载文件夹信息</T>
 //
 // @param config 文件路径。
 //============================================================
 public void Open()
 {
     if (!RDirectory.Exists(_configDirectory))
     {
         return;
     }
     LoadDirectory(_configDirectory);
 }
Ejemplo n.º 12
0
 //============================================================
 // <T>压缩数据保存为指定文件。</T>
 //
 // @param fileName 文件名称
 //============================================================
 public void Compress(string fileName)
 {
     // 建立目录
     RDirectory.MakeDirectoriesForFile(fileName);
     // 输出文件
     byte[] data = InnerCompress(_memory, 0, _length);
     using (FByteFile file = new FByteFile()) {
         file.Assign(data, 0, data.Length);
         file.SaveFile(fileName);
     }
 }
Ejemplo n.º 13
0
        //============================================================
        // <T>递归加载文件信息。</T>
        //
        // @param folders 文件集合
        // @author TYFNG 1203024
        //============================================================
        protected void ScanFolder(FRsResourceFolder parentFolder)
        {
            // 处理所有子文件夹
            FStrings directoryNames = RDirectory.ListDirectories(parentFolder.Directory);

            foreach (string directoryName in directoryNames)
            {
                if (-1 != directoryName.IndexOf(".svn"))
                {
                    continue;
                }
                string fileName = directoryName.Substring(directoryName.LastIndexOf("\\") + 1);
                // 解析动画资源
                if (fileName.StartsWith("RA-"))
                {
                    string name      = fileName.Substring(3);
                    string fullName  = name;
                    string label     = name;
                    int    codeIndex = name.IndexOf("-");
                    if (-1 != codeIndex)
                    {
                        name = name.Substring(0, codeIndex);
                    }
                    name = name.Replace(".", "");
                    // 创建图片资源
                    int code = RInt.Parse(name);
                    FRsResourceAnimation animation = CreateResource(ERsResource.Animation, code) as FRsResourceAnimation;
                    animation.Folder    = parentFolder;
                    animation.Code      = code;
                    animation.Name      = name;
                    animation.Label     = label;
                    animation.FullLabel = parentFolder.FullLabel + "\\" + label;
                    animation.Keyword   = label.Replace(".", "");
                    animation.Directory = directoryName;
                    animation.Scan();
                    parentFolder.Resources.Push(animation);
                }
                else
                {
                    // 创建子文件夹
                    FRsResourceFolder folder = new FRsResourceFolder();
                    folder.Label     = fileName;
                    folder.FullLabel = parentFolder.FullLabel + "\\" + fileName;
                    folder.Directory = directoryName;
                    parentFolder.Folders.Push(folder);
                    // 扫描子文件夹
                    ScanFolder(folder);
                }
            }
            // 扫描文件夹
            parentFolder.Scan();
        }
Ejemplo n.º 14
0
 //============================================================
 // <T>导出全部</T>
 //============================================================
 public void TaskExportAll()
 {
     // 清除文件
     RDirectory.Clear(_exportDirectory);
     // 导出模板
     foreach (INamePair <FDrCamera> pair in _cameras)
     {
         FRsExportTask task = new FRsExportTask();
         task.Label    = pair.Value.TypeLabel;
         task.Exporter = pair.Value;
         RMoCore.TaskConsole.Push(task);
     }
 }
Ejemplo n.º 15
0
        //============================================================
        // <T>导出资源。</T>
        //============================================================
        public void Merge()
        {
            // 计算范围
            int             clipCount  = ClipNotEmptyCount;
            FRsResourceClip firstClip  = FristClip;
            int             frameCount = 0;

            if (null != firstClip)
            {
                frameCount = firstClip.FrameCount;
            }
            else
            {
                RMoCore.TrackConsole.Write(this, "Merge", "Animatioin is valid, first clip is empty. (code={0})", Code);
                return;
            }
            int width  = _size.Width * frameCount;
            int height = _size.Height * clipCount;

            // 计算是否合并
            using (Bitmap bitmap = new Bitmap(width, height)) {
                // 合并图片
                int y = 0;
                foreach (FRsResourceClip clip in _clips)
                {
                    if (clip != null)
                    {
                        if (!clip.Frames.IsEmpty())
                        {
                            for (int x = 0; x < frameCount; x++)
                            {
                                FRsResourceFrame frame = clip.Frames[x];
                                int cx = _size.Width * x;
                                int cy = _size.Height * y;
                                if (frame.ValidBitmap != null)
                                {
                                    frame.MergeLocation.Set(cx, cy);
                                    RBitmap.Copy(frame.ValidBitmap, new SIntRectangle(0, 0, frame.ValidBitmap.Width, frame.ValidBitmap.Height), bitmap, frame.MergeLocation);
                                }
                            }
                            y++;
                        }
                    }
                }
                // 存储图片
                _mergeFileName = RContent2dManager.ResourceConsole.MergeDirectory + "\\" + Code + ".png";
                RDirectory.MakeDirectoriesForFile(_mergeFileName);
                bitmap.Save(_mergeFileName);
                _mergeSize.Set(bitmap.Width, bitmap.Height);
            }
        }
Ejemplo n.º 16
0
 //============================================================
 // <T>打开材质信息。</T>
 //============================================================
 public void Open()
 {
     if (!_initialized)
     {
         _configFileName = _path + "\\config.xml";
         _exportFileName = _exprotPath + "\\mp_" + _name + ".swf";
         // 加载设置文件
         if (RFile.Exists(_configFileName))
         {
             LoadConfigFile(_configFileName);
         }
         // 设置输出路径
         _exportFilePath = _exprotPath + "\\" + RInt.Pad(_id, 4);
         RDirectory.MakeDirectories(_exportFilePath);
         _initialized = true;
     }
 }
Ejemplo n.º 17
0
        //============================================================
        // <T>加载文件夹信息,取得地址。</T>
        // <P>加载文件下文件信息,取得文件地址。</P>
        //
        // @param directory 文件路径。
        //============================================================
        public void LoadDirectory(string directory)
        {
            // 加载给定路径下面的文件夹.
            FStrings paths = RDirectory.ListDirectories(directory);
            int      count = paths.Count;

            for (int n = 0; n < count; n++)
            {
                // 检查文件夹
                string path = paths[n];
                if (path.Contains(".svn"))
                {
                    continue;
                }
                // 取得文件夹类型名称。
                string fullName = path.Substring(path.LastIndexOf("\\") + 1);
                string id       = fullName.Substring(0, fullName.IndexOf('-'));
                string label    = fullName.Substring(fullName.IndexOf('-') + 1).Trim();
                // 文件夹的全路径地址。
                FDsMapTileCatalog mapTileCatalog = new FDsMapTileCatalog();
                mapTileCatalog.Resource.Id       = RInt.Parse(id);
                mapTileCatalog.Resource.FullName = fullName;
                mapTileCatalog.Resource.Lable    = label;
                _mapTileCatalogs.Push(mapTileCatalog.Resource);
                //加载瓦片图片集合
                FStrings files     = RDirectory.ListFiles(path);
                int      fileCount = files.Count;
                for (int i = 0; i < fileCount; i++)
                {
                    string file = files[i];
                    if (!file.Contains(".png"))
                    {
                        continue;
                    }
                    // 取得文件名称。
                    string tileId   = file.Substring(file.LastIndexOf("\\") + 1, 4);
                    Bitmap resource = new Bitmap(file);
                    // 文件的全路径地址
                    FDsMapTile mapTile = new FDsMapTile();
                    mapTile.Resource.Id       = RInt.Parse(id + "" + tileId);
                    mapTile.Resource.Resource = resource;
                    mapTileCatalog.Resource.MapTiles.Push(mapTile.Resource);
                }
            }
        }
Ejemplo n.º 18
0
        //============================================================
        // <T>打开处理。</T>
        //============================================================
        public void ScanTextures()
        {
            string rootDirectory = _folder.Directory;

            foreach (INamePair <FDrTexture> pair in RContent3dManager.TextureConsole.Textures)
            {
                FDrTexture       texture       = pair.Value;
                String           name          = texture.Name;
                FDrMaterialGroup materialGroup = FindGroup(name);
                if (materialGroup != null)
                {
                    continue;
                }
                // 创建材质组
                FDrFolder             folder = texture.Folder;
                FObjects <FCfgFolder> stack  = folder.FetchFolderStack(false);
                string materialPath          = folder.FolderPath().Replace("tx-", "mt-");
                string materialDirectory     = rootDirectory + materialPath;
                RDirectory.MakeDirectories(materialDirectory);
                FDrTheme theme = RContent3dManager.ThemeConsole.DefaultTheme;
                // 创建材质组
                materialGroup                = new FDrMaterialGroup();
                materialGroup.Name           = name;
                materialGroup.ConfigFileName = materialDirectory + "/config.xml";
                // 创建材质
                FDrMaterial material = new FDrMaterial();
                material.Theme      = theme;
                material.EffectName = theme.EffectName;
                materialGroup.Materials.Push(material);
                foreach (FDrTextureBitmap bitmap in texture.Bitmaps)
                {
                    FDrMaterialTexture materialTexture = new FDrMaterialTexture();
                    materialTexture.TypeCd       = bitmap.TypeCd;
                    materialTexture.Source       = texture.Name;
                    materialTexture.SourceTypeCd = bitmap.TypeCd;
                    materialTexture.SourceIndex  = bitmap.Index;
                    materialGroup.Textures.Push(materialTexture);
                }
                // 存储材质
                materialGroup.Store();
                _materials.Set(name, materialGroup);
                _logger.Debug(this, "ScanTextures", "Create material. (name={0})", materialDirectory);
            }
        }
Ejemplo n.º 19
0
 //============================================================
 // <T>导出所有资源。</T>
 //
 // @param modeCd 导出模式
 //============================================================
 public void TaskExportAll(ERsExportMode modeCd)
 {
     // 清除导出目录
     RDirectory.Clear(_exportDirectory);
     // 导出资源
     foreach (FRsResource resource in _resources.Values)
     {
         //if (!resource.OptionExport) {
         //   continue;
         //}
         if (resource is FRsResourcePicture)
         {
             FRsExportTask task = new FRsExportTask();
             task.Exporter = resource;
             task.ModeCd   = modeCd;
             RMoCore.TaskConsole.Push(task);
         }
         if (resource is FRsResourceAnimation)
         {
             FRsExportTask task = new FRsExportTask();
             task.Exporter = resource;
             task.ModeCd   = modeCd;
             RMoCore.TaskConsole.Push(task);
         }
         if (resource is FRsResourceSound)
         {
             FRsExportTask task = new FRsExportTask();
             task.Exporter = resource;
             task.ModeCd   = modeCd;
             RMoCore.TaskConsole.Push(task);
         }
         if (resource is FRsResourceMusic)
         {
             FRsExportTask task = new FRsExportTask();
             task.Exporter = resource;
             task.ModeCd   = modeCd;
             RMoCore.TaskConsole.Push(task);
         }
     }
 }
Ejemplo n.º 20
0
        //============================================================
        // <T>加载文件夹信息,取得地址。</T>
        // <P>加载文件下文件信息,取得文件地址。</P>
        //
        // @param directory 文件路径。
        //============================================================
        public void LoadDirectory(string rootDirectory)
        {
            // 加载给定路径下面的文件夹.
            FStrings directorys = RDirectory.ListDirectories(rootDirectory);

            foreach (string directory in directorys)
            {
                // 检查文件夹
                if (directory.Contains(".svn"))
                {
                    continue;
                }
                // 取得文件夹类型名称。
                string fileName       = directory.Substring(directory.LastIndexOf("\\") + 1);
                int    codeIndex      = fileName.IndexOf('-');
                string code           = fileName.Substring(0, codeIndex);
                int    nameBeginIndex = fileName.IndexOf('(');
                int    nameEndIndex   = fileName.LastIndexOf(')');
                string name           = fileName.Substring(nameBeginIndex + 1, nameEndIndex - nameBeginIndex - 1).Trim();
                string typeName       = RString.FirstUpper(name.Substring(name.LastIndexOf('.') + 1));
                string label          = fileName.Substring(codeIndex + 1, nameBeginIndex - codeIndex - 1).Trim();
                // 文件夹的全路径地址。
                FRcFrame frame = CreateComponent(typeName) as FRcFrame;
                if (frame != null)
                {
                    // 设置属性
                    frame.Code  = RInt.Parse(code);
                    frame.Name  = name;
                    frame.Label = label;
                    // 设置信息
                    frame.FileName  = directory + @"\config.xml";
                    frame.Directory = directory;
                    // 放入集合
                    _frames.Set(name, frame);
                }
            }
        }
Ejemplo n.º 21
0
        //============================================================
        // <T>扫描工作路径,获得对象列表。</T>
        //============================================================
        public override void Scan()
        {
            base.Scan();
            // 设置目录
            _exportFileName = _directoryExprot + "\\tx_" + Code + ".swf";
            // 查询图片
            string resourceDirectory = RContent3dManager.TextureConsole.ResourceDirectory;

            foreach (string filename in RDirectory.ListFiles(_directory))
            {
                if (filename.EndsWith("layer.merge.jpg"))
                {
                    // 加入和冰层
                    FFileInfo        info   = new FFileInfo(filename);
                    FDrTextureBitmap bitmap = new FDrTextureBitmap();
                    bitmap.TypeCd   = EDrTexture.LayerMerge;
                    bitmap.Source   = info.FullName.Substring(resourceDirectory.Length);
                    bitmap.FileName = info.FullName;
                    bitmap.Length   = info.Info.Length;
                    _bitmaps.Push(bitmap);
                }
            }
            foreach (string filename in RDirectory.ListFiles(_directory))
            {
                if (filename.EndsWith("layer.merge.jpg"))
                {
                    continue;
                }
                else if (filename.EndsWith(".jpg") && !filename.EndsWith(".m.jpg"))
                {
                    // 加入纹理层
                    FFileInfo        info   = new FFileInfo(filename);
                    FDrTextureBitmap bitmap = new FDrTextureBitmap();
                    if (filename.EndsWith("layer.1.jpg"))
                    {
                        bitmap.TypeCd = EDrTexture.Layer1;
                    }
                    else if (filename.EndsWith("layer.2.jpg"))
                    {
                        bitmap.TypeCd = EDrTexture.Layer2;
                    }
                    else if (filename.EndsWith("layer.3.jpg"))
                    {
                        bitmap.TypeCd = EDrTexture.Layer3;
                    }
                    else if (filename.EndsWith("layer.4.jpg"))
                    {
                        bitmap.TypeCd = EDrTexture.Layer4;
                    }
                    bitmap.Source   = info.FullName.Substring(resourceDirectory.Length);
                    bitmap.FileName = info.FullName;
                    bitmap.Length   = info.Info.Length;
                    _bitmaps.Push(bitmap);
                }
            }
            // 加载设置文件
            if (RFile.Exists(_configFileName))
            {
                LoadConfigFile(_configFileName);
            }
        }
Ejemplo n.º 22
0
        //============================================================
        // <T>扫描文件夹。</T>
        //============================================================
        public void Scan()
        {
            // 处理所有子文件
            FStrings fileNames = RDirectory.ListFiles(_directory);

            foreach (string fileName in fileNames)
            {
                if (-1 != fileName.IndexOf(".svn"))
                {
                    continue;
                }
                // 解析资源
                string shortName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
                string name      = shortName.Substring(3);
                // 解析图片资源
                if (shortName.StartsWith("RP-"))
                {
                    string fullName   = name;
                    string label      = name;
                    int    codeIndex  = name.IndexOf("-");
                    int    labelIndex = name.IndexOf(".png");
                    if (-1 != codeIndex)
                    {
                        label    = name.Substring(0, labelIndex);
                        fullName = name.Substring(codeIndex + 1, labelIndex - codeIndex);
                        name     = name.Substring(0, codeIndex);
                    }
                    if (11 == name.Length)
                    {
                        name = name.Replace(".", "");
                        // 创建图片资源
                        int code = RInt.Parse(name);
                        FRsResourcePicture picture = RContent2dManager.ResourceConsole.CreateResource(ERsResource.Picture, code) as FRsResourcePicture;
                        picture.Folder    = this;
                        picture.Code      = code;
                        picture.Name      = name;
                        picture.Label     = label;
                        picture.FullLabel = FullLabel + "\\" + label;
                        picture.Keyword   = label.Replace(".", "");
                        picture.FileName  = fileName;
                        picture.Directory = _directory;
                        picture.Scan();
                        _resources.Push(picture);
                    }
                }
                // 解析音乐资源
                if (shortName.StartsWith("RM-"))
                {
                    string fullName   = name;
                    string label      = name;
                    int    codeIndex  = name.IndexOf("-");
                    int    labelIndex = name.IndexOf(".mp3");
                    if (-1 != codeIndex)
                    {
                        label    = name.Substring(0, labelIndex);
                        fullName = name.Substring(codeIndex + 1, labelIndex - codeIndex);
                        name     = name.Substring(0, codeIndex);
                    }
                    if (11 == name.Length)
                    {
                        name = name.Replace(".", "");
                        // 创建音乐资源
                        int code = RInt.Parse(name);
                        FRsResourceMusic music = RContent2dManager.ResourceConsole.CreateResource(ERsResource.Music, code) as FRsResourceMusic;
                        music.Folder    = this;
                        music.Code      = code;
                        music.Name      = name;
                        music.Label     = label;
                        music.FullLabel = FullLabel + "\\" + label;
                        music.Keyword   = label.Replace(".", "");
                        music.FileName  = fileName;
                        music.Directory = _directory;
                        music.Scan();
                        _resources.Push(music);
                    }
                }
                // 解析声音资源
                if (shortName.StartsWith("RS-"))
                {
                    string fullName   = name;
                    string label      = name;
                    int    codeIndex  = name.IndexOf("-");
                    int    labelIndex = name.IndexOf(".mp3");
                    if (-1 != codeIndex)
                    {
                        label    = name.Substring(0, labelIndex);
                        fullName = name.Substring(codeIndex + 1, labelIndex - codeIndex);
                        name     = name.Substring(0, codeIndex);
                    }
                    if (11 == name.Length)
                    {
                        name = name.Replace(".", "");
                        // 创建声音资源
                        int code = RInt.Parse(name);
                        FRsResourceSound sound = RContent2dManager.ResourceConsole.CreateResource(ERsResource.Sound, code) as FRsResourceSound;
                        sound.Folder    = this;
                        sound.Code      = code;
                        sound.Name      = name;
                        sound.Label     = label;
                        sound.FullLabel = FullLabel + "\\" + label;
                        sound.Keyword   = label.Replace(".", "");
                        sound.FileName  = fileName;
                        sound.Directory = _directory;
                        sound.Scan();
                        _resources.Push(sound);
                    }
                }
            }
            // 加载设置信息
            //_configName = _directory + "\\config.xml";
            //if (RFile.Exists(_configName)) {
            //   FXmlDocument xdoc = new FXmlDocument();
            //   xdoc.LoadFile(_configName);
            //   foreach (FXmlNode xnode in xdoc.Root.Nodes) {
            //      if (xnode.IsName("Object")) {
            //         string code = null;
            //         if (xnode.Contains("code")) {
            //            code = xnode.Get("code");
            //         } else {
            //            code = xnode.Get("id", String.Empty);
            //         }
            //         if ("" == code) {
            //         }
            //         //FDsResource resource = FindResourceById(code);
            //         //if(null != resource) {
            //         //   resource.LoadConfig(xnode);
            //         //}
            //      }
            //   }
            //}
        }
Ejemplo n.º 23
0
 //============================================================
 // <T>清空导出目录。</T>
 //============================================================
 public void ExportDirectoryClear()
 {
     RDirectory.Clear(RContent3dManager.TextureConsole.ExportDirectory);
 }