コード例 #1
0
 public override void Update()
 {
     this.TypeButton.IsEnabled = false;
     if (this.OKButton.IsClicked)
     {
         DialogsManager.HideDialog(this);
     }
     if (this.ImportButton.IsClicked)
     {
         if (!Directory.Exists(CreatorMain.CacheDirectory))
         {
             Directory.CreateDirectory(CreatorMain.CacheDirectory);
         }
         string sdFile  = CreatorMain.OneKeyFile;
         string _sdFile = CreatorMain.Export_OnekeyFile_Directory + "/" + (string)this.ListView.SelectedItem;
         if (!FileOperation.IsFileInUse(_sdFile) && (!File.Exists(sdFile) || !FileOperation.IsFileInUse(sdFile)))
         {
             FileStream fileStream = new FileStream(_sdFile, FileMode.Open);
             FileStream file       = new FileStream(sdFile, FileMode.Create);
             fileStream.CopyTo(file);
             file.Dispose();
             fileStream.Dispose();
             player.ComponentGui.DisplaySmallMessage("导入成功!", true, false);
         }
         else
         {
             player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
         }
         DialogsManager.HideDialog(this);
     }
     if (DeleteButton.IsClicked)
     {
         string sdFile = CreatorMain.Export_OnekeyFile_Directory + "/" + (string)this.ListView.SelectedItem;
         if (FileOperation.Delete(sdFile))
         {
             player.ComponentGui.DisplaySmallMessage("删除成功!", true, false);
             UpList();
         }
         else
         {
             player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
         }
     }
     this.DerivedButton.IsEnabled = File.Exists(CreatorMain.OneKeyFile);
     if (this.DerivedButton.IsClicked)
     {
         DialogsManager.ShowDialog(player.View.GameWidget, new DerivedDialog(player, this, this.ListView));
     }
     if (this.CreateButton.IsClicked)
     {
         if (creatorAPI.Position[2] == new Point3(0, -1, 0))
         {
             player.ComponentGui.DisplaySmallMessage("请设置点3!", true, false);
         }
         else
         {
             Task.Run(() =>
             {
                 try
                 {
                     if (!Directory.Exists(CreatorMain.CacheDirectory))
                     {
                         Directory.CreateDirectory(CreatorMain.CacheDirectory);
                     }
                     OnekeyGeneration.CreateOnekey(creatorAPI, CreatorMain.CacheDirectory + "/", "CacheFile.od", creatorAPI.Position[0], creatorAPI.Position[1], creatorAPI.Position[2]);
                 }
                 catch (Exception e)
                 {
                     player.ComponentGui.DisplaySmallMessage(e.Message, true, false);
                 }
             });
         }
         DialogsManager.HideDialog(this);
     }
     if (ListView.SelectedIndex == null)
     {
         this.ImportButton.IsEnabled = false;
         this.DeleteButton.IsEnabled = false;
     }
     else
     {
         this.ImportButton.IsEnabled = true;
         this.DeleteButton.IsEnabled = true;
     }
     if (creatorAPI.oneKeyGeneration)
     {
         OnAndOffButton.Color = Color.Yellow;
     }
     else
     {
         OnAndOffButton.Color = Color.Red;
     }
     if (OnAndOffButton.IsClicked)
     {
         if (creatorAPI.oneKeyGeneration)
         {
             creatorAPI.oneKeyGeneration = false;
         }
         else
         {
             creatorAPI.oneKeyGeneration = true;
         }
     }
 }
