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; }
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; }
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; } } }
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(); }
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); }
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); }
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 } }