Example #1
0
        UIElement getTownMarker(PopulationCentre town)
        {
            var marker = new System.Windows.Shapes.Rectangle();

            marker.Width           = 5;
            marker.Height          = 5;
            marker.Fill            = new SolidColorBrush(Color.FromRgb(0, 0, 255));
            marker.Stroke          = new SolidColorBrush(Color.FromRgb(0, 0, 0));
            marker.StrokeThickness = 1;
            Canvas.SetLeft(marker, town.Position.x - 2);
            Canvas.SetTop(marker, town.Position.y - 2);
            return(marker);
        }
Example #2
0
        UIElement getVillageMarker(PopulationCentre town)
        {
            var marker = new Ellipse();

            marker.Width           = 3;
            marker.Height          = 3;
            marker.Fill            = new SolidColorBrush(Color.FromRgb(0, 255, 255));
            marker.Stroke          = new SolidColorBrush(Color.FromRgb(0, 0, 0));
            marker.StrokeThickness = 1;
            Canvas.SetLeft(marker, town.Position.x - 1);
            Canvas.SetTop(marker, town.Position.y - 1);
            return(marker);
        }
Example #3
0
        public Form1()
        {
            InitializeComponent();
            int[,] biomeMap;
            var popCenters = buildData(out biomeMap);
            var field      = new TerrainType()
            {
                cost = 10f,
                name = "field"
            };
            var wood = new TerrainType()
            {
                cost = 2f,
                name = "wood"
            };
            var town = new TerrainType()
            {
                cost = 1.5f,
                name = "town"
            };
            World world = new World(biomeMap, new List <TerrainType>()
            {
                field, wood, town
            });

            Console.WriteLine("built world");
            pathfinding = world.getPathSolver();
            Console.WriteLine("built pathFinding");
            //pictureBox.Image = world.image;
            //pictureBox.Image=world.();
            var road = new RoadType()
            {
                weightRequirement = 0,
                cost = 1f
            };
            var highway = new RoadType()
            {
                weightRequirement = 5f,
                cost = 1f
            };
            var roads = new List <RoadType> {
                road, highway
            };
            var popCenter1 = new PopulationCentre(new MyMath.Point(10, 10), 100);
            var popCenter2 = new PopulationCentre(new MyMath.Point(74, 3), 30);
            var popCenter3 = new PopulationCentre(new MyMath.Point(230, 100), 70);
            var popCenter4 = new PopulationCentre(new MyMath.Point(200, 250), 30);
            var pops       = new List <PopulationCentre>()
            {
                popCenter1, popCenter3, popCenter4
            };

            pathfinding.AddRoads(popCenters, roads);

            //var path = pathfinding.getPath(new MyMath.Point(3, 3), new MyMath.Point(95, 53));
            var g = Graphics.FromImage(pictureBox.Image);

            foreach (var segment in pathfinding.roadNetwork.roadSegments)
            {
                Color c = Color.Gray;
                if ((segment.roadType as RoadType).weightRequirement != 0)
                {
                    c = Color.Purple;
                }
                g.DrawLines(new Pen(c, 1), segment.ConvertAll(x => new PointF(x.x, x.y)).ToArray());
            }
            pictureBox.Image.Save("roadMap.png");
            var meshes = world.getMeshes();

            /*foreach(var v in pathfinding.navigationNodes())
             * {
             *
             *      g.FillRectangle(new SolidBrush(Color.Red), (float)v.x, (float)v.y, 1, 1);
             *
             * }*/
        }