Ejemplo n.º 1
0
        public TabLocations()
        {
            InitializeComponent();

            mapViewer.DrawObjects = new List <IMapDrawable>();
            mapViewer.Map         = Maps.Sosaria;
            mapViewer.DrawStatics = true;
            mapViewer.Center      = new Point(150, 200);

            #if DEBUG
            // Предотвращаем падение конструктора
            if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data\Locations.xml")))
            {
                return;
            }
            #endif

            locationsTreeView.BeginUpdate();
            locationsTreeView.Nodes.Clear();
            m_Locations = new LocationTree(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data\Locations.xml"));
            RebuildTree(null);
            locationsTreeView.EndUpdate();
            if (locationsTreeView.Nodes != null && locationsTreeView.Nodes.Count > 0)
            {
                locationsTreeView.SelectedNode = locationsTreeView.Nodes[0];
            }

            openFileDialog.InitialDirectory = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data");
            saveFileDialog.InitialDirectory = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data");
        }
Ejemplo n.º 2
0
        public void DoLocationTree()
        {
            // Clear the tree
            TreeModel model = new TreeModel();

            LocationTree.Model = model;

            LocationTree.BeginUpdate();
            for (int build = 0; build < CurrentWSG.TotalLocations; build++)
            {
                string key  = CurrentWSG.LocationStrings[build];
                string name = LocationsXml.XmlReadAssociatedValue("OutpostDisplayName", "OutpostName", key);
                if (name == "")
                {
                    name = key;
                }

                ColoredTextNode node = new ColoredTextNode(name);
                node.Tag = key;

                model.Nodes.Add(node);
            }
            //LocationTree.Update();
            LocationTree.EndUpdate();
        }
Ejemplo n.º 3
0
        public TabLocations()
        {
            InitializeComponent();

            mapViewer.DrawObjects = new List<IMapDrawable>();
            mapViewer.Map = Maps.Sosaria;
            mapViewer.DrawStatics = true;
            mapViewer.Center = new Point(150, 200);

            #if DEBUG
            // Предотвращаем падение конструктора
            if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data\Locations.xml"))) return;
            #endif

            locationsTreeView.BeginUpdate();
            locationsTreeView.Nodes.Clear();
            m_Locations = new LocationTree(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data\Locations.xml"));
            RebuildTree(null);
            locationsTreeView.EndUpdate();
            if (locationsTreeView.Nodes != null && locationsTreeView.Nodes.Count > 0)
                locationsTreeView.SelectedNode = locationsTreeView.Nodes[0];

            openFileDialog.InitialDirectory = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data");
            saveFileDialog.InitialDirectory = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, @"Data");
        }
Ejemplo n.º 4
0
 private void newToolStripMenuItem_Click(object sender, EventArgs e)
 {
     locationsTreeView.BeginUpdate();
     locationsTreeView.Nodes.Clear();
     m_Locations = new LocationTree();
     RebuildTree(null);
     locationsTreeView.EndUpdate();
 }
Ejemplo n.º 5
0
        private static SR_Rune AddTree(LocationTree tree, Map map)
        {
            SR_Rune runeBook = new SR_Rune(map.ToString(), true);

            for (int i = 0; i < tree.Root.Children.Length; i++)
            {
                runeBook.AddRune(AddNode(tree.Root.Children[i], map));
            }

            return(runeBook);
        }
Ejemplo n.º 6
0
 private void openToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (openFileDialog.ShowDialog() == DialogResult.OK)
     {
         locationsTreeView.BeginUpdate();
         locationsTreeView.Nodes.Clear();
         m_Locations = new LocationTree(openFileDialog.FileName);
         RebuildTree(null);
         locationsTreeView.EndUpdate();
         if (locationsTreeView.Nodes != null && locationsTreeView.Nodes.Count > 0)
         {
             locationsTreeView.SelectedNode = locationsTreeView.Nodes[0];
         }
     }
 }
