コード例 #1
0
        public void MarkLocation(MarkerItem markerItem, int xPos, int yPos)
        {
            if (xPos > m_mapProvinceDefinitionItem.GetLength(0) ||
                yPos > m_mapProvinceDefinitionItem.GetLength(1))
            {
                return;
            }

            var provinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos];

            if (!markerItem.Provinces.Contains(provinceDefinitionItem))
            {
                return;
            }
            if (markerItem.Location == provinceDefinitionItem.Id)
            {
                return;
            }

            var oldProvince = markerItem.Provinces.Find(findItem => findItem.Id == markerItem.Location);

            if (oldProvince != null)
            {
                DrawCheckeredListPixel(oldProvince, markerItem.Color);
            }

            markerItem.Location = provinceDefinitionItem.Id;

            DrawCheckeredListPixel(provinceDefinitionItem, Color.Black);
        }
コード例 #2
0
ファイル: ProvinceEditor.cs プロジェクト: S13B3N/eu4-tools
        public void MarkLocation(MarkerItem markerItem, int xPos, int yPos)
        {
            if (xPos <= m_mapProvinceDefinitionItem.GetLength(0) && yPos <= m_mapProvinceDefinitionItem.GetLength(1))
            {
                ProvinceDefinitionItem provinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos];

                if (markerItem.ListProvince.Contains(provinceDefinitionItem))
                {
                    if (markerItem.Location != provinceDefinitionItem.IdProvince)
                    {
                        ProvinceDefinitionItem oldProvinceDefinitionItem = markerItem.ListProvince.Find(findItem => (findItem.IdProvince == markerItem.Location));

                        if (oldProvinceDefinitionItem != null)
                        {
                            DrawCheckeredListPixel(oldProvinceDefinitionItem, markerItem.Color);
                        }

                        markerItem.Location = provinceDefinitionItem.IdProvince;

                        DrawCheckeredListPixel(provinceDefinitionItem, Color.Black);
                    }
                    else
                    {
                        // nothing todo
                    }
                }
            }
        }
コード例 #3
0
ファイル: ProvinceEditor.cs プロジェクト: S13B3N/eu4-tools
        public void MarkOutgoing(MarkerItem markerItem)
        {
            foreach (MarkerItem outgoingMarkerItem in markerItem.ListOutgoing)
            {
                foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkerItem.ListProvince)
                {
                    if (outgoingMarkerItem.Location != provinceDefinitionItem.IdProvince)
                    {
                        DrawHorizontalListPixel(provinceDefinitionItem, Color.White);
                    }
                }
            }

            foreach (MarkerItem ingoingMarkerItem in m_listMarkerItem)
            {
                if (ingoingMarkerItem.ListOutgoing.Contains(markerItem))
                {
                    foreach (ProvinceDefinitionItem provinceDefinitionItem in ingoingMarkerItem.ListProvince)
                    {
                        if (ingoingMarkerItem.Location != provinceDefinitionItem.IdProvince)
                        {
                            DrawVerticalListPixel(provinceDefinitionItem, Color.White);
                        }
                    }
                }
            }
        }
コード例 #4
0
        public void Mark(MarkerItem markerItem, int xPos, int yPos)
        {
            if (xPos > m_mapProvinceDefinitionItem.GetLength(0) ||
                yPos > m_mapProvinceDefinitionItem.GetLength(1))
            {
                return;
            }
            var province = m_mapProvinceDefinitionItem[xPos, yPos];

            Color drawColor;

            if (markerItem.Provinces.Contains(province))
            {
                markerItem.Provinces.Remove(province);

                drawColor = Color.FromArgb(0, 0, 0, 0);
            }
            else
            {
                foreach (var clearMarkerItem in MarkerItems)
                {
                    clearMarkerItem.Provinces.Remove(province);
                }

                markerItem.Provinces.Add(province);

                drawColor = markerItem.Color;
            }

            foreach (var pixel in province.Pixels)
            {
                BitmapMapOverlay.SetPixel(pixel.XPos, pixel.YPos, drawColor);
            }
        }
