/// <summary> /// Raises the <see cref="E:System.Windows.Forms.ComboBox.MeasureItem"/> event. /// </summary> /// <param name="e">The <see cref="T:System.Windows.Forms.MeasureItemEventArgs"/> that was raised.</param> protected override void OnMeasureItem(MeasureItemEventArgs e) { if (e.Index < 0) { return; } if (this.Items[e.Index].GetType() == typeof(SpecialCell)) { SpecialCell c = (SpecialCell)this.Items[e.Index]; if (c.CellType == SpecialCell.CellTypes.CurrentColor) { e.ItemHeight = 0; } else if (c.CellType == SpecialCell.CellTypes.Transparent && !m_allowTransparent) { e.ItemHeight = 0; } else { base.OnMeasureItem(e); } } else { base.OnMeasureItem(e); } }
/// <summary> /// Initializes a new instance of the <see cref="ColorComboBox"/> class. /// </summary> public ColorComboBox() : base() { if (!this.DesignMode) { m_currentColor = new SpecialCell(SpecialCell.CellTypes.CurrentColor); base.SetCustomRender(new RenderCustomItem(ColorComboRender)); //ResetColors(); } }
private SpecialCell CreateSegmentCell(Cell cell, GameObject segment) { var specialCell = new SpecialCell { Cell = cell, Obj = segment }; specialCell.Obj.transform.parent = _player.transform; specialCell.Obj.transform.position = specialCell.Cell.WorldPosition; return(specialCell); }
private void DrawSegment(SpecialCell segment, [Optional] Cell previousCell, [Optional] Cell nextCell) { Sprite segmentSprite = null; if (previousCell != null && nextCell != null) { if (previousCell.Y < segment.Cell.Y && segment.Cell.Y < nextCell.Y || previousCell.Y > segment.Cell.Y && segment.Cell.Y > nextCell.Y) { segmentSprite = snakeAtlas.GetSprite("Snake_12"); } else if (previousCell.X < segment.Cell.X && segment.Cell.X < nextCell.X || previousCell.X > segment.Cell.X && segment.Cell.X > nextCell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_13"); } else if (previousCell.X < segment.Cell.X && segment.Cell.Y < nextCell.Y || previousCell.Y > segment.Cell.Y && segment.Cell.X > nextCell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_11"); } else if (previousCell.X > segment.Cell.X && segment.Cell.Y < nextCell.Y || previousCell.Y > segment.Cell.Y && segment.Cell.X < nextCell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_8"); } else if (previousCell.X > segment.Cell.X && segment.Cell.Y > nextCell.Y || previousCell.Y < segment.Cell.Y && segment.Cell.X < nextCell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_9"); } else if (previousCell.X < segment.Cell.X && segment.Cell.Y > nextCell.Y || previousCell.Y < segment.Cell.Y && segment.Cell.X > nextCell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_10"); } } else if (previousCell != null) { if (previousCell.Y < segment.Cell.Y) { segmentSprite = snakeAtlas.GetSprite("Snake_0"); } else if (previousCell.Y > segment.Cell.Y) { segmentSprite = snakeAtlas.GetSprite("Snake_2"); } else if (previousCell.X > segment.Cell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_3"); } else if (previousCell.X < segment.Cell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_1"); } } else if (nextCell != null) { if (nextCell.Y < segment.Cell.Y) { segmentSprite = snakeAtlas.GetSprite("Snake_6"); } else if (nextCell.Y > segment.Cell.Y) { segmentSprite = snakeAtlas.GetSprite("Snake_4"); } else if (nextCell.X > segment.Cell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_5"); } else if (nextCell.X < segment.Cell.X) { segmentSprite = snakeAtlas.GetSprite("Snake_7"); } } segment.Obj.GetComponent <SpriteRenderer>().sprite = segmentSprite; }