Example #1
0
        private void deselectToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (pickedObject == null) return;

            if (pickedObject is HeaderCommands.Actors.Entry)
            {
                HeaderCommands.Actors.Entry ac = (pickedObject as HeaderCommands.Actors.Entry);
                if (ac.IsTransitionActor)
                    cbTransitions.SelectedIndex = 0;
                else if (ac.IsSpawnPoint)
                    cbSpawnPoints.SelectedIndex = 0;
                else
                    cbActors.SelectedIndex = 0;
            }
            else if (pickedObject is HeaderCommands.Waypoints.Waypoint)
            {
                dgvPathWaypoints.ClearSelection();
            }
            else if (pickedObject is HeaderCommands.Collision.Waterbox)
            {
                cbWaterboxes.SelectedIndex = 0;
            }

            pickedObject = null;
        }
Example #2
0
 private void dgvPathWaypoints_SelectionChanged(object sender, EventArgs e)
 {
     HeaderCommands.Waypoints.Waypoint selwp = (dgvPathWaypoints.SelectedCells.Count != 0 ? dgvPathWaypoints.SelectedCells[0].OwningRow.DataBoundItem as HeaderCommands.Waypoints.Waypoint : null);
     if (selwp == null) return;
     pickedObject = (selwp as HeaderCommands.IPickableObject);
     collisionDirty = true;
 }
Example #3
0
        private void customGLControl_MouseDown(object sender, MouseEventArgs e)
        {
            camera.ButtonsDown |= e.Button;

            switch (currentToolMode)
            {
                case ToolModes.Camera:
                    {
                        /* Camera only */
                        if (Convert.ToBoolean(camera.ButtonsDown & MouseButtons.Left))
                            camera.MouseCenter(new Vector2d(e.X, e.Y));
                        break;
                    }

                case ToolModes.MoveableObjs:
                case ToolModes.StaticObjs:
                    {
                        /* Object picking */
                        if (Convert.ToBoolean(camera.ButtonsDown & MouseButtons.Left) || Convert.ToBoolean(camera.ButtonsDown & MouseButtons.Middle))
                        {
                            pickedObject = TryPickObject(e.X, e.Y, (currentToolMode == ToolModes.MoveableObjs));
                            if (pickedObject == null)
                            {
                                /* No pick? Camera */
                                camera.MouseCenter(new Vector2d(e.X, e.Y));
                            }
                            else
                            {
                                /* Object found */
                                pickObjLastPosition = pickObjPosition = new Vector2d(e.X, e.Y);
                                pickObjDisplacement = Vector2d.Zero;
                                ((Control)sender).Focus();

                                /* Mark GLDLs as dirty? */
                                collisionDirty = (pickedObject is HeaderCommands.Collision.Polygon);
                                waterboxesDirty = (pickedObject is HeaderCommands.Collision.Waterbox);

                                /* Static object? Camera */
                                if (currentToolMode == ToolModes.StaticObjs)
                                {
                                    camera.MouseCenter(new Vector2d(e.X, e.Y));
                                    /*if (e.Clicks == 2 && currentRoomVertex != null)
                                    {
                                        EditVertexColor(currentRoomVertex);
                                    }*/
                                }
                            }
                        }
                        else if (Convert.ToBoolean(camera.ButtonsDown & MouseButtons.Right))
                        {
                            pickedObject = TryPickObject(e.X, e.Y, (currentToolMode == ToolModes.MoveableObjs));
                            if (pickedObject != null)
                            {
                                if (currentToolMode == ToolModes.MoveableObjs)
                                {
                                    if (pickedObject is HeaderCommands.Actors.Entry)
                                    {
                                        HeaderCommands.Actors.Entry ac = (pickedObject as HeaderCommands.Actors.Entry);
                                        /* Determine what menu entries should be enabled */
                                        xAxisToolStripMenuItem.Enabled = !(ac.Definition.Items.FirstOrDefault(x => x.Usage == XMLActorDefinitionReader.Definition.Item.Usages.RotationX) == null);
                                        yAxisToolStripMenuItem.Enabled = !(ac.Definition.Items.FirstOrDefault(x => x.Usage == XMLActorDefinitionReader.Definition.Item.Usages.RotationY) == null);
                                        zAxisToolStripMenuItem.Enabled = !(ac.Definition.Items.FirstOrDefault(x => x.Usage == XMLActorDefinitionReader.Definition.Item.Usages.RotationZ) == null);
                                        rotateToolStripMenuItem.Enabled = (xAxisToolStripMenuItem.Enabled || yAxisToolStripMenuItem.Enabled || zAxisToolStripMenuItem.Enabled);
                                    }
                                    else
                                        rotateToolStripMenuItem.Enabled = false;

                                    cmsMoveableObjectEdit.Show(((Control)sender).PointToScreen(e.Location));
                                }
                                else if (currentToolMode == ToolModes.StaticObjs)
                                {
                                    if (pickedObject is SimpleF3DEX2.Vertex)
                                    {
                                        cmsVertexEdit.Show(((Control)sender).PointToScreen(e.Location));
                                    }
                                }
                            }
                        }
                        break;
                    }
            }
        }