コード例 #5
0
ファイル: ProvinceEditor.cs プロジェクト: S13B3N/eu4-tools
        public void ChangeMarker(MarkerItem oldMarkerItem, MarkerItem markerItem)
        {
            if (oldMarkerItem != null)
            {
                foreach (MarkerItem outgoingMarkerItem in oldMarkerItem.ListOutgoing)
                {
                    foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkerItem.ListProvince)
                    {
                        if (outgoingMarkerItem.Location != provinceDefinitionItem.IdProvince)
                        {
                            DrawHorizontalListPixel(provinceDefinitionItem, outgoingMarkerItem.Color);
                        }
                    }
                }

                foreach (MarkerItem ingoingMarkerItem in m_listMarkerItem)
                {
                    if (ingoingMarkerItem.ListOutgoing.Contains(oldMarkerItem))
                    {
                        foreach (ProvinceDefinitionItem provinceDefinitionItem in ingoingMarkerItem.ListProvince)
                        {
                            if (ingoingMarkerItem.Location != provinceDefinitionItem.IdProvince)
                            {
                                DrawVerticalListPixel(provinceDefinitionItem, ingoingMarkerItem.Color);
                            }
                        }
                    }
                }
            }

            //---------------------------------------------------------------------

            foreach (MarkerItem outgoingMarkerItem in markerItem.ListOutgoing)
            {
                foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkerItem.ListProvince)
                {
                    if (outgoingMarkerItem.Location != provinceDefinitionItem.IdProvince)
                    {
                        DrawHorizontalListPixel(provinceDefinitionItem, Color.White);
                    }
                }
            }

            foreach (MarkerItem ingoingMarkerItem in m_listMarkerItem)
            {
                if (ingoingMarkerItem.ListOutgoing.Contains(markerItem))
                {
                    foreach (ProvinceDefinitionItem provinceDefinitionItem in ingoingMarkerItem.ListProvince)
                    {
                        if (ingoingMarkerItem.Location != provinceDefinitionItem.IdProvince)
                        {
                            DrawVerticalListPixel(provinceDefinitionItem, Color.White);
                        }
                    }
                }
            }
        }
コード例 #6
0
        public void MarkOutgoing(MarkerItem markerItem)
        {
            var provinces = from outgoingMarkerItem in markerItem.OutgoingItems
                            from provinceDefinitionItem in outgoingMarkerItem.Provinces
                            where outgoingMarkerItem.Location != provinceDefinitionItem.Id
                            select provinceDefinitionItem;

            foreach (var province in provinces)
            {
                DrawHorizontalListPixel(province, Color.White);
            }

            foreach (var province in MarkerItems.Where(ingoingMarkerItem => ingoingMarkerItem.OutgoingItems.Contains(markerItem)).SelectMany(ingoingMarkerItem => ingoingMarkerItem.Provinces.Where(provinceDefinitionItem => ingoingMarkerItem.Location != provinceDefinitionItem.Id)))
            {
                DrawVerticalListPixel(province, Color.White);
            }
        }
コード例 #7
0
ファイル: ProvinceEditor.cs プロジェクト: S13B3N/eu4-tools
        public void MarkOutgoing(MarkerItem markerItem, int xPos, int yPos)
        {
            if (xPos <= m_mapProvinceDefinitionItem.GetLength(0) && yPos <= m_mapProvinceDefinitionItem.GetLength(1))
            {
                ProvinceDefinitionItem markedProvinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos];

                MarkerItem outgoingMarkterItem = m_listMarkerItem.Find(findItem => findItem.ListProvince.Contains(markedProvinceDefinitionItem));

                if ((outgoingMarkterItem != null) && (outgoingMarkterItem != markerItem) && !outgoingMarkterItem.ListOutgoing.Contains(markerItem))
                {
                    if (markerItem.ListOutgoing.Contains(outgoingMarkterItem))
                    {
                        markerItem.ListOutgoing.Remove(outgoingMarkterItem);

                        foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkterItem.ListProvince)
                        {
                            if (outgoingMarkterItem.Location != provinceDefinitionItem.IdProvince)
                            {
                                DrawHorizontalListPixel(provinceDefinitionItem, outgoingMarkterItem.Color);
                            }
                        }
                    }
                    else
                    {
                        markerItem.ListOutgoing.Add(outgoingMarkterItem);

                        foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkterItem.ListProvince)
                        {
                            if (outgoingMarkterItem.Location != provinceDefinitionItem.IdProvince)
                            {
                                DrawHorizontalListPixel(provinceDefinitionItem, Color.White);
                            }
                        }
                    }
                }
                else
                {
                    // nothing todo
                }
            }
        }
