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; } } }
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); } }
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); })); } }
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); } }