Exemple #1
0
        public void ClearSelection()
        {
            if (mSelectedBoundingBox != null)
            {
                BoundingBoxDrawManager.RemoveDrawableBox(mSelectedBoundingBox);
            }

            ModelEditManager.Instance.SelectedModel = null;
        }
Exemple #2
0
        private void OnRenderWindowMouseDown(object sender, MouseEventArgs mouseEventArgs)
        {
            var pos          = mWindow.PointToClient(Cursor.Position);
            var intersection = new IntersectionParams(ActiveCamera.ViewInverse, ActiveCamera.ProjectionInverse,
                                                      new Vector2(pos.X, pos.Y));

            MapManager.Intersect(intersection);
            M2Manager.Intersect(intersection);
            WmoManager.Intersect(intersection);

            if (mouseEventArgs.Button == MouseButtons.Left)
            {
                IModelInstance selected = null;
                if (intersection.M2Hit)
                {
                    selected = intersection.M2Instance;
                }
                else if (intersection.WmoHit)
                {
                    selected = intersection.WmoInstance;
                }

                if (selected != mSelectedInstance)
                {
                    if (mSelectedBoundingBox != null)
                    {
                        BoundingBoxDrawManager.RemoveDrawableBox(mSelectedBoundingBox);
                    }

                    mSelectedBoundingBox = null;

                    if (mSelectedInstance != null)
                    {
                        mSelectedInstance.DestroyModelNameplate();
                    }

                    if (ModelEditManager.Instance.IsCopying && selected != ModelEditManager.Instance.SelectedModel)
                    {
                        selected             = ModelEditManager.Instance.SelectedModel;
                        mSelectedBoundingBox = BoundingBoxDrawManager.AddDrawableBox(selected.InstanceCorners);
                    }
                    else if (selected != null && selected.IsSpecial == false)
                    {
                        selected.CreateModelNameplate();
                        mSelectedBoundingBox = BoundingBoxDrawManager.AddDrawableBox(selected.InstanceCorners);
                        ModelEditManager.Instance.SelectedModel = selected;
                    }
                    else if (selected == null)
                    {
                        ModelEditManager.Instance.SelectedModel = null;
                    }

                    if (EditManager.Instance.CurrentMode != EditMode.Chunk)
                    {
                        mSelectedInstance = selected;
                        ModelSpawnManager.Instance.ClickedInstance = selected as M2RenderInstance;
                    }
                }
            }

            if (OnWorldClicked != null)
            {
                OnWorldClicked(intersection, mouseEventArgs);
            }
        }