Пример #1
0
        /// <summary>
        /// Handles the Click event of the showInBrowserMenuItem control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        private void showInBrowserMenuItem_Click(object sender, EventArgs e)
        {
            if (m_selectedItem == null)
            {
                return;
            }

            Ship      ship      = m_selectedItem as Ship;
            Blueprint blueprint = StaticBlueprints.GetBlueprintByID(m_selectedItem.ID);
            Skill     skill     = m_killLog.Character.Skills[m_selectedItem.ID];

            if (skill == Skill.UnknownSkill)
            {
                skill = null;
            }

            PlanWindow planWindow = PlanWindow.ShowPlanWindow(m_killLog.Character);

            if (ship != null)
            {
                planWindow.ShowShipInBrowser(ship);
            }
            else if (blueprint != null)
            {
                planWindow.ShowBlueprintInBrowser(blueprint);
            }
            else if (skill != null)
            {
                planWindow.ShowSkillInBrowser(skill);
            }
            else
            {
                planWindow.ShowItemInBrowser(m_selectedItem);
            }
        }
Пример #2
0
        /// <summary>
        /// Populates the serialization object job with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <param name="issuedFor">Whether this jobs was issued for the corporation or
        /// character.</param>
        /// <param name="character">The character owning this job.</param>
        private void PopulateJobInfo(EsiJobListItem src, IssuedFor issuedFor,
                                     CCPCharacter character = null)
        {
            ID                        = src.JobID;
            InstallerID               = src.InstallerID;
            InstalledItem             = StaticBlueprints.GetBlueprintByID(src.BlueprintTypeID);
            Runs                      = src.Runs;
            Cost                      = src.Cost;
            Probability               = src.Probability;
            SuccessfulRuns            = src.SuccessfulRuns;
            StartDate                 = src.StartDate;
            EndDate                   = src.EndDate;
            PauseDate                 = src.PauseDate;
            IssuedFor                 = issuedFor;
            m_installedItemLocationID = src.FacilityID;

            UpdateLocation(character);
            UpdateInstallation(character);

            if (Enum.IsDefined(typeof(BlueprintActivity), src.ActivityID))
            {
                Activity = (BlueprintActivity)Enum.ToObject(typeof(BlueprintActivity),
                                                            src.ActivityID);
            }

            OutputItem = GetOutputItem(src.ProductTypeID);
        }
Пример #3
0
        /// <summary>
        /// Populates the serialization object job with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        private void PopulateJobInfo(SerializableJobListItem src)
        {
            ID             = src.JobID;
            InstallerID    = src.InstallerID;
            InstalledItem  = StaticBlueprints.GetBlueprintByID(src.BlueprintTypeID);
            Runs           = src.Runs;
            SolarSystem    = StaticGeography.GetSolarSystemByID(src.SolarSystemID);
            Cost           = src.Cost;
            Probability    = src.Probability;
            SuccessfulRuns = src.SuccessfulRuns;
            //InstalledTime = src.InstallTime;
            //InstalledME = src.InstalledItemMaterialLevel;
            //InstalledPE = src.InstalledItemProductivityLevel;
            StartDate = src.StartDate;
            EndDate   = src.EndDate;
            PauseDate = src.PauseDate;
            IssuedFor = src.IssuedFor;
            m_installedItemLocationID = src.StationID;

            UpdateInstallation();

            if (Enum.IsDefined(typeof(BlueprintActivity), src.ActivityID))
            {
                Activity = (BlueprintActivity)Enum.ToObject(typeof(BlueprintActivity), src.ActivityID);
            }

            OutputItem = GetOutputItem(src.ProductTypeID);

            //if (Enum.IsDefined(typeof(BlueprintType), src.InstalledItemCopy))
            //    BlueprintType = (BlueprintType)Enum.ToObject(typeof(BlueprintType), src.InstalledItemCopy);
        }
Пример #4
0
        /// <summary>
        /// Gets the output item by its ID (can be a blueprint or an item).
        /// </summary>
        /// <param name="id">The itemID of the blueprint.</param>
        /// <returns>The output item from the bluperint.</returns>
        private Item GetOutputItem(int id)
        {
            switch (Activity)
            {
            case BlueprintActivity.Manufacturing:
                return(StaticBlueprints.GetBlueprintByID(InstalledItem.ID).ProducesItem ??
                       StaticItems.GetItemByID(0));

            case BlueprintActivity.ResearchingMaterialEfficiency:
            case BlueprintActivity.ResearchingTimeEfficiency:
            case BlueprintActivity.Copying:
                return(InstalledItem);

            case BlueprintActivity.Invention:
            case BlueprintActivity.ReverseEngineering:
                return(StaticBlueprints.GetBlueprintByID(id) ?? StaticItems.GetItemByID(0));

            case BlueprintActivity.SimpleReactions:
            case BlueprintActivity.Reactions:
                return(StaticItems.GetItemByID(InstalledItem?.ReactionOutcome?.Item?.ID ?? 0));

            default:
                return(StaticItems.GetItemByID(0));
            }
        }
