예제 #1
0
        private void drawSystems()
        {
            //Draw every system
            foreach (StarSystem point in Interface.GameManager.Systems)
            {
                Point relativePos = point.MapCoord;
                relativePos.X += (int)(mapOffset.X / GraphicConsole.BufferWidth);
                relativePos.Y += (int)(mapOffset.Y / GraphicConsole.BufferWidth);

                GraphicConsole.SetColor(point.StarColor, Color4.Black);
                GraphicConsole.Put('☼', relativePos.X + Position.X, relativePos.Y + Position.Y);
            }

            //Draw current system
            Point systemPos = currentSystem.MapCoord;

            systemPos.X += (int)(mapOffset.X / GraphicConsole.BufferWidth);
            systemPos.Y += (int)(mapOffset.Y / GraphicConsole.BufferWidth);

            GraphicConsole.SetColor(Color4.Black, currentSystem.StarColor);
            GraphicConsole.Put('☼', systemPos.X + Position.X, systemPos.Y + Position.Y);

            if (drawSelectedSystem)
            {
                Point relativePos = selectedSystem.MapCoord;
                relativePos.X += (int)(mapOffset.X / GraphicConsole.BufferWidth);
                relativePos.Y += (int)(mapOffset.Y / GraphicConsole.BufferWidth);

                GraphicConsole.SetColor(Color4.Black, selectedSystem.StarColor);
                GraphicConsole.Put('☼', relativePos.X + Position.X, relativePos.Y + Position.Y);
            }

            GraphicConsole.ClearColor();
        }
예제 #2
0
        public override void DrawStep()
        {
            for (int i = 0; i < stars.Count; i++)
            {
                GraphicConsole.SetColor(stars[i].Color, Color4.Black);
                GraphicConsole.Put('.', stars[i].X, stars[i].Y);
            }
            GraphicConsole.ClearColor();

            base.DrawStep();
        }
예제 #3
0
        private void drawPaths()
        {
            GraphicConsole.SetColor(Color4.Red, Color4.Black);
            for (int i = 0; i < path.Count - 1; i++)
            {
                Point a = getScreenPosFromCoord(path[i].MapCoord);
                Point b = getScreenPosFromCoord(path[i + 1].MapCoord);

                GraphicConsole.Draw.Line(a.X, a.Y, b.X, b.Y, '∙');
            }
            GraphicConsole.ClearColor();
        }
예제 #4
0
        public virtual void DrawStep()
        {
            GraphicConsole.ClearColor();

            for (int i = 0; i < this.children.Count; i++)
            {
                if (this.children[i].IsVisible)
                {
                    this.children[i].DrawStep();
                }
            }
        }
예제 #5
0
        public override void DrawStep()
        {
            Rectangle mapBounds = new Rectangle(Position, new Size(Size));

            GraphicConsole.SetBounds(mapBounds);

            Vector2 origin = Vector2.Zero;

            origin.X += mapOffset.X / GraphicConsole.BufferWidth;
            origin.Y += mapOffset.Y / GraphicConsole.BufferWidth;

            int x = (int)(origin.X + mapBounds.X);
            int y = (int)(origin.Y + mapBounds.Y);

            GraphicConsole.SetColor(axisColor, Color4.Black);
            GraphicConsole.Draw.Line(x, mapBounds.Top + 1, x, mapBounds.Bottom - 1, '·');
            GraphicConsole.Draw.Line(mapBounds.Left + 1, y, mapBounds.Right - 1, y, '·');
            GraphicConsole.SetCursor(x + 1, y - 1);
            GraphicConsole.ClearColor();

            double travelRadius = Interface.GameManager.PlayerShip.JumpRadius;
            int    r            = (int)(travelRadius / GraphicConsole.BufferWidth);

            Point playerPos = getScreenPosFromCoord(getCoordFromWorldPos(Interface.GameManager.PlayerShip.WorldPosition));

            GraphicConsole.SetColor(Color4.Gray, Color4.Black);
            GraphicConsole.Draw.Circle(playerPos.X, playerPos.Y, r, '·');

            if (drawSelectedSystem)
            {
                drawPaths();
            }
            drawShips();
            drawSystems();
            drawFactions();

            GraphicConsole.ClearBounds();
            GraphicConsole.ClearColor();

            drawBorder(mapBounds);

            if (DrawPlayerPosition)
            {
                GraphicConsole.SetColor(Color4.Red, Color4.Black);
                GraphicConsole.Put('@', playerPos);
            }

            GraphicConsole.ClearColor();
            base.DrawStep();
        }
