Exemple #1
0
        //============================================================
        // <T>加载设置信息。</T>
        //
        // @param xconfig 设置节点
        //============================================================
        public override void LoadConfig(FXmlNode xconfig)
        {
            foreach (FXmlNode xnode in xconfig.Nodes)
            {
                if (xnode.IsName("Property"))
                {
                    string name = xnode.Get("name");
                    // 创建资源文件夹
                    switch (name)
                    {
                    case "resource_directory":
                        FRsResourceFolder folder = new FRsResourceFolder();
                        folder.Directory = RMoCommon.ParseEnvironment(xnode.Text);
                        _folders.Push(folder);
                        break;

                    case "export_directory":
                        _exportDirectory = RMoCommon.ParseEnvironment(xnode.Text);
                        break;

                    case "merge_directory":
                        _mergeDirectory = RMoCommon.ParseEnvironment(xnode.Text);
                        break;
                    }
                }
            }
        }
Exemple #2
0
 //============================================================
 // <T>加载子目录。</T>
 //============================================================
 protected bool LoadSubFolder(FDictionary <FRsResource> resources, FRsResourceFolder folder)
 {
     // 判断是否为空
     if (null == folder)
     {
         return(false);
     }
     // 加载子目录
     foreach (FRsResourceFolder subFolder in folder.Folders)
     {
         if (null != subFolder)
         {
             LoadSubFolder(resources, subFolder as FRsResourceFolder);
         }
     }
     foreach (FRsResource cfgObject in folder.Resources)
     {
         if (null != cfgObject)
         {
             //cfgObject.Tag = new SDsResourceTag();
             //resources.Set(cfgObject.Code, cfgObject);
         }
     }
     return(true);
 }
Exemple #3
0
        //============================================================
        protected void SelectResource(object value)
        {
            pnlInfo.SuspendLayout();
            // 全部隐藏
            qdsPicture.Visible   = false;
            qdsAnimation.Visible = false;
            // 对象处理
            if (value is FRsResourceFolder)
            {
                FRsResourceFolder folder = value as FRsResourceFolder;
                // 目录处理
                labNameDisplay.Text = "目录:" + folder.Label;
            }
            else if (value is FRsResource)
            {
                FRsResource resource = value as FRsResource;
                resource.Open();
                // 资源处理
                switch (resource.TypeCd)
                {
                case ERsResource.Picture:
                    labNameDisplay.Text = "图片:" + resource.Label;
                    qdsPicture.Dock     = DockStyle.Fill;
                    qdsPicture.LoadResource(resource);
                    qdsPicture.Visible = true;
                    break;

                case ERsResource.Animation:
                    labNameDisplay.Text = "动画:" + resource.Label;
                    qdsAnimation.Dock   = DockStyle.Fill;
                    qdsAnimation.LoadResource(resource);
                    qdsAnimation.Visible = true;
                    break;

                case ERsResource.Sound:
                    labNameDisplay.Text = "音效:" + resource.Label;
                    //qucSound.Dock = DockStyle.Fill;
                    //qucSound.Visible = true;
                    break;

                case ERsResource.Music:
                    labNameDisplay.Text = "音乐:" + resource.Label;
                    //qucMusic.Dock = DockStyle.Fill;
                    //qucMusic.Visible = true;
                    break;

                case ERsResource.Swf:
                    labNameDisplay.Text = "特效:" + resource.Label;
                    //qucSwf.LoadResource(_resource);
                    //qucSwf.Dock = DockStyle.Fill;
                    //qucSwf.Visible = true;
                    break;
                }
            }
            pnlInfo.ResumeLayout();
        }
Exemple #4
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();
        }
 //============================================================
 // <T>建立资源目录。</T>
 //============================================================
 protected void BuildResourceNode(FRsResourceFolder folder, TreeNodeCollection nodes)
 {
     // 建立所有子目录
     if (!folder.Folders.IsEmpty())
     {
         foreach (FRsResourceFolder subfolder in folder.Folders)
         {
             TreeNode node = new TreeNode(subfolder.Label);
             node.Tag = subfolder;
             nodes.Add(node);
             // 递归处理子目录
             BuildResourceNode(subfolder, node.Nodes);
         }
     }
     // 建立所有子资源
     if (!folder.Resources.IsEmpty())
     {
         foreach (FRsResource resource in folder.Resources)
         {
             string   typeFullName = ERsResource.ToFullName(resource.TypeName);
             TreeNode node         = new TreeNode(resource.Label);
             if (resource.OptionValid)
             {
                 node.ForeColor        = Color.Black;
                 node.ImageKey         = typeFullName;
                 node.SelectedImageKey = typeFullName;
             }
             else
             {
                 node.ForeColor        = Color.Gray;
                 node.ImageKey         = typeFullName + "D";
                 node.SelectedImageKey = typeFullName + "D";
             }
             node.Tag = resource;
             nodes.Add(node);
         }
     }
 }