private void SurfaceLevel_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { SurfaceLevel.SetLevelTile(e.X, e.Y); if (m_TileMode == ETileMode.Object) { if (lbObjectSet.SelectedIndex == -1) { return; } ObjectSetElementData element = m_ObjectSet.ObjectSet.Elements[lbObjectSet.SelectedIndex]; SPosition base_pos = SurfaceLevel.GetDesignTileScaledLevelBasePos(); float scalar = SurfaceLevel.GetScaleFactor(); CInsertedObject new_object = new CInsertedObject() { ObjectID = lbObjectSet.SelectedIndex, Position = new SPosition( (int)(e.X / scalar) - element.Size.Width / 2 + base_pos.X, (int)(e.Y / scalar) - element.Size.Height / 2 + base_pos.Y) }; SurfaceLevel.InsertedObjects.Add(new_object); lbInsertedObjests.Items.Add("obj" + lbInsertedObjests.Items.Count.ToString() + "_" + element.ElementName); } } else if (e.Button == MouseButtons.Right) { SurfaceLevel.SetLevelTile(e.X, e.Y, true); if (m_TileMode == ETileMode.Object) { lbObjectSet.ClearSelected(); } } }
private void SurfaceTile_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { SSize tile_size = SurfaceTile.GetTileSize(); SSize selection_rest; selection_rest.Width = m_MouseDownPos.X % tile_size.Width; selection_rest.Height = m_MouseDownPos.Y % tile_size.Height; SPosition selection_origin = m_MouseDownPos; SSize selection_size = tile_size; selection_size.Width += Math.Max(e.X - m_MouseDownPos.X, 0) + selection_rest.Width; selection_size.Height += Math.Max(e.Y - m_MouseDownPos.Y, 0) + selection_rest.Height; SurfaceTile.UpdateSelection(selection_origin, selection_size); SurfaceLevel.UpdateSelectedTile(SurfaceTile.GetCurrentSelectionOrigin(), SurfaceTile.GetCurrentSelectionSizeInTileCount()); } }