コード例 #8
0
ファイル: ProvinceEditor.cs プロジェクト: S13B3N/eu4-tools
        //------------------------------------------------------------------------

        public void Mark(MarkerItem markerItem, int xPos, int yPos)
        {
            if (xPos <= m_mapProvinceDefinitionItem.GetLength(0) && yPos <= m_mapProvinceDefinitionItem.GetLength(1))
            {
                ProvinceDefinitionItem provinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos];

                Color drawColor;

                if (markerItem.ListProvince.Contains(provinceDefinitionItem))
                {
                    markerItem.ListProvince.Remove(provinceDefinitionItem);

                    drawColor = Color.FromArgb(0, 0, 0, 0);
                }
                else
                {
                    foreach (MarkerItem clearMarkerItem in m_listMarkerItem)
                    {
                        clearMarkerItem.ListProvince.Remove(provinceDefinitionItem);
                    }

                    markerItem.ListProvince.Add(provinceDefinitionItem);

                    drawColor = markerItem.Color;
                }

                //------------------------------------------------------------------

                foreach (Pixel pixel in provinceDefinitionItem.ListPixel)
                {
                    m_bitmapMapOverlay.SetPixel(pixel.XPos, pixel.YPos, drawColor);
                }
            }
            else
            {
                int k = 4711;
            }
        }
コード例 #9
0
        public void ChangeMarker(MarkerItem oldMarkerItem, MarkerItem markerItem)
        {
            if (oldMarkerItem != null)
            {
                foreach (var outgoingMi in oldMarkerItem.OutgoingItems)
                {
                    foreach (var province in outgoingMi.Provinces.Where(province => outgoingMi.Location != province.Id))
                    {
                        DrawHorizontalListPixel(province, outgoingMi.Color);
                    }
                }

                foreach (var ingoingMi in MarkerItems.Where(mi => mi.OutgoingItems.Contains(oldMarkerItem)))
                {
                    foreach (var province in ingoingMi.Provinces.Where(province => ingoingMi.Location != province.Id))
                    {
                        DrawVerticalListPixel(province, ingoingMi.Color);
                    }
                }
            }

            foreach (var provinceDefinitionItem in
                     markerItem.OutgoingItems.SelectMany(outgoingMarkerItem => outgoingMarkerItem.Provinces
                                                         .Where(provinceDefinitionItem => outgoingMarkerItem.Location != provinceDefinitionItem.Id)))
            {
                DrawHorizontalListPixel(provinceDefinitionItem, Color.White);
            }

            foreach (var provinceDefinitionItem in
                     MarkerItems.Where(ingoingMarkerItem =>
                                       ingoingMarkerItem.OutgoingItems.Contains(markerItem)).SelectMany(ingoingMarkerItem =>
                                                                                                        ingoingMarkerItem.Provinces.Where(provinceDefinitionItem =>
                                                                                                                                          ingoingMarkerItem.Location != provinceDefinitionItem.Id)))
            {
                DrawVerticalListPixel(provinceDefinitionItem, Color.White);
            }
        }
コード例 #10
0
        public void MarkOutgoing(MarkerItem markerItem, int xPos, int yPos)
        {
            if (xPos > m_mapProvinceDefinitionItem.GetLength(0) ||
                yPos > m_mapProvinceDefinitionItem.GetLength(1))
            {
                return;
            }
            var markedProvince = m_mapProvinceDefinitionItem[xPos, yPos];

            var outgoingMarkerItem = MarkerItems.Find(mi => mi.Provinces.Contains(markedProvince));

            if (outgoingMarkerItem == null || outgoingMarkerItem == markerItem ||
                outgoingMarkerItem.OutgoingItems.Contains(markerItem))
            {
                return;
            }

            if (markerItem.OutgoingItems.Contains(outgoingMarkerItem))
            {
                markerItem.OutgoingItems.Remove(outgoingMarkerItem);

                foreach (var provinceDefinitionItem in outgoingMarkerItem.Provinces.Where(provinceDefinitionItem => outgoingMarkerItem.Location != provinceDefinitionItem.Id))
                {
                    DrawHorizontalListPixel(provinceDefinitionItem, outgoingMarkerItem.Color);
                }
            }
            else
            {
                markerItem.OutgoingItems.Add(outgoingMarkerItem);

                foreach (var provinceDefinitionItem in outgoingMarkerItem.Provinces.Where(provinceDefinitionItem => outgoingMarkerItem.Location != provinceDefinitionItem.Id))
                {
                    DrawHorizontalListPixel(provinceDefinitionItem, Color.White);
                }
            }
        }
