本文整理汇总了C#中ParticleSystem.fixChildRefs方法的典型用法代码示例。如果您正苦于以下问题:C# ParticleSystem.fixChildRefs方法的具体用法?C# ParticleSystem.fixChildRefs怎么用?C# ParticleSystem.fixChildRefs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParticleSystem
的用法示例。
在下文中一共展示了ParticleSystem.fixChildRefs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: newParticles_Click
private void newParticles_Click(object sender, EventArgs e)
{
if (Properties.Settings.Default.UGCPath == "")
{
MessageBox.Show("You need to select your dota_ugc path before you can use this.", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Hand);
return;
}
if (!Directory.Exists(Path.Combine(Environment.CurrentDirectory, "decompiled_particles")))
{
DialogResult result = MessageBox.Show(
"No decompiled_particles folder detected in the D2ModKit folder. Would you like to download the decompiled particles now?",
"D2ModKit",
MessageBoxButtons.YesNo,
MessageBoxIcon.Hand);
if (result == DialogResult.Yes)
{
Process.Start("http://moddota.com/resources/decompiled_particles.zip");
}
return;
}
OpenFileDialog fileDialog = new OpenFileDialog();
Debug.WriteLine("Current directory: " + Environment.CurrentDirectory);
fileDialog.InitialDirectory = Path.Combine(Environment.CurrentDirectory, "decompiled_particles");
fileDialog.Multiselect = true;
fileDialog.Title = "Select Particles To Copy";
DialogResult res = fileDialog.ShowDialog();
// check if we actually have filenames, or the user closed the box.
if (res != DialogResult.OK)
{
return;
}
string[] particlePaths = fileDialog.FileNames;
FolderBrowserDialog browser = new FolderBrowserDialog();
// RootFolder needs to be defined for auto-scrolling to work apparently.
browser.RootFolder = getRootFolder();
// let the user see the particles directory first.
string initialPath = Path.Combine(currAddon.ContentPath, "particles");
browser.SelectedPath = initialPath;
browser.ShowNewFolderButton = true;
browser.Description =
"Browse to where the particles will be copied to. They must be placed in the particles directory.";
DialogResult browserResult = browser.ShowDialog();
if (browserResult == DialogResult.Cancel)
{
return;
}
string newFolder = browser.SelectedPath;
string folderName = newFolder.Substring(newFolder.LastIndexOf('\\') + 1);
List<Particle> particles = new List<Particle>();
foreach (string path in particlePaths)
{
bool overwriteAllowed = true;
string particleName = path.Substring(path.LastIndexOf('\\') + 1);
string targetPath = Path.Combine(newFolder, particleName);
try
{
File.Copy(path, targetPath);
}
catch (IOException) { }
if (overwriteAllowed)
{
particles.Add(new Particle(targetPath));
}
}
ParticleSystem ps = new ParticleSystem(particles);
ParticleDesignForm PDF = new ParticleDesignForm(ps);
DialogResult r = PDF.ShowDialog();
if (!PDF.SubmitClicked)
{
// User doesn't want to fork particles, so undo what we already did.
// Delete the particles that were just copied.
for (int i = 0; i < particles.Count(); i++)
{
File.Delete(particles.ElementAt(i).Path);
}
return;
}
// if particle wasn't renamed, fix the child references.
if (!PDF.Renamed)
{
ps.fixChildRefs(newFolder);
}
for (int i = 0; i < ps.Particles.Count(); i++)
{
Particle p = ps.Particles.ElementAt(i);
File.WriteAllText(p.Path, p.ToString());
//.........这里部分代码省略.........