Пример #5
0
        /// <summary>
        /// Gets the output item by its ID (can be a blueprint or an item).
        /// </summary>
        /// <param name="id">The itemID of the blueprint.</param>
        /// <returns>The output item from the bluperint.</returns>
        private static Item GetOutputItem(long id)
        {
            // Is it a blueprint ?
            Item item = StaticBlueprints.GetBlueprintByID(id);

            // Then it's an item
            if (item == null)
            {
                item = StaticItems.GetItemByID(id);
            }

            return(item);
        }
Пример #6
0
        /// <summary>
        /// Loads the static data.
        /// </summary>
        public static async Task LoadAsync()
        {
            // Quit if the client has been shut down
            if (EveMonClient.Closed)
            {
                return;
            }

            // This is the time optimal loading order
            // (min order to follow :
            // skills before anything else,
            // properties before items,
            // items before blueprints, reprocessing and certificates,
            // certs before masteries)

            EveMonClient.Trace("Datafiles.Load - begin", printMethod: false);

            // Must always run first
            // It will have finished loading until static skills finish
            Task properties = TaskHelper.RunIOBoundTaskAsync(() => StaticProperties.Load());

            // Must always run before items
            Task skills = TaskHelper.RunIOBoundTaskAsync(() => StaticSkills.Load());

            await Task.WhenAll(skills, properties);

            // Must always run synchronously as blueprints, reprocessing and certificates depend on it
            await TaskHelper.RunIOBoundTaskAsync(() => StaticItems.Load());

            // Must always run synchronously as masteries depend on it
            await TaskHelper.RunIOBoundTaskAsync(() => StaticCertificates.Load());

            // Must always run synchronously as ID to name depends on it
            await TaskHelper.RunIOBoundTaskAsync(() => StaticGeography.Load());

            // Non critical loadings as all dependencies have been loaded
            Task blueprints   = TaskHelper.RunIOBoundTaskAsync(() => StaticBlueprints.Load());
            Task reprocessing = TaskHelper.RunIOBoundTaskAsync(() => StaticReprocessing.Load());
            await TaskHelper.RunIOBoundTaskAsync(() => StaticMasteries.Load());

            EveMonClient.Trace("Datafiles.Load - done", printMethod: false);
        }
Пример #7
0
        /// <summary>
        /// Handles the Opening event of the contextMenuStrip control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.ComponentModel.CancelEventArgs" /> instance containing the event data.</param>
        private void contextMenuStrip_Opening(object sender, CancelEventArgs e)
        {
            e.Cancel = m_selectedItem == null;

            if (e.Cancel || m_selectedItem == null)
            {
                return;
            }

            Ship      ship      = m_selectedItem as Ship;
            Blueprint blueprint = StaticBlueprints.GetBlueprintByID(m_selectedItem.ID);
            Skill     skill     = m_killLog.Character.Skills[m_selectedItem.ID];

            if (skill == Skill.UnknownSkill)
            {
                skill = null;
            }

            string text = ship != null ? "Ship" : blueprint != null ? "Blueprint" : skill != null ? "Skill" : "Item";

            showInBrowserMenuItem.Text = $"Show In {text} Browser...";
        }
Пример #8
0
        /// <summary>
        /// Initializes paths, static objects, check and load datafiles, etc.
        /// </summary>
        /// <remarks>May be called more than once without causing redundant operations to occur.</remarks>
        public static void Initialize()
        {
            lock (s_initializationLock)
            {
                if (s_initialized)
                {
                    return;
                }

                s_initialized = true;

                Trace("EveClient.Initialize() - begin");

                // Members instantiations
                HttpWebService      = new HttpWebService();
                APIProviders        = new GlobalAPIProviderCollection();
                MonitoredCharacters = new GlobalMonitoredCharacterCollection();
                CharacterIdentities = new GlobalCharacterIdentityCollection();
                Notifications       = new GlobalNotificationCollection();
                Characters          = new GlobalCharacterCollection();
                Datafiles           = new GlobalDatafileCollection();
                Accounts            = new GlobalAccountCollection();
                EVEServer           = new EveServer();

                // Load static datas (min order to follow : skills before anything else, items before certs)
                Trace("Load Datafiles - begin");
                StaticProperties.Load();
                StaticSkills.Load();
                StaticItems.Load();
                StaticCertificates.Load();
                StaticBlueprints.Load();
                Trace("Load Datafiles - done");

                // Network monitoring (connection availability changes)
                NetworkMonitor.Initialize();

                Trace("EveClient.Initialize() - done");
            }
        }