コード例 #11
0
ファイル: ProvinceEditor.cs プロジェクト: S13B3N/eu4-tools
        public void ReadMarker(String pathOfMarkerFile)
        {
            m_listMarkerItem.Clear();

            if (File.Exists(pathOfMarkerFile))
            {
                Dictionary <int, int> dictDuplicateIdProvince = new Dictionary <int, int> ();

                String[] listMarker = File.ReadAllLines(pathOfMarkerFile, m_encoding1252);

                foreach (String marker in listMarker)
                {
                    if (!marker.Contains('#'))
                    {
                        String[] listSplittedMarker = marker.Split('|');

                        if (listSplittedMarker.Length == 5)
                        {
                            int r, g, b;

                            String name;

                            name = listSplittedMarker[0];

                            int.TryParse(listSplittedMarker[1], out r);
                            int.TryParse(listSplittedMarker[2], out g);
                            int.TryParse(listSplittedMarker[3], out b);

                            String[] listIdProvince = listSplittedMarker[4].Split(',');

                            MarkerItem markerItem = m_listMarkerItem.Find(searchItem => ((searchItem.R == r) && (searchItem.G == g) && (searchItem.B == b)));

                            if (markerItem == null)
                            {
                                markerItem = new MarkerItem(name, r, g, b, 255, 0, "");

                                foreach (String stringIdProvince in listIdProvince)
                                {
                                    int idProvince = -1;

                                    int.TryParse(stringIdProvince.Trim(), out idProvince);

                                    if ((idProvince > 0) && !dictDuplicateIdProvince.ContainsKey(idProvince))
                                    {
                                        ProvinceDefinitionItem provinceDefinitionItem = m_listProvinceDefinition.Find(findItem => findItem.IdProvince == idProvince);

                                        if (provinceDefinitionItem != null)
                                        {
                                            dictDuplicateIdProvince.Add(idProvince, idProvince);

                                            markerItem.ListProvince.Add(provinceDefinitionItem);
                                        }
                                    }
                                }

                                m_listMarkerItem.Add(markerItem);
                            }
                        }
                        else if (listSplittedMarker.Length == 7)
                        {
                            int r = 0, g = 0, b = 0, location = 0;

                            String name;

                            name = listSplittedMarker[0];

                            int.TryParse(listSplittedMarker[1], out r);
                            int.TryParse(listSplittedMarker[2], out g);
                            int.TryParse(listSplittedMarker[3], out b);

                            int.TryParse(listSplittedMarker[4], out location);

                            String[] listIdProvince = listSplittedMarker[6].Split(',');

                            MarkerItem markerItem = m_listMarkerItem.Find(searchItem => ((searchItem.R == r) && (searchItem.G == g) && (searchItem.B == b)));

                            if (markerItem == null)
                            {
                                markerItem = new MarkerItem(name, r, g, b, 255, location, listSplittedMarker[5]);

                                foreach (String stringIdProvince in listIdProvince)
                                {
                                    int idProvince = -1;

                                    int.TryParse(stringIdProvince.Trim(), out idProvince);

                                    if ((idProvince > 0) && !dictDuplicateIdProvince.ContainsKey(idProvince))
                                    {
                                        ProvinceDefinitionItem provinceDefinitionItem = m_listProvinceDefinition.Find(findItem => findItem.IdProvince == idProvince);

                                        if (provinceDefinitionItem != null)
                                        {
                                            dictDuplicateIdProvince.Add(idProvince, idProvince);

                                            markerItem.ListProvince.Add(provinceDefinitionItem);
                                        }
                                    }
                                }

                                m_listMarkerItem.Add(markerItem);
                            }
                            else
                            {
                                int k = 4711;
                            }
                        }
                        else
                        {
                            int k = 4711;
                        }
                    }
                }

                //------------------------------------------------------------------

                foreach (MarkerItem markerItem in m_listMarkerItem)
                {
                    String[] listOutgoing = markerItem.Outgoing.Split(',');

                    foreach (String outgoing in listOutgoing)
                    {
                        if (outgoing.Length > 0)
                        {
                            markerItem.ListOutgoing.AddRange(m_listMarkerItem.FindAll(findItem => findItem.Name.Equals(outgoing)));
                        }
                    }
                }
            }
        }
