Пример #1
0
        private async void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                if (!SteamAPI.Init())
                {
                    if (SteamAPI.IsSteamRunning())
                    {
                        steamLBL.ForeColor = Color.DarkBlue;
                        steamLBL.Text      = "Steam Running..";
                        steamSTATUS.Image  = HDDowngradeTool.Properties.Resources.dotred;
                    }
                    else
                    {
                        steamLBL.ForeColor = Color.Gold;
                        await Task.Delay(200);

                        steamLBL.Text = "Steam OFF";
                        await Task.Delay(100);

                        steamLBL.ForeColor = Color.Maroon;
                        steamSTATUS.Image  = HDDowngradeTool.Properties.Resources.dotred;
                    }

                    //SteamUtils.GetAppID();
                }
                else
                {
                    steamLBL.ForeColor     = Color.ForestGreen;
                    steamLBL.Text          = "Steam ON";
                    steamSTATUS.Image      = HDDowngradeTool.Properties.Resources.dotgreen;
                    cbPATCH.Enabled        = true;
                    kryptonButton1.Enabled = true;
                    await Task.Delay(200);

                    bool IsDE = SteamApps.BIsAppInstalled(new AppId_t(221380));
                    if (!IsDE)
                    {
                        MessageBox.Show("Please Buy or Install Age of Empires II: Definitive Edition before you proceed!", "Game Missing");
                        cbPATCH.Enabled = false;
                        timer1.Stop();
                    }

                    var    versionInfo = FileVersionInfo.GetVersionInfo(SaveDirectoryPath() + @"\AoK HD.exe");
                    string version     = versionInfo.FileVersion;
                    //string[] sver = version.Split('.');
                    label1.Text = "Current Version: " + version;

                    timer1.Stop();
                }
            }
            catch (SystemException)
            {
                steamLBL.ForeColor = Color.Black;
                steamLBL.Text      = "Steam OFF";
                steamSTATUS.Image  = HDDowngradeTool.Properties.Resources.dotred;
            }
        }
Пример #2
0
        // TODO use a better AppID source, the AppInfo.vtf file only holds data the client has actually seen
        public List <SteamLaunchableApp> GetOwnedApps()
        {
            //UInt32[] appIDs = GetClientAppIds();
            List <SteamLaunchableApp> apps = new List <SteamLaunchableApp>();

            //SteamAppInfoDataFile dataFile = SteamAppInfoDataFile.Read(GetAppCacheAppInfoFile());
            SteamAppInfoDataFile dataFile = SteamAppInfoDataFile.GetSteamAppInfoDataFile();

            /*dataFile.chunks
             *  .Where(chunk => chunk.data != null && chunk.data.Properties != null && chunk.data.Properties.Count > 0)
             *  //.Select(chunk => ((BVStringToken)((BVPropertyCollection)((BVPropertyCollection)chunk.data?["appinfo"])?["common"])?["type"])?.Value?.ToLowerInvariant())
             *  .Select(chunk => ((BVStringToken)((BVPropertyCollection)((BVPropertyCollection)chunk.data?["appinfo"])?["common"])?["releasestate"])?.Value?.ToLowerInvariant())
             *  .Distinct()
             *  .OrderBy(dr => dr)
             *  .ToList()
             *  .ForEach(dr =>
             *  {
             *      Console.WriteLine(dr);
             *  });*/

            dataFile.chunks
            .ForEach(chunk =>
            {
                if (chunk.data != null &&
                    chunk.data.Properties != null &&
                    chunk.data.Properties.Count > 0)
                {
                    BVPropertyCollection appinfo  = ((BVPropertyCollection)chunk.data?["appinfo"]);
                    BVPropertyCollection common   = ((BVPropertyCollection)appinfo?["common"]);
                    BVPropertyCollection extended = ((BVPropertyCollection)appinfo?["extended"]);

                    string type = common?["type"]?.GetValue <string>()?.ToLowerInvariant();
                    //if (type == "demo" || type == "game")
                    if (!string.IsNullOrWhiteSpace(type) && type != "config")
                    {
                        bool isInstalled  = SteamApps.BIsAppInstalled(chunk.AppID);
                        bool isSubscribed = SteamApps.BIsSubscribedApp(chunk.AppID);

                        string name       = common?["name"]?.GetValue <string>();
                        string clienticon = common?["clienticon"]?.GetValue <string>();

                        if (isSubscribed && !string.IsNullOrWhiteSpace(name) && !string.IsNullOrWhiteSpace(type))
                        {
                            apps.Add(new SteamLaunchableApp(chunk.AppID)
                            {
                                Name    = name?.TrimEnd(),
                                appIcon = string.IsNullOrWhiteSpace(clienticon) ? null : Path.Combine(SteamProcessInfo.SteamInstallPath, "steam", "games", clienticon + ".ico"),
                                appType = type,
                            });;
                        }
                    }
                }
            });

            return(apps);
        }
