private void DXControl_MouseUp(object sender, MouseEventArgs e) { int diffX = Math.Abs(MouseMoveStart.X - e.X); int diffY = Math.Abs(MouseMoveStart.Y - e.Y); if ((diffX <= 3 && diffY <= 3) || (MouseMoveStart.X == -1 && MouseMoveStart.Y == -1)) { ModulMgr.TriggerModules(ModulEvent.DXClick, e); } LastMouseVector = DXClickToVector(new Vector2(e.X, e.Y)); if (e.Button == MouseButtons.Right) { contextMenuStrip.Show(this, e.Location); } else if (e.Button == MouseButtons.Left) { MapMoving = false; ObjectMoving = false; MouseMoveStart.X = -1; MouseMoveStart.Y = -1; SelectedObject = null; this.Cursor = Cursors.Default; } }
private void DXControl_MouseDown(object sender, MouseEventArgs e) { this.ZoomSlider.Focus(); this.ZoomSlider.Select(); Vector3 v3 = DXClickToVector(new Vector2(e.X, e.Y)); SelectedObject = ModulMgr.GetObjectAt((int)v3.X, (int)v3.Y); if (e.Button == MouseButtons.Left) { if (SelectedObject != null && SelectedObject.IsMovable) { MapMoving = false; ObjectMoving = true; } else { this.Cursor = Cursors.Hand; MouseMoveStart = new Point(e.X, e.Y); MouseValueH = hScrollBar.Value; MouseValueV = vScrollBar.Value; MapMoving = true; ObjectMoving = false; } } else { MapMoving = false; ObjectMoving = false; } }
public static bool UnloadRegion() { if (m_OpenedRegion == null) { return(false); } //Delete all objects // SLOW lock (DXControl.GeoObjects) { foreach (GeometryObj obj in DXControl.GeoObjects) { obj.Model.Mesh.Dispose(); obj.Model = null; } QuestDesignerMain.DesignerForm.DXControl.HBObject = null; DXControl.GeoObjects.Clear(); } // dont empty textures is caching is enabled if (!DOL.Tools.QuestDesigner.Properties.Settings.Default.CacheTextures) { Textures.Reset(); } ModulMgr.TriggerModules(ModulEvent.RegionUnload, m_OpenedRegion); //Unset region m_OpenedRegion = null; //Scrollbars.. QuestDesignerMain.DesignerForm.DXControl.hScrollBar.Minimum = 0; QuestDesignerMain.DesignerForm.DXControl.hScrollBar.Maximum = 0; QuestDesignerMain.DesignerForm.DXControl.hScrollBar.SmallChange = 0; QuestDesignerMain.DesignerForm.DXControl.hScrollBar.LargeChange = 0; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.Minimum = 0; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.Maximum = 0; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.SmallChange = 0; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.LargeChange = 0; QuestDesignerMain.DesignerForm.DXControl.hScrollBar.Enabled = false; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.Enabled = false; QuestDesignerMain.DesignerForm.DXControl.ZoomSlider.Enabled = false; QuestDesignerMain.DesignerForm.DXControl.Invalidate(); return(true); }
void filterMenuItem_Click(object sender, EventArgs e) { ToolStripMenuItem item = (ToolStripMenuItem)sender; IModul mod = ModulMgr.GetModulByName(item.Text); if (mod == null) { throw new ArgumentException(String.Format(Resources.msgModuleFoundError, item.Text)); } if (item.Checked) { ModulMgr.TriggerModule(mod, ModulEvent.Unfilter); } else { ModulMgr.TriggerModule(mod, ModulEvent.Filter); } }
private void DXControl_Load(object sender, EventArgs e) { RegionMgr.LoadRegions(); ModulMgr.LoadModules(); ZoomSlider.KeyDown += new KeyEventHandler(DXControl_KeyDown); if (cachedRegionID >= 0) { RegionMgr.LoadRegion(cachedRegionID); if (cachedLocation.X <= hScrollBar.Maximum && cachedLocation.X >= hScrollBar.Minimum) { //hScrollBar.Value += diffX; hScrollBar.Value = (int)cachedLocation.X; } if (cachedLocation.Y <= vScrollBar.Maximum && cachedLocation.Y >= vScrollBar.Minimum) { //vScrollBar.Value += diffY; vScrollBar.Value = (int)cachedLocation.Y; } Invalidate(); } }
void DB_DatabaseLoaded() { RegionMgr.PreloadRegions(); ModulMgr.PreloadModules(); }
public static bool LoadRegion(Region region) { if (region == null) { return(false); } if (m_OpenedRegion != null && region.ID == m_OpenedRegion.ID) { Log.Info(String.Format(Resources.msgRegionAlreadyLoaded, region.Name)); return(true); } // we are still loading a old region, cancel that operation if (backgroundWorker != null && backgroundWorker.IsBusy) { backgroundWorker.CancelAsync(); } UnloadRegion(); //Create "hitbox" Mesh hb = Mesh.Box(Common.Device, 256 * 256 * 16, 256 * 256 * 16, 0.0f); XMesh ms = new XMesh(hb); Texture tx = Textures.Generator(Color.Cyan); Model mdl = new Model(ms, tx); GeometryObj bj = new GeometryObj(null, mdl, DrawLevel.NonRender, DetailLevel.Nondetailed, 256 * 256 * 16 / 2, 256 * 256 * 16 / 2, 0.0f, 0.0f, 0.0f, 0.0f, new Vector3(1.0f, 1.0f, 1.0f), false, false); DXControl.GeoObjects.Add(bj); QuestDesignerMain.DesignerForm.DXControl.HBObject = bj; try { m_OpenedRegion = region; backgroundWorker = new BackgroundWorker(); backgroundWorker.WorkerSupportsCancellation = true; backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(backgroundWorker_doWork); backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted); backgroundWorker.RunWorkerAsync(); } catch (Exception e) { QuestDesignerMain.HandleException(e, Resources.msgRegionError + ": " + e.Message, global::DOL.Tools.QuestDesigner.Properties.Resources.databaseError); } //Scrollbars.. QuestDesignerMain.DesignerForm.DXControl.hScrollBar.Minimum = 0; QuestDesignerMain.DesignerForm.DXControl.hScrollBar.Maximum = 256 * 256 * 16; QuestDesignerMain.DesignerForm.DXControl.hScrollBar.SmallChange = 256; QuestDesignerMain.DesignerForm.DXControl.hScrollBar.LargeChange = 2560; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.Minimum = 0; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.Maximum = 256 * 256 * 16; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.SmallChange = 256; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.LargeChange = 2560; QuestDesignerMain.DesignerForm.DXControl.SetZoom(0.75F);; int maxSize = Math.Max(region.MaxHeight - region.MinHeight, region.MaxWidth - region.MinWidth); int zoomFactor = (QuestDesignerMain.DesignerForm.DXControl.ZoomSlider.Maximum - QuestDesignerMain.DesignerForm.DXControl.ZoomSlider.Minimum) / 16 * (maxSize / (256 * 256)); // restrcit zoomFactor zo Minimum-Maximum QuestDesignerMain.DesignerForm.DXControl.ZoomSlider.Value = Math.Min(QuestDesignerMain.DesignerForm.DXControl.ZoomSlider.Maximum, Math.Max(QuestDesignerMain.DesignerForm.DXControl.ZoomSlider.Minimum, zoomFactor)); QuestDesignerMain.DesignerForm.DXControl.hScrollBar.Enabled = true; QuestDesignerMain.DesignerForm.DXControl.vScrollBar.Enabled = true; QuestDesignerMain.DesignerForm.DXControl.ZoomSlider.Enabled = true; QuestDesignerMain.DesignerForm.DXControl.CenterView(); ModulMgr.TriggerModules(ModulEvent.RegionLoad, region); // render newly added objects from Modules QuestDesignerMain.DesignerForm.DXControl.Invalidate(); return(true); }