コード例 #2
0
 public override void Update()
 {
     if (ListView.SelectedIndex == null)
     {
         this.ImportButton.IsEnabled = false;
         this.DeleteButton.IsEnabled = false;
     }
     else
     {
         this.ImportButton.IsEnabled = true;
         this.DeleteButton.IsEnabled = true;
     }
     if (this.OK.IsClicked)
     {
         DialogsManager.HideDialog(this);
     }
     if (DeleteButton.IsClicked)
     {
         string sdFile = CreatorMain.Export_ModFile_Directory + "/" + (string)this.ListView.SelectedItem;
         if (FileOperation.Delete(sdFile))
         {
             player.ComponentGui.DisplaySmallMessage("删除成功!", true, false);
             UpList();
         }
         else
         {
             player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
         }
     }
     this.ExportOnekeyButton.IsEnabled    = File.Exists(CreatorMain.OneKeyFile);
     this.ExportCopyButton.IsEnabled      = File.Exists(CreatorMain.CopyFile);
     this.ExportOldCopyButton.IsEnabled   = File.Exists(CreatorMain.CopyFile);
     this.ExportOldOnekeyButton.IsEnabled = File.Exists(CreatorMain.OneKeyFile);
     this.DerivedSpecialButton.IsEnabled  = File.Exists(CreatorMain.SpecialCopyFile);
     if (this.ExportOnekeyButton.IsClicked)
     {
         DialogsManager.ShowDialog(player.View.GameWidget, new DerivedDialog(player, this, this.ListView, DataType.OneKey));
     }
     if (this.ExportCopyButton.IsClicked)
     {
         DialogsManager.ShowDialog(player.View.GameWidget, new DerivedDialog(player, this, this.ListView));
     }
     if (this.ExportOldCopyButton.IsClicked)
     {
         DialogsManager.ShowDialog(player.View.GameWidget, new DerivedDialog(player, this, this.ListView, DataType.OldCopy));
     }
     if (this.ExportOldOnekeyButton.IsClicked)
     {
         DialogsManager.ShowDialog(player.View.GameWidget, new DerivedDialog(player, this, this.ListView, DataType.OldOneKey));
     }
     if (this.DerivedSpecialButton.IsClicked)
     {
         DialogsManager.ShowDialog(player.View.GameWidget, new DerivedDialog(player, this, this.ListView, DataType.SpecialCopy));
     }
     if (this.ImportButton.IsClicked)
     {
         Task.Run(() =>
         {
             if (!Directory.Exists(CreatorMain.CacheDirectory))
             {
                 Directory.CreateDirectory(CreatorMain.CacheDirectory);
             }
             string fileName = CreatorMain.Export_ModFile_Directory + "/" + (string)this.ListView.SelectedItem;
             if (FileOperation.IsFileInUse(fileName))
             {
                 player.ComponentGui.DisplaySmallMessage($"操作失败...\n{fileName}", true, false);
                 DialogsManager.HideDialog(this);
                 return;
             }
             if (Path.GetExtension(fileName) == ".oMod2")
             {
                 OnekeyGeneration.ImportOnekeyoMod2(CreatorMain.OneKeyFile, fileName);
                 player.ComponentGui.DisplaySmallMessage("导入一键生成MOD配置文件成功!", true, false);
             }
             else if (Path.GetExtension(fileName) == ".wMod2")
             {
                 CopyAndPaste.ImportCopywMod2(CreatorMain.CopyFile, fileName);
                 player.ComponentGui.DisplaySmallMessage("导入复制MOD配置文件成功!", true, false);
             }
             else if (Path.GetExtension(fileName) == ".wMod")
             {
                 CopyAndPaste.ImportCopywMod(CreatorMain.CopyFile, fileName);
                 player.ComponentGui.DisplaySmallMessage("导入复制MOD配置文件成功!", true, false);
             }
             else if (Path.GetExtension(fileName) == ".oMod")
             {
                 player.ComponentGui.DisplaySmallMessage("抱歉,一键生成的旧文件数据无法导入!", true, false);
             }
             else if (Path.GetExtension(fileName) == ".sMod")
             {
                 if (!Directory.Exists(CreatorMain.CacheDirectory))
                 {
                     Directory.CreateDirectory(CreatorMain.CacheDirectory);
                 }
                 string sdFile = CreatorMain.SpecialCopyFile;
                 if (!FileOperation.IsFileInUse(fileName) && (!File.Exists(sdFile) || !FileOperation.IsFileInUse(sdFile)))
                 {
                     FileStream fileStream = new FileStream(fileName, FileMode.Open);
                     FileStream file       = new FileStream(sdFile, FileMode.Create);
                     fileStream.CopyTo(file);
                     file.Dispose();
                     fileStream.Dispose();
                     player.ComponentGui.DisplaySmallMessage("导入成功!", true, false);
                 }
                 else
                 {
                     player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
                 }
             }
             else
             {
                 player.ComponentGui.DisplaySmallMessage($"操作失败...\n{fileName}", true, false);
             }
         });
         DialogsManager.HideDialog(this);
     }
 }