Example #4
0
        private void cbWaterboxes_SelectedIndexChanged(object sender, EventArgs e)
        {
            currentWaterbox = (((ComboBox)sender).SelectedItem as HeaderCommands.Collision.Waterbox);
            if (currentWaterbox != null)
            {
                pickedObject = (currentWaterbox as HeaderCommands.IPickableObject);
                waterboxesDirty = true;

                txtWaterboxPositionX.Enabled = txtWaterboxPositionY.Enabled = txtWaterboxPositionZ.Enabled = txtWaterboxSizeX.Enabled = txtWaterboxSizeZ.Enabled = txtWaterboxProperties.Enabled
                    = !currentWaterbox.IsDummy;
            }
            RefreshWaterboxControls();
        }
Example #5
0
        private void cbTransitions_SelectedIndexChanged(object sender, EventArgs e)
        {
            HeaderCommands.Actors.Entry ac = ((ComboBox)sender).SelectedItem as HeaderCommands.Actors.Entry;
            pickedObject = (ac as HeaderCommands.IPickableObject);

            HeaderCommands.Rooms rooms = null;
            if (currentScene != null && currentScene.GetCurrentSceneHeader() != null)
                rooms = currentScene.GetCurrentSceneHeader().Commands.FirstOrDefault(x => x.Command == HeaderLoader.CommandTypeIDs.Rooms) as HeaderCommands.Rooms;

            XMLActorDefinitionReader.CreateActorEditingControls(ac, tlpExTransitions, new Action(() =>
            {
                int idx = ((ComboBox)sender).SelectedIndex;
                RefreshTransitionList();
                ((ComboBox)sender).SelectedIndex = idx;
                SelectActorNumberControl(tlpExTransitions);
            }), (rooms != null ? rooms.RoomInformation : null), individualFileMode);
        }
Example #6
0
        private void cbSpawnPoints_SelectedIndexChanged(object sender, EventArgs e)
        {
            HeaderCommands.Actors.Entry ac = ((ComboBox)sender).SelectedItem as HeaderCommands.Actors.Entry;
            pickedObject = (ac as HeaderCommands.IPickableObject);

            XMLActorDefinitionReader.CreateActorEditingControls(ac, tlpExSpawnPoints, new Action(() =>
            {
                int idx = ((ComboBox)sender).SelectedIndex;
                RefreshSpawnPointList();
                ((ComboBox)sender).SelectedIndex = idx;
                SelectActorNumberControl(tlpExSpawnPoints);
            }), individual: individualFileMode);
        }
Example #7
0
        private void cbCollisionPolys_SelectedIndexChanged(object sender, EventArgs e)
        {
            currentCollisionPolygon = (((ComboBox)sender).SelectedItem as HeaderCommands.Collision.Polygon);
            if (currentCollisionPolygon == null) return;

            pickedObject = (currentCollisionPolygon as HeaderCommands.IPickableObject);
            collisionDirty = true;

            lblColPolyType.Visible = nudColPolyType.Visible = btnJumpToPolyType.Visible = !currentCollisionPolygon.IsDummy;
            if (!currentCollisionPolygon.IsDummy)
            {
                nudColPolyType.Value = currentCollisionPolygon.PolygonType;
                //TODO more here
            }
        }