Пример #3
0
        public void BIsAppInstalledTest()
        {
            if (Attribute.IsDefined(_SteamAppsVersion.GetMethod("BIsAppInstalled"), typeof(ObsoleteAttribute)))
            {
                //Assert.Pass("Not Implemented");
                Assert.Ignore("Not Implemented in this Interface");
            }

            Assert.IsTrue(SteamApps.BIsAppInstalled(InstalledAppID));
            Assert.IsFalse(SteamApps.BIsAppInstalled(UninstalledAppID));
        }
Пример #4
0
        public bool IsInstalled(UInt64 GameID)
        {
            CGameID gameID = new CGameID(GameID);

            switch (gameID.AppType)
            {
            // Basic Steam App
            case CGameID.EGameID.k_EGameIDTypeApp:
                return(SteamApps.BIsAppInstalled(gameID.AppID));

            //return SteamApps.BIsAppInstalled(gameID.AppID().m_AppId);

            // Mod Steam App
            case CGameID.EGameID.k_EGameIDTypeGameMod:
                return(true);

                // If the base game isn't installed, just say no
                if (!SteamApps.BIsAppInstalled(gameID.AppID))
                {
                    return(false);
                }
                //if (!SteamApps.BIsAppInstalled(gameID.AppID().m_AppId)) return false;

                // Root app is GoldSrc
                //if (GoldSrcModHosts.Contains(gameID.AppID().m_AppId))
                if (gameID.AppID == 70)
                {
                    // Get a list of known GoldSrc Mods
                    List <SteamLaunchableModGoldSrc> mods = GetGoldSrcMods();

                    // return if any of these mods match our ID
                    return(mods.Any(dr => dr.GetShortcutID() == GameID));
                }

                // Root app is Source
                // TODO add check for source engine IDs here
                {
                    // Get a list of known GoldSrc Mods
                    List <SteamLaunchableModSource> mods = GetSourceMods();

                    // return if any of these mods match our ID
                    return(mods.Any(dr => dr.GetShortcutID() == GameID));
                }

                return(false);

            case CGameID.EGameID.k_EGameIDTypeShortcut:
                break;
            }

            return(false);
        }