コード例 #3
0
ファイル: CreatorWidget.cs プロジェクト: CXHGT/CreatorModAPI
        public override void Update()
        {
            if (this.SphereButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new SphereDialog(creatorAPI));
            }
            if (this.PrismButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new PrismDialog(creatorAPI));
            }
            if (this.PyramidButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new PyramidDialog(creatorAPI));
            }
            if (this.CylindricalButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new CylindricalDialog(creatorAPI));
            }
            if (this.PrismColumnButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new PrismColumnDialog(creatorAPI));
            }
            if (this.PillarsButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new PillarsDialog(creatorAPI));
            }
            if (this.RectangularButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new RectangularDialog(creatorAPI));
            }
            if (this.CircleButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new CircleDialog(creatorAPI));
            }
            if (this.MazeButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new MazeDialog(creatorAPI));
            }
            if (this.PavageButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new PavageDialog(creatorAPI));
            }
            if (this.FillingButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new FillingDialog(creatorAPI));
            }
            if (this.MountainButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new MountainDialog(creatorAPI));
            }
            if (this.TransferButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new TransferDialog(creatorAPI));
            }
            if (this.LevelSetButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new LevelSetDialog(creatorAPI));
            }
            if (this.SetButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new SetDialog(creatorAPI));
            }
            if (this.SpiralButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new SpiralDialog(creatorAPI));
            }
            if (this.PenetrateButton.IsClicked)
            {
                if (CreatorMain.Penetrate)
                {
                    foreach (int blockID in CreatorMain.PenetrateBlocksID)
                    {
                        BlocksManager.Blocks[blockID].IsCollidable = true;
                    }
                    CreatorMain.PenetrateBlocksID.Clear();
                }
                else
                {
                    this.worldSettings.EnvironmentBehaviorMode = EnvironmentBehaviorMode.Static;
                    foreach (Block block in BlocksManager.Blocks)
                    {
                        if (block.IsCollidable)
                        {
                            block.IsCollidable = false;
                            CreatorMain.PenetrateBlocksID.Add(block.BlockIndex);
                        }
                    }
                }
                CreatorMain.Penetrate = !CreatorMain.Penetrate;
            }
            if (this.LightWorldButton.IsClicked)
            {
                if (CreatorMain.LightWorld)
                {
                    foreach (int blockID in CreatorMain.LightWorldBlockID)
                    {
                        BlocksManager.Blocks[blockID].EmittedLightAmount = 0;
                    }
                    CreatorMain.LightWorldBlockID.Clear();
                }
                else
                {
                    foreach (Block block in BlocksManager.Blocks)
                    {
                        if (block.EmittedLightAmount == 0)
                        {
                            block.EmittedLightAmount = 15;
                            CreatorMain.LightWorldBlockID.Add(block.BlockIndex);
                        }
                    }
                }
                CreatorMain.LightWorld = !CreatorMain.LightWorld;
            }
            if (CreatorMain.LightWorld)
            {
                this.LightWorldButton.Color = Color.Yellow;
            }
            else
            {
                this.LightWorldButton.Color = Color.White;
            }

            if (CreatorMain.Penetrate)
            {
                this.PenetrateButton.Color = Color.Yellow;
            }
            else
            {
                this.PenetrateButton.Color = Color.White;
            }
            if (this.EditRegionButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new EditRegionDialog(creatorAPI));
            }
            if (this.EditWorldButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new EditWorldDialog(creatorAPI));
            }
            if (this.ClearBlockButton.IsClicked)
            {
                this.player.ComponentGui.DisplaySmallMessage("可在设置中关闭生成在来停止正在清理的进程,在超距模式下谨慎使用清理方块", true, false);
                this.creatorAPI.ClearBlock = !this.creatorAPI.ClearBlock;
            }
            if (this.creatorAPI.ClearBlock)
            {
                this.ClearBlockButton.Color = Color.Yellow;
            }
            else
            {
                this.ClearBlockButton.Color = Color.White;
            }
            if (this.SetLinkButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new TwoPointLineDialog(creatorAPI));
            }

            /*            if (this.SetLinkButton.IsClicked)
             *          {
             *              if (this.creatorAPI.twoPointsOfAttachment)
             *                  this.creatorAPI.twoPointsOfAttachment = false;
             *              else
             *                  this.creatorAPI.twoPointsOfAttachment = true;
             *          }
             *          if (this.creatorAPI.twoPointsOfAttachment) this.SetLinkButton.Color = Color.Yellow; else this.SetLinkButton.Color = Color.White;*/


            if (this.SetPositionButton.IsClicked)
            {
                Vector3 position = player.ComponentBody.Position;
                Point3  point3   = new Point3((int)position.X, (int)position.Y, (int)position.Z);
                int[]   p        = new int[4] {
                    1, 2, 3, 4
                };
                DialogsManager.ShowDialog(null, new ListSelectionDialog("选择设置的点", p, 56f, (object e) => $"设置点{(int)e}", delegate(object e)
                {
                    creatorAPI.Position[(int)e - 1] = point3;
                    this.player.ComponentGui.DisplaySmallMessage($"成功设置点{(int)e}:\nX:{point3.X} , Y:{point3.Y} , Z:{point3.Z}", true, true);
                }));
            }
            if (this.creatorAPI.RevokeSwitch)
            {
                if (creatorAPI.revokeData == null)
                {
                    this.RevokeButton.IsEnabled = false;
                }
                else
                {
                    this.RevokeButton.IsEnabled = true;
                }
            }
            else
            {
                this.RevokeButton.IsEnabled = false;
            }
            if (this.RevokeButton.IsClicked)
            {
                this.creatorAPI.revokeData.Render();
                this.player.ComponentGui.DisplaySmallMessage($"撤回成功", true, true);
            }
            if (this.SetSpawn.IsClicked)
            {
                Vector3 position = this.player.ComponentBody.Position;
                this.player.PlayerData.SpawnPosition = position + new Vector3(0f, 0.1f, 0f);
                this.player.ComponentGui.DisplaySmallMessage(string.Format("玩家重生点位置设置\n X: {0} Y : {1} Z : {2}", (int)position.X, (int)position.Y, (int)position.Z), true, true);
            }
            if (this.ModButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new ModDialog(creatorAPI));
            }
            if (this.ReplaceButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new ReplaceDialog(creatorAPI));
            }
            if (this.SetModeButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new SetModeDialog(creatorAPI));
            }
            if (this.OnekeyButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new OnekeyGenerationDialog(creatorAPI));
            }
            if (this.CopyPasteButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new CopyPasteDialog(creatorAPI));
            }
            this.ClearCacheButton.IsEnabled = Directory.Exists(CreatorMain.CacheDirectory);
            if (this.ClearCacheButton.IsClicked)
            {
                if (FileOperation.Delete(CreatorMain.CacheDirectory))
                {
                    this.player.ComponentGui.DisplaySmallMessage("清除成功", true, true);
                }
                else
                {
                    this.player.ComponentGui.DisplaySmallMessage("清除失败", true, true);
                }
            }
            if (this.RemoveAnimalButton.IsClicked)
            {
                int num = 0;
                foreach (ComponentCreature current in player.Project.FindSubsystem <SubsystemCreatureSpawn>(true).Creatures)
                {
                    if (!(current is ComponentPlayer))
                    {
                        current.ComponentSpawn.Despawn();
                        num++;
                    }
                }
                this.player.ComponentGui.DisplaySmallMessage(string.Format("清除成功,共清除{0}只动物", num), true, false);
            }
            if (this.RemoveItemButton.IsClicked)
            {
                int num = 0;
                foreach (Pickable item in GameManager.Project.FindSubsystem <SubsystemPickables>(true).Pickables)
                {
                    item.Count    = 0;
                    item.ToRemove = true;
                    num++;
                }
                this.player.ComponentGui.DisplaySmallMessage(string.Format("清除成功,共清除{0}个掉落物", num), true, false);
            }
            if (this.TerrainTestButton.IsClicked)
            {
                IList <int>      enumValues       = EnumUtils.GetEnumValues(typeof(CreatorTerrainType));
                SubsystemTerrain subsystemTerrain = GameManager.Project.FindSubsystem <SubsystemTerrain>();
                DialogsManager.ShowDialog(null, new ListSelectionDialog("选择地形类型", enumValues, 56f, (object e) => ((TerrainGenerationMode)e).ToString(), delegate(object e)
                {
                    ITerrainContentsGenerator myTerrain;
                    if ((CreatorTerrainType)e == CreatorTerrainType.Flat)
                    {
                        myTerrain = new CreatorNormalTerrain(subsystemTerrain);
                    }
                    else
                    {
                        myTerrain = new CreatorNormalTerrain(subsystemTerrain);
                    }
                    subsystemTerrain.Dispose();
                    subsystemTerrain.Load(new ValuesDictionary());
                    subsystemTerrain.TerrainContentsGenerator = myTerrain;
                }));
            }
            if (this.SetPositionCarefulButton.IsClicked)
            {
            }
            if (this.AdjustPositionButton.IsClicked)
            {
            }
            if (this.ThreePointPlaneButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new ThreePointToPlaneDialog(creatorAPI));
            }
            if (this.FourPointSpaceButton.IsClicked)
            {
                DialogsManager.ShowDialog(player.View.GameWidget, new FourPointSpaceDialog(creatorAPI));
            }
            //.........



            if (this.SetDifficultyButton.IsClicked)
            {
                Vector3 position = player.ComponentBody.Position;
                Point3  point3   = new Point3((int)position.X, (int)position.Y, (int)position.Z);
                int[]   p        = new int[4] {
                    0, 1, 2, 3
                };
                string[] difference = new string[4] {
                    "容易", "一般", "困难", "地狱"
                };
                DialogsManager.ShowDialog(null, new ListSelectionDialog("选择难度", p, 56f, (object e) => difference[(int)e], delegate(object e)
                {
                    this.player.ComponentGui.DisplaySmallMessage($"成功设置难度位: {difference[(int)e]}", true, true);
                }));
            }
        }
