private void FillEditSectionComboBox(ThingMap map) { comboBoxEditSection.Items.Clear(); FableMod.LEV.LEVFile file = map.LEV; for (int i = 0; i < file.SectionCount; ++i) { comboBoxEditSection.Items.Add(file.get_Sections(i).Name); } }
private bool CheckChanges() { if (myMaps == null) { return(true); } toolStripButtonWorld_Click(null, null); List <Processor> processors = new List <Processor>(); for (int i = 0; i < myMaps.Count; ++i) { ThingMap map = myMaps[i]; if (map.Modified) { DialogResult result = MessageBox.Show( "Save changes to map " + map.Name + "?", FormMain.Instance.Title, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation); if (result == DialogResult.Yes) { processors.Add( new MapSaveProcessor(map.TNG, map.LEV)); } else if (result == DialogResult.Cancel) { return(false); } } } if (processors.Count > 0) { FormProcess form = new FormProcess(processors); form.ShowDialog(); form.Dispose(); } processors = null; return(true); }
private void importHeightfieldToolStripMenuItem_Click(object sender, EventArgs e) { int minX = int.MaxValue; int minY = int.MaxValue; int maxX = int.MinValue; int maxY = int.MinValue; for (int i = 0; i < myMaps.Count; ++i) { ThingMap map = myMaps[i]; if (map.MapX < minX) { minX = map.MapX; } if (map.MapY < minY) { minY = map.MapY; } if (map.MapX + map.MapWidth > maxX) { maxX = map.MapX + map.MapWidth; } if (map.MapY + map.MapHeight > maxY) { maxY = map.MapY + map.MapHeight; } } int width = maxX - minX; int height = maxY - minY; FormMain.Instance.InfoMessage(string.Format("TODO: {0} {1}", width, height)); }
public MapComboBoxItem(ThingMap map) { myMap = map; }
private void myView_ThingCreated( float x, float y, float z, float nx, float ny, float nz) { ThingMap selectedMap = null; for (int i = 0; i < myMaps.Count; ++i) { if (myMaps[i].IsOver(x, y, z)) { selectedMap = myMaps[i]; break; } } if (selectedMap == null) { FormMain.Instance.ErrorMessage("Click over a map, please."); return; } if (myCreateMode == CreateMode.SelectTeleporterDst) { float dstx = x - myTeleporterMap.X; float dsty = y - myTeleporterMap.Y; CTCBlock block = myTeleporter.get_CTCs("CTCPhysicsStandard"); if (MessageBox.Show( "Create a two-way teleporter?", "ChocolateBox", MessageBoxButtons.YesNo) == DialogResult.Yes) { FableMod.TNG.Thing myOriginal = myCreatedThing; if (SetupForTeleporter()) { selectedMap.AddThing( myController, myCreatedThing, "NULL", x, y, z, nx, ny, nz); CTCBlock blockSrc = myOriginal.get_CTCs("CTCPhysicsStandard"); CTCBlock blockDst = myTeleporter.get_CTCs("CTCPhysicsStandard"); blockDst.get_Variables("PositionX").Value = (myTeleporterMap.X + (float)blockSrc.get_Variables("PositionX").Value) - selectedMap.X; blockDst.get_Variables("PositionY").Value = (myTeleporterMap.Y + (float)blockSrc.get_Variables("PositionY").Value) - selectedMap.Y; blockDst.get_Variables("PositionZ").Value = ((float)blockSrc.get_Variables( "PositionZ").Value) + 0.5f; selectedMap.AddThing( myController, myTeleporter, "NULL"); // So we spawn over the thing. z += 0.5f; } } else if (MessageBox.Show( "Create a teleportation platform?\r\n" + "This object is a visual que only.", "ChocolateBox", MessageBoxButtons.YesNo) == DialogResult.Yes) { FableMod.TNG.Thing platform = new FableMod.TNG.Thing("Object"); platform.Create( FileDatabase.Instance.TNGDefinitions, "OBJECT_GUILD_PEDESTAL_TELEPORT_01"); platform.UID = FableMod.TNG.UIDManager.Generate(); platform.Player = 4; selectedMap.AddThing( myController, platform, "NULL", x, y, z, nx, ny, nz); // So we spawn over the thing. z += 0.5f; } // Set the jump coordinates. block.get_Variables("PositionX").Value = dstx; block.get_Variables("PositionY").Value = dsty; block.get_Variables("PositionZ").Value = z; FormMain.Instance.InfoMessage(string.Format( "Teleporter created from map \"{0}\" to map \"{1}\".", myTeleporterMap.Name, selectedMap.Name)); myCreateMode = CreateMode.None; myView.Mode = EditorMode.Normal; //Close(); return; } else if (myCreateMode == CreateMode.SelectTeleporterSrc) { try { selectedMap.AddThing( myController, myCreatedThing, "NULL", x, y, z, nx, ny, nz); selectedMap.AddThing( myController, myTeleporter, "NULL"); } catch (Exception ex) { FormMain.Instance.ErrorMessage(ex.Message); return; } WLDFileController wldc = FileDatabase.Instance.GetWLD(); FableMod.WLD.WLDFile wld = wldc.WLD; FormRegionSelect form = new FormRegionSelect(); form.Text = "Select Destination Region"; for (int i = 0; i < wld.RegionCount; ++i) { form.listBoxRegions.Items.Add( wld.GetRegion(i).RegionName); } if (form.ShowDialog() == DialogResult.OK) { FableMod.WLD.Region region = wld.GetRegion( form.listBoxRegions.Items[ form.listBoxRegions.SelectedIndex]. ToString()); if (region.RegionName != myRegion) { FormEditor formEditor = new FormEditor( region, myCreatedThing, myTeleporter, selectedMap); FormMain.Instance.AddMDI(formEditor); } else { // Use this window. SelectTeleporterDestination( myCreatedThing, myTeleporter, selectedMap); return; } } else { myController.RemoveThing(myCreatedThing); myController.RemoveThing(myTeleporter); } form.Dispose(); myCreatedThing = null; // Reset variable. myTeleporter = null; } else if (myCreateMode == CreateMode.CreateNew) { try { selectedMap.AddThing( myController, myCreatedThing, "NULL", x, y, z, nx, ny, nz); } catch (Exception ex) { FormMain.Instance.ErrorMessage(ex.Message); } myCreatedThing = null; } else if (myCreateMode == CreateMode.Import) { for (int i = 0; i < myImports.Count; ++i) { FableMod.TNG.Thing thing = myImports[i]; selectedMap.AddThing( myController, thing, "NULL"); } } myImports.Clear(); myCreateMode = CreateMode.None; myView.Mode = EditorMode.Normal; }