Пример #5
0
        public static string GetGameDirectory(AppId_t appID)
        {
            if (!SteamApps.BIsAppInstalled(appID))
            {
                return("");
            }

            string path = "";

            SteamApps.GetAppInstallDir(appID, out path, 256);

            return(path);
        }
    public void RenderOnGUI()
    {
        GUILayout.Label("SteamApps.BIsSubscribed() : " + SteamApps.BIsSubscribed());
        GUILayout.Label("SteamApps.BIsLowViolence() : " + SteamApps.BIsLowViolence());
        GUILayout.Label("SteamApps.BIsCybercafe() : " + SteamApps.BIsCybercafe());
        GUILayout.Label("SteamApps.BIsVACBanned() : " + SteamApps.BIsVACBanned());
        GUILayout.Label("SteamApps.GetCurrentGameLanguage() : " + SteamApps.GetCurrentGameLanguage());
        GUILayout.Label("SteamApps.GetAvailableGameLanguages() : " + SteamApps.GetAvailableGameLanguages());
        GUILayout.Label("SteamApps.BIsSubscribedApp(SteamUtils.GetAppID()) : " + SteamApps.BIsSubscribedApp(SteamUtils.GetAppID()));
        GUILayout.Label("SteamApps.BIsDlcInstalled(110902) : " + SteamApps.BIsDlcInstalled((AppId_t)110902));         // pieterw test DLC
        GUILayout.Label("SteamApps.GetEarliestPurchaseUnixTime(SteamUtils.GetAppID()) : " + SteamApps.GetEarliestPurchaseUnixTime(SteamUtils.GetAppID()));
        GUILayout.Label("SteamApps.BIsSubscribedFromFreeWeekend() : " + SteamApps.BIsSubscribedFromFreeWeekend());
        GUILayout.Label("SteamApps.GetDLCCount() : " + SteamApps.GetDLCCount());

        for (int iDLC = 0; iDLC < SteamApps.GetDLCCount(); ++iDLC)
        {
            AppId_t AppID;
            bool    Available;
            string  Name;
            bool    ret = SteamApps.BGetDLCDataByIndex(iDLC, out AppID, out Available, out Name, 128);
            GUILayout.Label("SteamApps.BGetDLCDataByIndex(" + iDLC + ", out AppID, out Available, out Name, 128) : " + ret + " -- " + AppID + " -- " + Available + " -- " + Name);
        }

        if (GUILayout.Button("SteamApps.InstallDLC(110902)"))
        {
            SteamApps.InstallDLC((AppId_t)110902);             // pieterw test DLC
        }

        if (GUILayout.Button("SteamApps.UninstallDLC(110902)"))
        {
            SteamApps.UninstallDLC((AppId_t)110902);             // pieterw test DLC
        }

        if (GUILayout.Button("SteamApps.RequestAppProofOfPurchaseKey(SteamUtils.GetAppID())"))
        {
            SteamApps.RequestAppProofOfPurchaseKey(SteamUtils.GetAppID());
        }

        {
            string Name;
            bool   ret = SteamApps.GetCurrentBetaName(out Name, 128);
            if (Name == null)
            {
                Name = "";
            }
            GUILayout.Label("SteamApps.GetCurrentBetaName(out Name, 128) : " + ret + " -- " + Name);
        }

        if (GUILayout.Button("SteamApps.MarkContentCorrupt(true)"))
        {
            print("SteamApps.MarkContentCorrupt(true) : " + SteamApps.MarkContentCorrupt(true));
        }

        if (GUILayout.Button("SteamApps.GetInstalledDepots(SteamUtils.GetAppID(), Depots, 32)"))
        {
            DepotId_t[] Depots = new DepotId_t[32];
            uint        ret    = SteamApps.GetInstalledDepots(SteamUtils.GetAppID(), Depots, 32);
            for (int i = 0; i < ret; ++i)
            {
                print("SteamApps.GetInstalledDepots(SteamUtils.GetAppID(), Depots, 32) : " + ret + " -- #" + i + " -- " + Depots[i]);
            }
        }

        {
            string Folder;
            uint   ret = SteamApps.GetAppInstallDir(SteamUtils.GetAppID(), out Folder, 260);
            if (Folder == null)
            {
                Folder = "";
            }

            GUILayout.Label("SteamApps.GetAppInstallDir(480, out Folder, 260) : " + ret + " -- " + Folder);
        }

        GUILayout.Label("SteamApps.BIsAppInstalled(480) : " + SteamApps.BIsAppInstalled(SteamUtils.GetAppID()));
        GUILayout.Label("SteamApps.GetAppOwner() : " + SteamApps.GetAppOwner());

        // Run the test and then use steam://run/480//?test=testing;param2=value2; in your browser to try this out
        GUILayout.Label("SteamApps.GetLaunchQueryParam(\"test\") : " + SteamApps.GetLaunchQueryParam("test"));

        {
            ulong BytesDownloaded;
            ulong BytesTotal;
            bool  ret = SteamApps.GetDlcDownloadProgress((AppId_t)110902, out BytesDownloaded, out BytesTotal);
            GUILayout.Label("SteamApps.GetDlcDownloadProgress((AppId_t)110902, out BytesDownloaded, out BytesTotal): " + ret + " -- " + BytesDownloaded + " -- " + BytesTotal);
        }

        GUILayout.Label("SteamApps.GetAppBuildId(): " + SteamApps.GetAppBuildId());
#if _PS3
        if (GUILayout.Button("SteamApps.RegisterActivationCode(\"???\")"))
        {
            SteamAPICall_t handle = SteamApps.RegisterActivationCode("???");
            new CallResult <RegisterActivationCodeResponse_t>(OnRegisterActivationCodeResponse, handle);
            new CallResult <AppProofOfPurchaseKeyResponse_t>(OnAppProofOfPurchaseKeyResponse, handle);
        }
#endif
    }