コード例 #4
0
 public override void Update()
 {
     if (this.DirectionSetButton.IsClicked)
     {
         if (creatorAPI.pasteRotate)
         {
             creatorAPI.pasteRotate        = false;
             this.DirectionSetButton.Color = Color.Red;
         }
         else
         {
             creatorAPI.pasteRotate        = true;
             this.DirectionSetButton.Color = Color.Yellow;
         }
     }
     if (this.LimitButton.IsClicked)
     {
         if (creatorAPI.pasteLimit)
         {
             creatorAPI.pasteLimit  = false;
             this.LimitButton.Color = Color.Red;
         }
         else
         {
             creatorAPI.pasteLimit  = true;
             this.LimitButton.Color = Color.Yellow;
         }
     }
     if (this.cancelButton.IsClicked)
     {
         DialogsManager.HideDialog(this);
     }
     if (this.PasteButton.IsClicked)
     {
         if (!FileOperation.IsFileInUse(CreatorMain.CopyFile))
         {
             Task.Run(() =>
             {
                 try
                 {
                     CopyAndPaste.PasetData(creatorAPI, CreatorMain.CopyFile, creatorAPI.Position[0], creatorAPI.Position[1]);
                 }catch (Exception e)
                 {
                     player.ComponentGui.DisplaySmallMessage(e.Message, true, false);
                 }
             });
         }
         else
         {
             player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
         }
         DialogsManager.HideDialog(this);
     }
     if (this.MirrorButton.IsClicked)
     {
         if (!FileOperation.IsFileInUse(CreatorMain.CopyFile))
         {
             Task.Run(() =>
             {
                 try
                 {
                     CopyAndPaste.MirrorData(creatorAPI, CreatorMain.CopyFile, creatorAPI.Position[0], creatorAPI.Position[1]);
                 }
                 catch (Exception e)
                 {
                     player.ComponentGui.DisplaySmallMessage(e.Message, true, false);
                 }
             });
         }
         else
         {
             player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
         }
         DialogsManager.HideDialog(this);
     }
     if (this.ImportButton.IsClicked)
     {
         if (!Directory.Exists(CreatorMain.CacheDirectory))
         {
             Directory.CreateDirectory(CreatorMain.CacheDirectory);
         }
         string sdFile  = CreatorMain.CopyFile;
         string _sdFile = CreatorMain.Export_CopyFile_Directory + "/" + (string)this.ListView.SelectedItem;
         if (!FileOperation.IsFileInUse(_sdFile) && (!File.Exists(sdFile) || !FileOperation.IsFileInUse(sdFile)))
         {
             FileStream fileStream = new FileStream(_sdFile, FileMode.Open);
             FileStream file       = new FileStream(sdFile, FileMode.Create);
             fileStream.CopyTo(file);
             file.Dispose();
             fileStream.Dispose();
             player.ComponentGui.DisplaySmallMessage("导入成功!", true, false);
         }
         else
         {
             player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
         }
         DialogsManager.HideDialog(this);
     }
     if (DeleteButton.IsClicked)
     {
         string sdFile = CreatorMain.Export_CopyFile_Directory + "/" + (string)this.ListView.SelectedItem;
         if (FileOperation.Delete(sdFile))
         {
             player.ComponentGui.DisplaySmallMessage("删除成功!", true, false);
             UpList();
         }
         else
         {
             player.ComponentGui.DisplaySmallMessage("操作失败!", true, false);
         }
     }
     this.DerivedButton.IsEnabled = File.Exists(CreatorMain.CopyFile);
     if (this.DerivedButton.IsClicked)
     {
         DialogsManager.ShowDialog(player.View.GameWidget, new DerivedDialog(player, this, this.ListView));
     }
     if (this.CopyButton.IsClicked)
     {
         Task.Run(() =>
         {
             try
             {
                 if (!Directory.Exists(CreatorMain.CacheDirectory))
                 {
                     Directory.CreateDirectory(CreatorMain.CacheDirectory);
                 }
                 CopyAndPaste.CreateCopy(creatorAPI, CreatorMain.CacheDirectory, "CacheFile.cd", creatorAPI.Position[0], creatorAPI.Position[1]);
             }
             catch (Exception e)
             {
                 player.ComponentGui.DisplaySmallMessage(e.Message, true, false);
             }
         });
         DialogsManager.HideDialog(this);
     }
     if (ListView.SelectedIndex == null)
     {
         this.ImportButton.IsEnabled = false;
         this.DeleteButton.IsEnabled = false;
     }
     else
     {
         this.ImportButton.IsEnabled = true;
         this.DeleteButton.IsEnabled = true;
     }
     this.specialCopyButton.IsEnabled  = CreatorMain.professional;
     this.specialPasteButton.IsEnabled = CreatorMain.professional;
     if (this.specialCopyButton.IsClicked)
     {
         Task.Run(() =>
         {
             try
             {
                 if (!Directory.Exists(CreatorMain.CacheDirectory))
                 {
                     Directory.CreateDirectory(CreatorMain.CacheDirectory);
                 }
                 CopyAndPaste.CreateSpecialCopy(creatorAPI, CreatorMain.SpecialCopyFile, creatorAPI.Position[0], creatorAPI.Position[1]);
             }
             catch (Exception e)
             {
                 player.ComponentGui.DisplaySmallMessage(e.Message, true, false);
             }
         });
         DialogsManager.HideDialog(this);
     }
     this.specialPasteButton.IsEnabled = File.Exists(CreatorMain.SpecialCopyFile);
     if (this.specialPasteButton.IsClicked)
     {
         Task.Run(() =>
         {
             try
             {
                 CopyAndPaste.SpecialPasetData(creatorAPI, CreatorMain.SpecialCopyFile, creatorAPI.Position[0], creatorAPI.Position[1]);
             }
             catch (Exception e)
             {
                 player.ComponentGui.DisplaySmallMessage(e.Message, true, false);
             }
         });
         DialogsManager.HideDialog(this);
     }
 }