private void ApplySegmentTemplates()
    {
        for (int y = 0; y < segmentHeight; y++)
        {
            for (int x = 0; x < segmentWidth; x++)
            {
                // chance of not applying template
                if (Game.Random.Next(100) > 50)
                {
                    continue;
                }

                if (segments[x, y] != null) // || segments[x, y].ID == 0)
                {
                    List <SegmentTemplateData> templates = SegmentTemplate.FindMatchingSegmentTemplates(1, segments[x, y].ID);

                    if (templates.Count > 0)
                    {
                        int index = Game.Random.Next(templates.Count - 1);

                        Map templateMap = SegmentTemplate.GenerateMapFromTemplate(templates[index], segments[x, y].ID);

                        map.Copy(templateMap,
                                 x * MapSegment.SegmentCellWidthHeight,
                                 y * MapSegment.SegmentCellWidthHeight);

                        segments[x, y].template = templates[index];
                    }
                }
            }
        }
    }
Example #2
0
    public void SegmentTemplateTest()
    {
        List <SegmentTemplateData> templates = SegmentTemplate.FindMatchingSegmentTemplates(1, 1);

        Console.WriteLine("Templates Found: " + templates.Count);

        Map map = SegmentTemplate.GenerateMapFromTemplate(templates[0], 0);

        Debug.Log(map.ToString());

        map = SegmentTemplate.GenerateMapFromTemplate(templates[0], 90);
        Debug.Log(map.ToString());

        map = SegmentTemplate.GenerateMapFromTemplate(templates[0], 180);
        Debug.Log(map.ToString());

        map = SegmentTemplate.GenerateMapFromTemplate(templates[0], 270);
        Debug.Log(map.ToString());
    }