Пример #9
0
 /// <summary>
 /// Constructor from the API.
 /// </summary>
 /// <param name="src"></param>
 internal IndustryJob(SerializableJobListItem src)
 {
     m_state               = GetState(src);
     m_jobID               = src.JobID;
     m_installedItemID     = src.InstalledItemTypeID;
     m_installedItem       = StaticBlueprints.GetBlueprintByID(src.InstalledItemTypeID);
     m_outputItemID        = src.OutputTypeID;
     m_outputItem          = GetOutputItem(src.OutputTypeID);
     m_runs                = src.Runs;
     m_activity            = (BlueprintActivity)Enum.ToObject(typeof(BlueprintActivity), src.ActivityID);
     m_blueprintType       = (BlueprintType)Enum.ToObject(typeof(BlueprintType), src.InstalledItemCopy);
     m_installation        = GetInstallation(src.OutputLocationID);
     m_solarSystem         = StaticGeography.GetSystem(src.SolarSystemID);
     m_installedTime       = src.InstallTime;
     m_installedItemME     = src.InstalledItemMaterialLevel;
     m_installedItemPE     = src.InstalledItemProductivityLevel;
     m_beginProductionTime = src.BeginProductionTime;
     m_endProductionTime   = src.EndProductionTime;
     m_pauseProductionTime = src.PauseProductionTime;
     m_lastStateChange     = DateTime.UtcNow;
     m_issuedFor           = src.IssuedFor;
     m_activeJobState      = GetActiveJobState();
 }
Пример #10
0
 /// <summary>
 /// Constructor from an object deserialized from the settings file.
 /// </summary>
 /// <param name="src"></param>
 internal IndustryJob(SerializableJob src)
 {
     m_ignored             = src.Ignored;
     m_jobID               = src.JobID;
     m_state               = src.State;
     m_installedItemID     = src.InstalledItemID;
     m_installedItem       = StaticBlueprints.GetBlueprintByID(src.InstalledItemID);
     m_outputItemID        = src.OutputItemID;
     m_outputItem          = GetOutputItem(src.OutputItemID);
     m_runs                = src.Runs;
     m_activity            = src.Activity;
     m_blueprintType       = src.BlueprintType;
     m_installation        = src.ItemLocation;
     m_solarSystem         = StaticGeography.GetSystem(src.SolarSystemID);
     m_installedTime       = src.InstalledTime;
     m_installedItemME     = src.InstalledItemME;
     m_installedItemPE     = src.InstalledItemPE;
     m_beginProductionTime = src.BeginProductionTime;
     m_endProductionTime   = src.EndProductionTime;
     m_pauseProductionTime = src.PauseProductionTime;
     m_lastStateChange     = src.LastStateChange;
     m_issuedFor           = src.IssuedFor;
     m_activeJobState      = GetActiveJobState();
 }
Пример #11
0
 /// <summary>
 /// Gets the type of the blueprint.
 /// </summary>
 /// <param name="rawQuantity">The raw quantity.</param>
 /// <returns></returns>
 private string GetTypeOfBlueprint(int rawQuantity)
 => Item != null && StaticBlueprints.GetBlueprintByID(Item.ID) != null &&
 !Item.MarketGroup.BelongsIn(DBConstants.AncientRelicsMarketGroupID)
         ? rawQuantity == -2 ? BlueprintType.Copy.ToString() : BlueprintType.Original.ToString()
         : String.Empty;
Пример #12
0
 /// <summary>
 /// Gets the type of the blueprint.
 /// </summary>
 /// <param name="isBPC">Whether ESI reported it as a BPC.</param>
 /// <returns></returns>
 private string GetTypeOfBlueprint(bool isBPC) => (Item != null &&
                                                   StaticBlueprints.GetBlueprintByID(Item.ID) != null && !Item.MarketGroup.BelongsIn(
                                                       DBConstants.AncientRelicsMarketGroupID)) ? (isBPC ?
                                                                                                   BlueprintType.Copy.ToString() : BlueprintType.Original.ToString()) : string.Empty;