Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
 void DB_DatabaseLoaded()
 {
     RegionMgr.PreloadRegions();
     ModulMgr.PreloadModules();
 }
Exemplo n.º 7
0
        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);
        }