public override void HandleInput(PointF relativeMousePos) { var hit = _mouseRegions.ItemUnderMouse(relativeMousePos); if (InputState.MouseButtonDown(MouseButton.Left)) { if (_pressed == null && hit != null) { _pressed = hit.Item2; _highlighted = hit.Item2; } else { _highlighted = _pressed == hit ? _pressed : null; } } else if (_pressed != null) { if (_pressed == hit) { ItemClicked(_pressed); } _pressed = null; _highlighted = null; } }
public Visualizer GetVisualizer(string visualizerType, IVisualizable mapWithPlayers) { switch (visualizerType) { case "console": return(new ConsoleVisualizer(mapWithPlayers)); default: throw new ArgumentException(string.Format("Unknown visualizer type {0}", visualizerType)); } }
/// <summary> /// Adds a new visual child to the visual coolection. /// </summary> /// <param name="visualElement">A new visual element.</param> public void AddToVisualCollection(IVisualizable visualElement) { visualElement.Owner = this; if (visualElement is IPrimitive primitive) { PointManager.AddPrimitivePoints(PointCollection, primitive); } Visual visual = visualElement.GetVisual(); _visualsCollection.Add(visual); AddVisualChild(visual); }
public override void HandleInput(PointF relativeMousePos) { var hit = _mouseRegions.ItemUnderMouse (relativeMousePos); if (InputState.MouseButtonDown (MouseButton.Left)) { if (_pressed == null && hit != null) { _pressed = hit.Item2; _highlighted = hit.Item2; } else _highlighted = _pressed == hit ? _pressed : null; } else if (_pressed != null) { if (_pressed == hit) ItemClicked (_pressed); _pressed = null; _highlighted = null; } }
public ConsoleVisualizer(IVisualizable mapWithPlayers) : base(mapWithPlayers) { isMapDrawn = false; Console.CursorVisible = false; }
public GraphicalVisualizer(IVisualizable mapWithPlayers) : base(mapWithPlayers) { }
/// <summary> /// Removes the given item from the list of items that receive visualization events. /// </summary> /// <param name="visualizable">The visualized item.</param> public void Remove(IVisualizable visualizable) { _visualizable.Remove(visualizable, visualizable.VisualizationMetadata); }
/// <summary> /// Add the given item to the list of items which will receive visualization events. /// </summary> /// <param name="visualizable">The visualized item.</param> public void Add(IVisualizable visualizable) { _visualizable.Add(visualizable, visualizable.VisualizationMetadata); }
public Visualizer(IVisualizable mapWithPlayers) { this.MapWithPlayers = mapWithPlayers; }
public void SimulationUpdateHandler(IVisualizable simulation, IEnumerable <(int x, int y)> updatedPositions)
public void Clear() { lastSimulation = null; field.FieldSize = Vector2Int.zero; field.ClearTilesMaterials(); }