예제 #6
0
        public override void DrawStep()
        {
            GraphicConsole.SetColor(Color4.Transparent, FillColor);
            GraphicConsole.Draw.Rect(Position.X, Position.Y, Size.X, Size.Y, ' ', true);

            GraphicConsole.SetColor(Color4.Transparent, StripeColor);
            for (int x = Position.X + Size.X - 1; x >= Position.X; x -= 5)
            {
                GraphicConsole.Draw.Line(x, Position.Y, x, Position.Y + Size.Y - 1, ' ');
            }

            if (faction == null)
            {
                return;
            }

            int scaleX = 5;
            int scaleY = max(0, 100) / (Size.Y - 1);

            if (scaleY == 0)
            {
                return;              //Prevent divide by zero exception
            }
            int loop = 0;

            for (int i = faction.StockPrices.Count - 1; i > 0 && loop < Size.X / 5; i--)
            {
                int x0 = (Position.X + Size.X - 1) - loop * scaleX;
                int x1 = (Position.X + Size.X - 1) - (loop + 1) * scaleX;

                int y0 = (Position.Y + Size.Y - 1) - faction.StockPrices[i] / scaleY;
                int y1 = (Position.Y + Size.Y - 1) - faction.StockPrices[i - 1] / scaleY;

                GraphicConsole.SetColor(faction.RegionColor, FillColor);
                GraphicConsole.Draw.Line(x0, y0, x1, y1, '.');

                GraphicConsole.SetColor(faction.RegionColor, StripeColor);
                GraphicConsole.Put('*', x0, y0);
                GraphicConsole.Put('*', x1, y1);

                loop++;
            }

            GraphicConsole.ClearColor();

            base.DrawStep();
        }
예제 #7
0
        public override void DrawStep()
        {
            //Draw the star
            int r = 15;

            for (int i = 0; i < r; i++)
            {
                GraphicConsole.SetColor(GameManager.CurrentSystem.StarColor, Color4.Black);
                GraphicConsole.Draw.Circle(0, GraphicConsole.BufferHeight / 2, i, '.');
            }
            GraphicConsole.Draw.Circle(0, GraphicConsole.BufferHeight / 2, r, '*');

            //Draw the planets
            for (int i = 0; i < GameManager.CurrentSystem.Planetoids.Count; i++)
            {
                int x = i % 4;
                int y = i / 4;

                Planetoid planet = GameManager.CurrentSystem.Planetoids[i];

                int planetRadius = 5;

                GraphicConsole.SetColor(Color4.White, Color4.Black);
                GraphicConsole.Draw.Circle(x * 20 + 25, y * 15 + 10, planetRadius, '.');

                for (int moon = 0; moon < planet.Moons.Count; moon++)
                {
                    double angle = OpenTK.MathHelper.DegreesToRadians(moon * 30) - OpenTK.MathHelper.DegreesToRadians(90.0);
                    int    mX    = (int)(Math.Cos(angle) * (planetRadius + 3.1)) + (x * 20 + 25);
                    int    mY    = (int)(Math.Sin(angle) * (planetRadius + 1)) + (y * 15 + 10);

                    GraphicConsole.SetColor(Color4.White, Color4.Black);
                    GraphicConsole.Put('*', mX, mY);
                }
            }

            GraphicConsole.ClearColor();
            base.DrawStep();
        }
예제 #8
0
 protected virtual void clearArea()
 {
     GraphicConsole.ClearColor();
     GraphicConsole.Draw.Rect(this.Position.X, this.Position.Y, this.Size.X, this.Size.Y, ' ', true);
 }