Ejemplo n.º 7
0
        public List <LocationTree> GetLocationsWithinXMiles(double latitude, double longitude, double radius, byte locType)
        {
            using (FlyJetsDbContext dbContext = new FlyJetsDbContext(_config))
            {
                double cLatitude, cLongitude;

                GetCenterCoordinates(out cLatitude, out cLongitude);

                var dummyAirport = new LocationTree {
                    Lat = latitude, Lng = longitude
                };

                var center   = new { Lat = cLatitude, Lng = cLongitude };
                var dummyLoc = new { dummyAirport.Lat, dummyAirport.Lng };

                dummyAirport.Distance = Utilities.GetDistance(center.Lat, center.Lng, dummyLoc.Lat.Value, dummyLoc.Lng.Value);

                double minDistanceRange = dummyAirport.Distance.Value - radius;

                if (minDistanceRange < 0)
                {
                    minDistanceRange = 0;
                }

                IQueryable <LocationTree> locationsSearchQuery = dbContext.LocationsTree;

                locationsSearchQuery = locationsSearchQuery.Where(m => m.Type == locType &&
                                                                  m.Distance >= minDistanceRange &&
                                                                  m.Distance <= dummyAirport.Distance + radius);

                List <LocationTree> locations = locationsSearchQuery
                                                .ToList();

                FillDistancesFromLocation(latitude, longitude, locations);

                List <LocationTree> result = new List <LocationTree>();

                int count = int.Parse(_config["NumberOfNearestLocations"]);

                return(locations.Where(loc => loc.Distance <= radius && loc.Distance != 0)
                       .OrderBy(m => m.Distance)
                       .Take(count)
                       .ToList());
            }
        }
Ejemplo n.º 8
0
        private void AddNode(RhitLocation location)
        {
            if (location.Id < 0)
            {
                return;
            }
            if (TempDict.ContainsKey(location.Id))
            {
                return;
            }
            LocationNode node = new LocationNode()
            {
                Name = location.Label,
                Id   = location.Id,
            };

            if (location.ParentId <= 0)
            {
                LocationTree.Add(node);
                TempDict[location.Id] = node;
                return;
            }

            if (TempDict.ContainsKey(location.ParentId))
            {
                TempDict[location.ParentId].ChildLocations.Add(node);
                TempDict[location.Id] = node;
                return;
            }

            if (Locations.ContainsKey(location.ParentId))
            {
                AddNode(Locations[location.ParentId]);
                TempDict[location.ParentId].ChildLocations.Add(node);
                TempDict[location.Id] = node;
                return;
            }

            LocationTree.Add(node);
            TempDict[location.Id] = node;
        }