コード例 #12
0
        public void ReadMarker(string pathOfMarkerFile)
        {
            MarkerItems.Clear();

            if (!File.Exists(pathOfMarkerFile))
            {
                return;
            }
            var dictDuplicateIdProvince = new Dictionary <int, int>();

            string[] markers = File.ReadAllLines(pathOfMarkerFile, m_encoding1252);

            foreach (string marker in markers)
            {
                if (marker.Contains('#'))
                {
                    continue;
                }

                string[] listSplittedMarker = marker.Split('|');

                switch (listSplittedMarker.Length)
                {
                case 5:
                {
                    var name = listSplittedMarker[0];

                    int.TryParse(listSplittedMarker[1], out var r);
                    int.TryParse(listSplittedMarker[2], out var g);
                    int.TryParse(listSplittedMarker[3], out var b);

                    string[] listIdProvince = listSplittedMarker[4].Split(',');

                    var markerItem = MarkerItems.Find(searchItem => searchItem.R == r && searchItem.G == g && searchItem.B == b);

                    if (markerItem == null)
                    {
                        markerItem = new MarkerItem(name, r, g, b, 255, 0, "");

                        foreach (string stringIdProvince in listIdProvince)
                        {
                            int.TryParse(stringIdProvince.Trim(), out var idProvince);

                            if (idProvince <= 0 || dictDuplicateIdProvince.ContainsKey(idProvince))
                            {
                                continue;
                            }

                            var provinceDefinitionItem = Provinces.Find(findItem => findItem.Id == idProvince);

                            if (provinceDefinitionItem == null)
                            {
                                continue;
                            }
                            dictDuplicateIdProvince.Add(idProvince, idProvince);

                            markerItem.Provinces.Add(provinceDefinitionItem);
                        }

                        MarkerItems.Add(markerItem);
                    }

                    break;
                }

                case 7:
                {
                    var name = listSplittedMarker[0];

                    int.TryParse(listSplittedMarker[1], out int r);
                    int.TryParse(listSplittedMarker[2], out int g);
                    int.TryParse(listSplittedMarker[3], out int b);

                    int.TryParse(listSplittedMarker[4], out int location);

                    string[] listIdProvince = listSplittedMarker[6].Split(',');

                    var markerItem = MarkerItems.Find(searchItem => searchItem.R == r && searchItem.G == g && searchItem.B == b);

                    if (markerItem != null)
                    {
                        continue;
                    }

                    markerItem = new MarkerItem(name, r, g, b, 255, location, listSplittedMarker[5]);

                    var provinceIds = listIdProvince.Select(strId =>
                        {
                            int.TryParse(strId.Trim(), out var id);
                            return(id);
                        }).Where(id => (id <= 0 || dictDuplicateIdProvince.ContainsKey(id)) == false).ToList();

                    var provinces = provinceIds.Select(id =>
                                                       Provinces.Find(province => province.Id == id));

                    foreach (var province in provinces)
                    {
                        dictDuplicateIdProvince.Add(province.Id, province.Id);
                        markerItem.Provinces.Add(province);
                    }

                    MarkerItems.Add(markerItem);
                    break;
                }
                }
            }

            foreach (var markerItem in MarkerItems)
            {
                string[] listOutgoing = markerItem.Outgoing.Split(',');

                foreach (string outgoing in listOutgoing.Where(outgoing => outgoing.Length > 0))
                {
                    markerItem.OutgoingItems.AddRange(MarkerItems.FindAll(findItem => findItem.Name.Equals(outgoing)));
                }
            }
        }