//============================================================ // <T>创建资源对象。</T> // // @param typeCd 资源类型 // @param code 代码 //============================================================ public FRsResource CreateResource(int typeCd, int code) { // 创建资源 FRsResource resource = null; switch (typeCd) { case ERsResource.Picture: resource = new FRsResourcePicture(); break; case ERsResource.Animation: resource = new FRsResourceAnimation(); break; case ERsResource.Sound: resource = new FRsResourceSound(); break; case ERsResource.Music: resource = new FRsResourceMusic(); break; } // 检查存在性 if (_resources.Contains(code)) { RMoCore.TrackConsole.Write(this, "CreateResource", "Duplicate resource code. (code={0})", code); } // 设置对照表 _resources.Set(code, resource); return(resource); }
//============================================================ // <T>保存资源信息。</T> // // @param resource 资源对象 //============================================================ public override void SaveResource(FRsResource resource) { base.SaveResource(resource); //int count = RDsResource.PicturePixelSplit; //_resourcePicture.OptionAlpha = cbxAlpha.Checked; //_resourcePicture.OptionPadding = chkPandding.Checked; //if (rbnPaletteColor64.Checked) { // _resourcePicture.QualityPalette = 64; //} //if (rbnPaletteColor128.Checked) { // _resourcePicture.QualityPalette = 128; //} //if (rbnPaletteColor256.Checked) { // _resourcePicture.QualityPalette = 256; //} //if (ranPalettePixel1.Checked) { // _resourcePicture.QualityCd = ERsResourceQuality.Min; //} //if (ranPalettePixel2.Checked) { // _resourcePicture.QualityCd = ERsResourceQuality.Lower; //} //if (ranPalettePixel3.Checked) { // _resourcePicture.QualityCd = ERsResourceQuality.Middle; //} //if (ranPalettePixel4.Checked) { // _resourcePicture.QualityCd = ERsResourceQuality.High; //} //if (ranPalettePixel5.Checked) { // _resourcePicture.QualityCd = ERsResourceQuality.Max; //} }
//============================================================ // <T>资源点击事件。</T> //============================================================ private void qrsResourceList_ResourceClick(object sender, EventArgs e) { FRsResource resource = qrsResourceList.SelectedResource; if (null != resource) { // 打开资源 resource.Open(); // 显示资源 SuspendLayout(); qrsClipViewer.Visible = false; qrsPictureViewer.Visible = false; // 显示动画 if (resource is FRsResourceAnimation) { FRsResourceAnimation animation = resource as FRsResourceAnimation; FRsResourceClip clip = animation.FristClip; qrsClipViewer.LoadClip(clip); qrsClipViewer.DoPlay(); qrsClipViewer.Visible = true; } // 显示图片 if (resource is FRsResourcePicture) { FRsResourcePicture picture = resource as FRsResourcePicture; qrsPictureViewer.LoadPicture(picture); qrsPictureViewer.Visible = true; labInfo.Text = picture.Format(); } ResumeLayout(); } }
//============================================================ public override void LoadResource(FRsResource resource) { cmbAlphaVelue.Text = null; base.LoadResource(resource); _resourceAnimation = resource as FRsResourceAnimation; // 加载信息 LoadInformation(); // 加载剪辑列表 LoadClipList(); // 设置延迟 tbrSystemDelay.Value = 1000 / _resourceAnimation.FrameDelay; selectDelay(tbrSystemDelay.Value); // 设置关键帧 tbrModuleDelay.Clear(); tbrModuleDelay.LoadInfomation(_currentClip); switch (_resourceAnimation.TimeoutCd) { case "none": radNull.Checked = true; break; case "short": radShort.Checked = true; break; case "middle": radMiddle.Checked = true; break; case "long": radLong.Checked = true; break; } switch (_resourceAnimation.QualityCd) { case ERsResourceQuality.Max: ranPalettePixel5.Checked = true; break; case ERsResourceQuality.Middle: ranPalettePixel3.Checked = true; break; case ERsResourceQuality.Lower: ranPalettePixel2.Checked = true; break; case ERsResourceQuality.High: ranPalettePixel4.Checked = true; break; case ERsResourceQuality.Min: ranPalettePixel1.Checked = true; break; default: break; } }
//============================================================ protected void SelectResource(object value) { panInfo.SuspendLayout(); // 全部隐藏 qdsPicture.Visible = false; qdsAnimation.Visible = false; qdsGrpProperty.Visible = false; if (value is FRsResourceGroup) { FRsResourceGroup group = value as FRsResourceGroup; qdsGrpProperty.Dock = DockStyle.Fill; qdsGrpProperty.LoadResource(group); qdsGrpProperty.Visible = true; } 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; } } panInfo.ResumeLayout(); }
//============================================================ 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(); }
//============================================================ // <T>根据代码查找打开的资源对象。</T> // // @param code 代码 // @return 资源对象 //============================================================ public FRsResource FindOpen(int code) { FRsResource resource = _resources.Find(code); if (resource != null) { resource.Open(); } return(resource); }
//============================================================ // <T>通过资源编号选择资源。</T> // // @param id 资源编号 //============================================================ public void SelectResourceById(int id) { // 清空资源 txtFilterValue.Text = id.ToString(); DoFilter(); // 选取资源 FRsResource resource = qrsResourceList.SelectResourceById(id); if (resource != null) { SelectResource(resource); } }
//============================================================ // <T>通过编号选择资源。</T> // // @param id 编号 // @return 资源 //============================================================ public FRsResource SelectResourceById(int id) { foreach (ListViewItem item in lvResources.Items) { FRsResource resource = item.Tag as FRsResource; if (resource.Code == id) { item.Selected = true; return(resource); } } return(null); }
//============================================================ public void SelectedResource(TreeNodeCollection nodes, FObjects <FRsResource> resources) { foreach (TreeNode node in nodes) { if (node.Checked) { FRsResource resouce = node.Tag as FRsResource; if (resouce != null) { resources.Push(resouce); } } //SelectedResource(node.Nodes, resources); } }
//============================================================ //<T>保存</T> // // @author DYWEN 20120602 //============================================================ public override void SaveResource(FRsResource resource) { base.SaveResource(resource); if (_checkd == Check.SYSTEM) { _resourceAnimation.FrameDelay = RInt.Parse(txtFrameDelay.Text); //_resourceAnimation.Id = RInt.Parse(txtId.Text); } if (_showBarycenter) { _currentClip.ValidBarycenter.X = RInt.Parse(txtbaryCenterX.Text); _currentClip.ValidBarycenter.Y = RInt.Parse(txtbaryCenterY.Text); } if (_showBloodPoint) { _currentClip.Blood.X = RInt.Parse(BloodX.Text); _currentClip.Blood.Y = RInt.Parse(BloodY.Text); } if (_showRidePoint) { _currentClip.RidePoint.X = RInt.Parse(txtRidePointX.Text); _currentClip.RidePoint.Y = RInt.Parse(txtRidePointY.Text); } //if (_showWingPoint) { // _currentClip.WingPoint.X = RInt.Parse(txtWingPointX.Text); // _currentClip.WingPoint.Y = RInt.Parse(txtWingPointY.Text); //} if (ranPalettePixel1.Checked) { _resourceAnimation.QualityCd = ERsResourceQuality.Min; } if (ranPalettePixel2.Checked) { _resourceAnimation.QualityCd = ERsResourceQuality.Lower; } if (ranPalettePixel3.Checked) { _resourceAnimation.QualityCd = ERsResourceQuality.Middle; } if (ranPalettePixel4.Checked) { _resourceAnimation.QualityCd = ERsResourceQuality.High; } if (ranPalettePixel5.Checked) { _resourceAnimation.QualityCd = ERsResourceQuality.Max; } }
//============================================================ // <T>搜索按键按下。</T> // // @param sender 事件产生者 // @param e 数据对象 //============================================================ private void cbxSearch_KeyUp(object sender, KeyEventArgs e) { string value = cbxSearch.Text; if (_filterValue == value) { return; } // 资源过滤 lvwResources.BeginUpdate(); lvwResources.Items.Clear(); foreach (IIntPair <FRsResource> pair in RContent2dManager.ResourceConsole.Resources) { FRsResource resource = pair.Value; SDsResourceTag tag = resource.Tag as SDsResourceTag; if (-1 != resource.Keyword.IndexOf(value)) { lvwResources.Items.Add(tag.item); } } lvwResources.EndUpdate(); _filterValue = value; }
//============================================================ // <T>打开资源信息。</T> //============================================================ public void Open() { FRsResourceDictionary resourceDictionary = RContent2dManager.ResourceConsole.Resources; // 初始化资源附加数据 foreach (IIntPair <FRsResource> pair in resourceDictionary) { pair.Value.Tag = new SDsResourceTag(); } // 打开资源目录 qdsCatalog.Open(); // 打开资源列表 lvwResources.BeginUpdate(); foreach (IIntPair <FRsResource> pair in resourceDictionary) { FRsResource resource = pair.Value; ListViewItem lviResource = new ListViewItem(resource.Label); if (resource.OptionValid) { lviResource.ForeColor = Color.Black; lviResource.ImageKey = resource.TypeName; } else { lviResource.ForeColor = Color.Gray; lviResource.ImageKey = resource.TypeName + "D"; } // 设置关联 SDsResourceTag tag = resource.Tag as SDsResourceTag; tag.item = lviResource; lviResource.Tag = resource; lvwResources.Items.Add(lviResource); } lvwResources.EndUpdate(); // 选择资源 SelectResource(null); }
//============================================================ // <T>选择资源。</T> // // @param resource 资源 //============================================================ public void SelectResource(FRsResource resource) { // 打开资源 resource.Open(); // 显示资源 qrsClipViewer.Visible = false; qrsPictureViewer.Visible = false; // 显示动画 if (resource is FRsResourceAnimation) { FRsResourceAnimation animation = resource as FRsResourceAnimation; FRsResourceClip clip = animation.FristClip; qrsClipViewer.LoadClip(clip); qrsClipViewer.DoPlay(); qrsClipViewer.Visible = true; } // 显示动画 if (resource is FRsResourcePicture) { FRsResourcePicture picture = resource as FRsResourcePicture; qrsPictureViewer.LoadPicture(picture); qrsPictureViewer.Visible = true; } }
//============================================================ // <T>保存资源信息。</T> // // @param resource 资源对象 //============================================================ public virtual void SaveResource(FRsResource resource) { }
//============================================================ // <T>加载目录。</T> //============================================================ public bool LoadFolder(FObjects <FRsResourceFolder> folder) { // 判断是否为空 if (null == folder) { return(false); } string directory = folder[0].Directory; // 获得所有组件 _resources.Clear(); LoadSubFolder(_resources, folder[0]); // 加载子目录 lvResources.BeginUpdate(); lvResources.Items.Clear(); foreach (INamePair <FRsResource> Pair in _resources) { FRsResource resource = Pair.Value; //if(_showCd == ERsResource.Picture) { // // 获得资源信息 // string typeName = resource.TypeName; // string folderDirectory = resource.Directory; // if(folderDirectory.StartsWith(directory)) { // folderDirectory = folderDirectory.Substring(directory.Length); // } // int id = RInt.Parse(resource.Code); // string label = resource.Label; // bool valid = resource.IsValid; // // 创建列表项目 // ListViewItem qItem = new ListViewItem(); // qItem.ImageKey = typeName; // qItem.Text = " " + id; // if(valid) { // qItem.ForeColor = Color.Black; // qItem.SubItems.Add("O"); // } else { // qItem.ForeColor = Color.Gray; // qItem.SubItems.Add(""); // } // qItem.SubItems.Add(label); // qItem.Tag = resource; // lvResources.Items.Add(qItem); // // 设置附加内容 // //SDsResourceTag tag = resource.Tag as SDsResourceTag; // //tag.item = qItem; // //tag.key = resource.Code + " " + resource.Label; //} else if(_showCd == ERsResource.Animation) { // // 获得资源信息 // string typeName = resource.TypeName; // string folderDirectory = resource.Directory; // if(folderDirectory.StartsWith(directory)) { // folderDirectory = folderDirectory.Substring(directory.Length); // } // int id = RInt.Parse(resource.Code); // string label = resource.Label; // bool valid = resource.IsValid; // // 创建列表项目 // ListViewItem qItem = new ListViewItem(); // qItem.ImageKey = typeName; // qItem.Text = " " + id; // if(valid) { // qItem.ForeColor = Color.Black; // qItem.SubItems.Add("O"); // } else { // qItem.ForeColor = Color.Gray; // qItem.SubItems.Add(""); // } // qItem.SubItems.Add(label); // qItem.Tag = resource; // lvResources.Items.Add(qItem); // // 设置附加内容 // //SRsResourceTag tag = resource.Tag as SRsResourceTag; // //tag.item = qItem; // //tag.key = resource.Id + " " + resource.Code + " " + resource.Label; //} } lvResources.EndUpdate(); return(true); }
//============================================================ // <T>选择处理。a</T> //============================================================ private void tsbSelect_Click(object sender, EventArgs e) { _selectedResource = qrpResourcePicker.SelectedResource; DialogResult = DialogResult.OK; Close(); }
//============================================================ // <T>加载资源信息。</T> // // @param resource 资源对象 //============================================================ public virtual void LoadResource(FRsResource resource) { _resource = resource; }
//============================================================ // <T>加载资源信息。</T> // // @param resource 资源对象 //============================================================ public override void LoadResource(FRsResource resource) { base.LoadResource(resource); // 设置资源 _resourcePicture = resource as FRsResourcePicture; // 设置信息 //if (null != _resourcePicture.Group) { // txtGroupName.Text = _resourcePicture.Group.Code; //} //resourceCode = _resourcePicture.Code; txtLabel.Text = _resourcePicture.Label; txtFileName.Text = _resourcePicture.FileName; cbxAlpha.Checked = _resourcePicture.OptionAlpha; chkPandding.Checked = _resourcePicture.OptionPadding; // 设置调色板类型 switch (_resourcePicture.QualityPalette) { case 64: rbnPaletteColor64.Checked = true; break;; case 128: rbnPaletteColor128.Checked = true; break;; case 256: rbnPaletteColor256.Checked = true; break;; } // 设置超时类型 switch (_resourcePicture.TimeoutCd) { case "none": radNull.Checked = true; break; case "short": radShort.Checked = true; break; case "middle": radMiddle.Checked = true; break; case "long": radLong.Checked = true; break; } // 设置质量类型 switch (_resourcePicture.QualityCd) { case ERsResourceQuality.Max: ranPalettePixel5.Checked = true; break; case ERsResourceQuality.Middle: ranPalettePixel3.Checked = true; break; case ERsResourceQuality.Lower: ranPalettePixel2.Checked = true; break; case ERsResourceQuality.High: ranPalettePixel4.Checked = true; break; case ERsResourceQuality.Min: ranPalettePixel1.Checked = true; break; default: break; } // 设置预览 qpbImage.ScaleMode = EPictureBoxMode.ScalePixel; qpbImage.LoadBitmap(_resourcePicture.Bitmap.Native); //int count = RDsResource.PicturePixelSplit; //if (_resourcePicture.QualityCd == 0 || _resourcePicture.QualityCd == count) { // _resourcePicture.QualityCd = count; // ranPalettePixel3.Checked = true; // return; //} //if (_resourcePicture.QualityCd > count) { // int sum = _resourcePicture.QualityCd / count; // if (sum == 2) { // ranPalettePixel2.Checked = true; // } // if (sum == 4) { // ranPalettePixel1.Checked = true; // } //} //if (_resourcePicture.QualityCd < count) { // int sum = count / _resourcePicture.QualityCd; // if (sum == 2) { // ranPalettePixel4.Checked = true; // } // if (sum == 4) { // ranPalettePixel5.Checked = true; // } //} }