Пример #7
0
    public void RenderOnGUI()
    {
        GUILayout.BeginVertical("box");
        m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33));

        GUILayout.Label("BIsSubscribed() : " + SteamApps.BIsSubscribed());

        GUILayout.Label("BIsLowViolence() : " + SteamApps.BIsLowViolence());

        GUILayout.Label("BIsCybercafe() : " + SteamApps.BIsCybercafe());

        GUILayout.Label("BIsVACBanned() : " + SteamApps.BIsVACBanned());

        GUILayout.Label("GetCurrentGameLanguage() : " + SteamApps.GetCurrentGameLanguage());

        GUILayout.Label("GetAvailableGameLanguages() : " + SteamApps.GetAvailableGameLanguages());

        GUILayout.Label("BIsSubscribedApp(SteamUtils.GetAppID()) : " + SteamApps.BIsSubscribedApp(SteamUtils.GetAppID()));

        GUILayout.Label("BIsDlcInstalled(TestConstants.Instance.k_AppId_PieterwTestDLC) : " + SteamApps.BIsDlcInstalled(TestConstants.Instance.k_AppId_PieterwTestDLC));

        GUILayout.Label("GetEarliestPurchaseUnixTime(SteamUtils.GetAppID()) : " + SteamApps.GetEarliestPurchaseUnixTime(SteamUtils.GetAppID()));

        GUILayout.Label("BIsSubscribedFromFreeWeekend() : " + SteamApps.BIsSubscribedFromFreeWeekend());

        GUILayout.Label("GetDLCCount() : " + SteamApps.GetDLCCount());

        for (int iDLC = 0; iDLC < SteamApps.GetDLCCount(); ++iDLC)
        {
            AppId_t AppID;
            bool    Available;
            string  Name;
            bool    ret = SteamApps.BGetDLCDataByIndex(iDLC, out AppID, out Available, out Name, 128);
            GUILayout.Label("BGetDLCDataByIndex(" + iDLC + ", out AppID, out Available, out Name, 128) : " + ret + " -- " + AppID + " -- " + Available + " -- " + Name);
        }

        if (GUILayout.Button("InstallDLC(TestConstants.Instance.k_AppId_PieterwTestDLC)"))
        {
            SteamApps.InstallDLC(TestConstants.Instance.k_AppId_PieterwTestDLC);
            print("SteamApps.InstallDLC(" + TestConstants.Instance.k_AppId_PieterwTestDLC + ")");
        }

        if (GUILayout.Button("UninstallDLC(TestConstants.Instance.k_AppId_PieterwTestDLC)"))
        {
            SteamApps.UninstallDLC(TestConstants.Instance.k_AppId_PieterwTestDLC);
            print("SteamApps.UninstallDLC(" + TestConstants.Instance.k_AppId_PieterwTestDLC + ")");
        }

        if (GUILayout.Button("RequestAppProofOfPurchaseKey(SteamUtils.GetAppID())"))
        {
            SteamApps.RequestAppProofOfPurchaseKey(SteamUtils.GetAppID());
            print("SteamApps.RequestAppProofOfPurchaseKey(" + SteamUtils.GetAppID() + ")");
        }

        {
            string Name;
            bool   ret = SteamApps.GetCurrentBetaName(out Name, 128);
            if (Name == null)
            {
                Name = "";
            }
            GUILayout.Label("GetCurrentBetaName(out Name, 128) : " + ret + " -- " + Name);
        }

        if (GUILayout.Button("MarkContentCorrupt(true)"))
        {
            bool ret = SteamApps.MarkContentCorrupt(true);
            print("SteamApps.MarkContentCorrupt(" + true + ") : " + ret);
        }

        if (GUILayout.Button("SteamApps.GetInstalledDepots(SteamUtils.GetAppID(), Depots, 32)"))
        {
            DepotId_t[] Depots = new DepotId_t[32];
            uint        ret    = SteamApps.GetInstalledDepots(SteamUtils.GetAppID(), Depots, 32);
            for (int i = 0; i < ret; ++i)
            {
                print("SteamApps.GetInstalledDepots(SteamUtils.GetAppID(), Depots, 32) : " + ret + " -- #" + i + " -- " + Depots[i]);
            }
        }

        {
            string Folder;
            uint   ret = SteamApps.GetAppInstallDir(SteamUtils.GetAppID(), out Folder, 260);
            if (Folder == null)
            {
                Folder = "";
            }
            GUILayout.Label("GetAppInstallDir(SteamUtils.GetAppID(), out Folder, 260) : " + ret + " -- " + Folder);
        }

        GUILayout.Label("BIsAppInstalled(SteamUtils.GetAppID()) : " + SteamApps.BIsAppInstalled(SteamUtils.GetAppID()));

        GUILayout.Label("GetAppOwner() : " + SteamApps.GetAppOwner());

        {
            // Run the test and then use steam://run/480//?test=testing;param2=value2; in your browser to try this out
            string ret = SteamApps.GetLaunchQueryParam("test");
            GUILayout.Label("GetLaunchQueryParam(\"test\") : " + ret);
        }

        {
            ulong BytesDownloaded;
            ulong BytesTotal;
            bool  ret = SteamApps.GetDlcDownloadProgress(TestConstants.Instance.k_AppId_PieterwTestDLC, out BytesDownloaded, out BytesTotal);
            GUILayout.Label("GetDlcDownloadProgress(TestConstants.Instance.k_AppId_PieterwTestDLC, out BytesDownloaded, out BytesTotal) : " + ret + " -- " + BytesDownloaded + " -- " + BytesTotal);
        }

        GUILayout.Label("GetAppBuildId() : " + SteamApps.GetAppBuildId());

        if (GUILayout.Button("RequestAllProofOfPurchaseKeys()"))
        {
            SteamApps.RequestAllProofOfPurchaseKeys();
            print("SteamApps.RequestAllProofOfPurchaseKeys()");
        }

        if (GUILayout.Button("GetFileDetails(\"steam_api.dll\")"))
        {
            SteamAPICall_t handle = SteamApps.GetFileDetails("steam_api.dll");
            OnFileDetailsResultCallResult.Set(handle);
            print("SteamApps.GetFileDetails(" + "\"steam_api.dll\"" + ") : " + handle);
        }

        {
            string CommandLine;
            int    ret = SteamApps.GetLaunchCommandLine(out CommandLine, 260);
            if (CommandLine == null)
            {
                CommandLine = "";
            }
            GUILayout.Label("GetLaunchCommandLine(out CommandLine, 260) : " + ret + " -- " + CommandLine);
        }

        GUILayout.Label("BIsSubscribedFromFamilySharing() : " + SteamApps.BIsSubscribedFromFamilySharing());

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }
Пример #8
0
        public List <SteamLaunchableApp> GetAppsWithMetadata(UInt64[] AppIDs = null)
        {
            //UInt32[] appIDs = GetClientAppIds();
            List <SteamLaunchableApp> apps = new List <SteamLaunchableApp>();

            //SteamAppInfoDataFile dataFile = SteamAppInfoDataFile.Read(GetAppCacheAppInfoFile());
            SteamAppInfoDataFile dataFile = SteamAppInfoDataFile.GetSteamAppInfoDataFile();

            /*dataFile.chunks
             *  .Where(chunk => chunk.data != null && chunk.data.Properties != null && chunk.data.Properties.Count > 0)
             *  //.Select(chunk => ((BVStringToken)((BVPropertyCollection)((BVPropertyCollection)chunk.data?["appinfo"])?["common"])?["type"])?.Value?.ToLowerInvariant())
             *  .Select(chunk => ((BVStringToken)((BVPropertyCollection)((BVPropertyCollection)chunk.data?["appinfo"])?["common"])?["releasestate"])?.Value?.ToLowerInvariant())
             *  .Distinct()
             *  .OrderBy(dr => dr)
             *  .ToList()
             *  .ForEach(dr =>
             *  {
             *      Console.WriteLine(dr);
             *  });*/

            dataFile.chunks
            .ForEach(chunk =>
            {
                if (chunk.data != null &&
                    chunk.data.Properties != null &&
                    chunk.data.Properties.Count > 0 &&
                    ((AppIDs?.Length ?? 0) == 0 || AppIDs.Contains(chunk.AppID)))
                {
                    BVPropertyCollection appinfo  = ((BVPropertyCollection)chunk.data?["appinfo"]);
                    BVPropertyCollection common   = ((BVPropertyCollection)appinfo?["common"]);
                    BVPropertyCollection extended = ((BVPropertyCollection)appinfo?["extended"]);

                    string type = common?["type"]?.GetValue <string>()?.ToLowerInvariant();
                    //if (type == "demo" || type == "game")
                    if (!string.IsNullOrWhiteSpace(type) && type != "config")
                    {
                        bool isInstalled  = SteamApps.BIsAppInstalled(chunk.AppID);
                        bool isSubscribed = SteamApps.BIsSubscribedApp(chunk.AppID);

                        string name = common?["name"]?.GetValue <string>();
                        //string oslist = common?["oslist"]?.GetValue<string>();
                        //string icon = common?["icon"]?.GetValue<string>();
                        //string clienttga = common?["clienttga"]?.GetValue<string>();
                        string clienticon = common?["clienticon"]?.GetValue <string>();
                        //string logo = common?["logo"]?.GetValue<string>();
                        //string logo_small = common?["logo_small"]?.GetValue<string>();
                        //string releasestate = common?["releasestate"]?.GetValue<string>();
                        //string linuxclienticon = common?["linuxclienticon"]?.GetValue<string>();
                        //string controller_support = common?["controller_support"]?.GetValue<string>();
                        //string clienticns = common?["clienticns"]?.GetValue<string>();
                        //int metacritic_score = ((BVInt32Token)common?["metacritic_score"])?.Value ?? -1;
                        //string metacritic_name = common?["metacritic_name"]?.GetValue<string>();
                        //BVPropertyCollection small_capsule = ((BVPropertyCollection)common?["small_capsule"]);
                        //BVPropertyCollection header_image = ((BVPropertyCollection)common?["header_image"]);
                        //BVPropertyCollection languages = ((BVPropertyCollection)common?["languages"]);
                        //bool community_visible_stats = common?["community_visible_stats"]?.GetValue<string>() == "1";
                        //bool community_hub_visible = common?["community_hub_visible"]?.GetValue<string>() == "1";
                        //bool workshop_visible = common?["workshop_visible"]?.GetValue<string>() == "1";
                        //bool exfgls = common?["exfgls"]?.GetValue<string>() == "1";
                        //string gamedir = extended?["gamedir"]?.GetValue<string>();
                        List <string> developer = new List <string>();
                        List <string> publisher = new List <string>();
                        //string homepage = extended?["homepage"]?.GetValue<string>();
                        //string gamemanualurl = extended?["gamemanualurl"]?.GetValue<string>();
                        //bool showcdkeyonlaunch = extended?["showcdkeyonlaunch"]?.GetValue<string>() == "1";
                        //bool dlcavailableonstore = extended?["dlcavailableonstore"]?.GetValue<string>() == "1";

                        {
                            List <BVProperty> props = (common?["associations"] as BVPropertyCollection)?.Properties;
                            if (props != null)
                            {
                                foreach (BVProperty element in props)
                                {
                                    string elemType = (element.Value as BVPropertyCollection)?["type"].GetValue <string>();
                                    string elemVal  = (element.Value as BVPropertyCollection)?["name"].GetValue <string>();
                                    if (string.IsNullOrWhiteSpace(elemVal))
                                    {
                                        continue;
                                    }
                                    if (elemType == "developer")    // && string.IsNullOrWhiteSpace(developer))
                                    {
                                        developer.Add(elemVal);
                                    }
                                    if (elemType == "publisher")    // && string.IsNullOrWhiteSpace(publisher))
                                    {
                                        publisher.Add(elemVal);
                                    }
                                }
                            }
                            string extended_dev = extended?["developer"]?.GetValue <string>();
                            if (developer.Count == 0 && !string.IsNullOrWhiteSpace(extended_dev))
                            {
                                developer.Add(extended_dev);
                            }
                            string extended_pub = extended?["publisher"]?.GetValue <string>();
                            if (publisher.Count == 0 && !string.IsNullOrWhiteSpace(extended_pub))
                            {
                                publisher.Add(extended_pub);
                            }
                        }

                        long?_original_release_date    = common?["original_release_date"]?.GetValue <long>();
                        long?_steam_release_date       = common?["steam_release_date"]?.GetValue <long>();
                        DateTime?original_release_date = _original_release_date.HasValue ? DateTimeOffset.FromUnixTimeSeconds(_original_release_date.Value).UtcDateTime : (DateTime?)null;
                        DateTime?steam_release_date    = _steam_release_date.HasValue ? DateTimeOffset.FromUnixTimeSeconds(_steam_release_date.Value).UtcDateTime : (DateTime?)null;

                        BVPropertyCollection library_assets = ((BVPropertyCollection)common?["library_assets"]);
                        bool has_library_capsule            = !string.IsNullOrWhiteSpace(library_assets?["library_capsule"]?.GetValue <string>());
                        bool has_library_hero = !string.IsNullOrWhiteSpace(library_assets?["library_hero"]?.GetValue <string>());
                        bool has_library_logo = !string.IsNullOrWhiteSpace(library_assets?["library_logo"]?.GetValue <string>());

                        //Console.WriteLine($"{chunk.AppID}\t{(type ?? string.Empty).PadRight(4)} {(isInstalled ? 1 : 0)} {(isSubscribed ? 1 : 0)} {(releasestate ?? string.Empty).PadRight(11)} {(name ?? string.Empty).PadRight(90)} {(developer ?? string.Empty).PadRight(40)} {(publisher ?? string.Empty)}");
                        //File.AppendAllText("SteamDump.txt",$"{chunk.appID}\t{(type ?? string.Empty).PadRight(4)} {(isInstalled ? 1 : 0)} {(isSubscribed ? 1 : 0)} {(releasestate ?? string.Empty).PadRight(11)} {(name ?? string.Empty).PadRight(90)} {(developer ?? string.Empty).PadRight(40)} {(publisher ?? string.Empty).PadRight(40)}\r\n");

                        if (isSubscribed && !string.IsNullOrWhiteSpace(name) && !string.IsNullOrWhiteSpace(type))
                        {
                            apps.Add(new SteamLaunchableApp(chunk.AppID)
                            {
                                Name    = name?.TrimEnd(),
                                appIcon = string.IsNullOrWhiteSpace(clienticon) ? null : Path.Combine(SteamProcessInfo.SteamInstallPath, "steam", "games", clienticon + ".ico"),
                                appType = type,

                                extra_developer           = developer.ToArray(),
                                extra_publisher           = publisher.ToArray(),
                                extra_has_library_capsule = has_library_capsule,
                                extra_has_library_hero    = has_library_hero,
                                extra_has_library_logo    = has_library_logo,

                                extra_original_release_date = original_release_date,
                                extra_steam_release_date    = steam_release_date,
                            });;
                        }
                    }
                }
            });

            return(apps);
        }
Пример #9
0
 public override void OnEnter()
 {
     result.Value = SteamApps.BIsAppInstalled((AppId_t)Convert.ToUInt32(appID.Value));
     Finish();
 }