Пример #1
0
        /// <see cref="ICommandService.SendFastCommandOnMinimap"/>
        public void SendFastCommandOnMinimap(RCIntVector position)
        {
            /// TODO: This is a PROTOTYPE CODE!
            if (this.scenarioManager.ActiveScenario == null)
            {
                throw new InvalidOperationException("No active scenario!");
            }
            if (this.selectionManager.LocalPlayer == PlayerEnum.Neutral)
            {
                return;
            }

            RCIntVector minimapPixelCoords = position - this.mapWindowBC.Minimap.MinimapPosition.Location;

            minimapPixelCoords = new RCIntVector(Math.Min(this.mapWindowBC.Minimap.MinimapPosition.Width - 1, Math.Max(0, minimapPixelCoords.X)),
                                                 Math.Min(this.mapWindowBC.Minimap.MinimapPosition.Height - 1, Math.Max(0, minimapPixelCoords.Y)));

            IMinimapPixel minimapPixel     = this.mapWindowBC.Minimap.GetMinimapPixel(minimapPixelCoords);
            RCNumVector   pixelCenterOnMap = minimapPixel.CoveredArea.Location + minimapPixel.CoveredArea.Size / 2;

            if (this.selectionManager.CurrentSelection.Count != 0)
            {
                this.multiplayerService.PostCommand(new RCCommand(null,
                                                                  this.selectionManager.CurrentSelection.ToArray(),
                                                                  pixelCenterOnMap,
                                                                  -1,
                                                                  null));
            }
        }
Пример #2
0
 /// <summary>
 /// Adds the given entity informations to the minimap pixels.
 /// </summary>
 /// <param name="quadraticPosition">The quadratic position of the entity.</param>
 /// <param name="owner">The owner of the entity.</param>
 /// <param name="attackSignal">A flag indicating that the corresponding pixels shall contain attack indication signal.</param>
 /// <param name="pixelInfos">The 2D array of the minimap pixels.</param>
 private void AddEntityInfo(RCIntRectangle quadraticPosition, PlayerEnum owner, bool attackSignal, MinimapPixelInfo[,] pixelInfos)
 {
     for (int quadTileY = quadraticPosition.Top; quadTileY < quadraticPosition.Bottom; quadTileY++)
     {
         for (int quadTileX = quadraticPosition.Left; quadTileX < quadraticPosition.Right; quadTileX++)
         {
             IMinimapPixel pixelAtQuadTile = this.MapWindowBC.Minimap.GetMinimapPixelAtQuadTile(new RCIntVector(quadTileX, quadTileY));
             if (this.selectionManagerBC.LocalPlayer != PlayerEnum.Neutral && owner == this.selectionManagerBC.LocalPlayer)
             {
                 pixelInfos[pixelAtQuadTile.PixelCoords.X, pixelAtQuadTile.PixelCoords.Y].EntityIndicatorType =
                     attackSignal ? MinimapPixelInfo.EntityIndicatorTypeEnum.AttackedFriendly : MinimapPixelInfo.EntityIndicatorTypeEnum.Friendly;
             }
             else
             {
                 pixelInfos[pixelAtQuadTile.PixelCoords.X, pixelAtQuadTile.PixelCoords.Y].EntityIndicatorType = MinimapPixelInfo.EntityIndicatorTypeEnum.NonFriendly;
             }
             pixelInfos[pixelAtQuadTile.PixelCoords.X, pixelAtQuadTile.PixelCoords.Y].EntityOwner = owner;
         }
     }
 }
Пример #3
0
        /// <see cref="ICommandService.SelectTargetPositionOnMinimap"/>
        public void SelectTargetPositionOnMinimap(RCIntVector position)
        {
            if (this.scenarioManager.ActiveScenario == null)
            {
                throw new InvalidOperationException("No active scenario!");
            }
            if (position == RCIntVector.Undefined)
            {
                throw new ArgumentNullException("position");
            }

            RCIntVector minimapPixelCoords = position - this.mapWindowBC.Minimap.MinimapPosition.Location;

            minimapPixelCoords = new RCIntVector(Math.Min(this.mapWindowBC.Minimap.MinimapPosition.Width - 1, Math.Max(0, minimapPixelCoords.X)),
                                                 Math.Min(this.mapWindowBC.Minimap.MinimapPosition.Height - 1, Math.Max(0, minimapPixelCoords.Y)));

            IMinimapPixel minimapPixel     = this.mapWindowBC.Minimap.GetMinimapPixel(minimapPixelCoords);
            RCNumVector   pixelCenterOnMap = minimapPixel.CoveredArea.Location + minimapPixel.CoveredArea.Size / 2;

            this.commandManager.SelectTargetPosition(pixelCenterOnMap);
        }
Пример #4
0
        /// <see cref="IScrollService.ScrollToMinimapPosition"/>
        public void ScrollToMinimapPosition(RCIntVector position)
        {
            if (this.mapWindowBC.Minimap == null)
            {
                throw new InvalidOperationException("Minimap has not yet been attached!");
            }
            if (position == RCIntVector.Undefined)
            {
                throw new ArgumentNullException("position");
            }

            RCIntVector minimapPixelCoords = position - this.mapWindowBC.Minimap.MinimapPosition.Location;

            minimapPixelCoords = new RCIntVector(Math.Min(this.mapWindowBC.Minimap.MinimapPosition.Width - 1, Math.Max(0, minimapPixelCoords.X)),
                                                 Math.Min(this.mapWindowBC.Minimap.MinimapPosition.Height - 1, Math.Max(0, minimapPixelCoords.Y)));

            IMinimapPixel minimapPixel     = this.mapWindowBC.Minimap.GetMinimapPixel(minimapPixelCoords);
            RCNumVector   pixelCenterOnMap = minimapPixel.CoveredArea.Location + minimapPixel.CoveredArea.Size / 2;

            this.mapWindowBC.ScrollTo(pixelCenterOnMap);
        }