Ejemplo n.º 9
0
            private SendToGump(int page, Mobile from, LocationTree tree, ParentNode node)
                : base(50, 50)
            {
                from.CloseGump(typeof(SendToGump));

                tree.LastBranch[from] = node;

                m_Page = page;
                m_Tree = tree;
                m_Node = node;

                int x = BorderSize + OffsetSize;
                int y = BorderSize + OffsetSize;

                int count = node.Children.Length - (page * EntryCount);

                if (count < 0)
                {
                    count = 0;
                }
                else if (count > EntryCount)
                {
                    count = EntryCount;
                }

                int totalHeight = OffsetSize + ((EntryHeight + OffsetSize) * (count + 1));

                AddPage(0);

                AddBackground(0, 0, BackWidth, BorderSize + totalHeight + BorderSize, BackGumpID);
                AddImageTiled(BorderSize, BorderSize, TotalWidth - (OldStyle ? SetWidth + OffsetSize : 0), totalHeight, OffsetGumpID);

                if (OldStyle)
                {
                    AddImageTiled(x, y, TotalWidth - (OffsetSize * 3) - SetWidth, EntryHeight, HeaderGumpID);
                }
                else
                {
                    AddImageTiled(x, y, PrevWidth, EntryHeight, HeaderGumpID);
                }

                if (node.Parent != null)
                {
                    AddButton(x + PrevOffsetX, y + PrevOffsetY, PrevButtonID1, PrevButtonID2, 1, GumpButtonType.Reply, 0);

                    if (PrevLabel)
                    {
                        AddLabel(x + PrevLabelOffsetX, y + PrevLabelOffsetY, TextHue, "Previous");
                    }
                }

                x += PrevWidth + OffsetSize;

                int emptyWidth = TotalWidth - (PrevWidth * 2) - NextWidth - (OffsetSize * 5) - (OldStyle ? SetWidth + OffsetSize : 0);

                if (!OldStyle)
                {
                    AddImageTiled(x - (OldStyle ? OffsetSize : 0), y, emptyWidth + (OldStyle ? OffsetSize * 2 : 0), EntryHeight, EntryGumpID);
                }

                AddHtml(x + TextOffsetX, y, emptyWidth - TextOffsetX, EntryHeight, String.Format("<center>{0}</center>", node.Name), false, false);

                x += emptyWidth + OffsetSize;

                if (OldStyle)
                {
                    AddImageTiled(x, y, TotalWidth - (OffsetSize * 3) - SetWidth, EntryHeight, HeaderGumpID);
                }
                else
                {
                    AddImageTiled(x, y, PrevWidth, EntryHeight, HeaderGumpID);
                }

                if (page > 0)
                {
                    AddButton(x + PrevOffsetX, y + PrevOffsetY, PrevButtonID1, PrevButtonID2, 2, GumpButtonType.Reply, 0);

                    if (PrevLabel)
                    {
                        AddLabel(x + PrevLabelOffsetX, y + PrevLabelOffsetY, TextHue, "Previous");
                    }
                }

                x += PrevWidth + OffsetSize;

                if (!OldStyle)
                {
                    AddImageTiled(x, y, NextWidth, EntryHeight, HeaderGumpID);
                }

                if ((page + 1) * EntryCount < node.Children.Length)
                {
                    AddButton(x + NextOffsetX, y + NextOffsetY, NextButtonID1, NextButtonID2, 3, GumpButtonType.Reply, 1);

                    if (NextLabel)
                    {
                        AddLabel(x + NextLabelOffsetX, y + NextLabelOffsetY, TextHue, "Next");
                    }
                }

                for (int i = 0, index = page * EntryCount; i < EntryCount && index < node.Children.Length; ++i, ++index)
                {
                    x  = BorderSize + OffsetSize;
                    y += EntryHeight + OffsetSize;

                    object child = node.Children[index];
                    string name  = "";

                    if (child is ParentNode)
                    {
                        name = ((ParentNode)child).Name;
                    }
                    else if (child is ChildNode)
                    {
                        name = ((ChildNode)child).Name;
                    }

                    AddImageTiled(x, y, EntryWidth, EntryHeight, EntryGumpID);
                    AddLabelCropped(x + TextOffsetX, y, EntryWidth - TextOffsetX, EntryHeight, TextHue, name);

                    x += EntryWidth + OffsetSize;

                    if (SetGumpID != 0)
                    {
                        AddImageTiled(x, y, SetWidth, EntryHeight, SetGumpID);
                    }

                    AddButton(x + SetOffsetX, y + SetOffsetY, SetButtonID1, SetButtonID2, index + 4, GumpButtonType.Reply, 0);
                }
            }
Ejemplo n.º 10
0
 private void openToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (openFileDialog.ShowDialog() == DialogResult.OK)
     {
         locationsTreeView.BeginUpdate();
         locationsTreeView.Nodes.Clear();
         m_Locations = new LocationTree(openFileDialog.FileName);
         RebuildTree(null);
         locationsTreeView.EndUpdate();
         if (locationsTreeView.Nodes != null && locationsTreeView.Nodes.Count > 0)
             locationsTreeView.SelectedNode = locationsTreeView.Nodes[0];
     }
 }
Ejemplo n.º 11
0
 private void newToolStripMenuItem_Click(object sender, EventArgs e)
 {
     locationsTreeView.BeginUpdate();
     locationsTreeView.Nodes.Clear();
     m_Locations = new LocationTree();
     RebuildTree(null);
     locationsTreeView.EndUpdate();
 }