예제 #1
0
        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));
            }
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
 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;
     }
 }
예제 #5
0
 public ConsoleVisualizer(IVisualizable mapWithPlayers) : base(mapWithPlayers)
 {
     isMapDrawn            = false;
     Console.CursorVisible = false;
 }
예제 #6
0
 public GraphicalVisualizer(IVisualizable mapWithPlayers) : base(mapWithPlayers)
 {
 }
예제 #7
0
 /// <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);
 }
예제 #8
0
 /// <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;
 }
예제 #10
0
 public void SimulationUpdateHandler(IVisualizable simulation, IEnumerable <(int x, int y)> updatedPositions)
예제 #11
0
 public void Clear()
 {
     lastSimulation  = null;
     field.FieldSize = Vector2Int.zero;
     field.ClearTilesMaterials();
 }
예제 #12
0
 /// <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);
 }
예제 #13
0
 /// <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);
 }