Compare commits

...

47 Commits

Author SHA1 Message Date
486af8060a
Bump Newtonsoft.Json from 13.0.1 to 13.0.3 2024-03-10 17:29:47 +03:00
e799658120
Update README.md 2022-07-03 00:39:31 +03:00
ce83bcfa1d
Merge branch 'develop' 2022-04-16 00:43:21 +03:00
37a51015eb
engine update 2022-04-16 00:43:14 +03:00
f6a59a6ace
Merge branch 'develop' 2022-04-15 21:20:35 +03:00
160bd8b9b6
1.0.0.4 2022-04-15 21:20:25 +03:00
2a5d07df9b
1.0.0.4
1.0.0.4
2022-04-15 21:18:05 +03:00
629f305769
1.0.0.4 Readme 2022-04-15 21:17:46 +03:00
61fbca4a5e
1.0.0.4 2022-04-15 21:14:35 +03:00
43e558eaac
fixed Run Project 2022-04-15 21:11:02 +03:00
70d8205e2b
1.0.0.4
steam api init fix
2022-04-15 21:03:43 +03:00
036c427743
Merge pull request #27 from EpicMorg/develop
new engines
2022-04-15 14:49:47 +03:00
4cde1acd9a
readme 2022-04-15 14:45:46 +03:00
7c2916acb6
new engines 2022-04-15 14:37:06 +03:00
b1d7779802
json updates 2022-04-15 12:16:31 +03:00
78628ec5eb
Merge branch 'develop' 2022-04-13 22:30:35 +03:00
233b75c3c0
dependabot 2022-04-13 22:30:22 +03:00
11075c1d03
Merge pull request #23 from EpicMorg/develop
gh develop
2022-04-13 22:07:00 +03:00
50a3ce3cfb
gha 2022-04-13 22:02:37 +03:00
68677f4766
gha 2022-04-13 21:55:28 +03:00
7ac39e94af
gha 2022-04-13 21:52:24 +03:00
b1748ba28e
gh 2022-04-13 21:48:53 +03:00
7bc40fc22d
gh develop 2022-04-13 21:42:41 +03:00
363ecc752e
1.0.0.3 fixes
1.0.0.3 fixes
2022-04-13 18:53:46 +03:00
15d1a1963e
1.0.0.3 fixes 2022-04-13 18:52:51 +03:00
bb2b5442a6
1.0.0.3
1.0.0.3
2022-04-13 18:40:50 +03:00
c2bdfd211e
folderpath fix 2022-04-13 17:56:15 +03:00
416a6fa3c4 1.0.0.3
Pre-release
2022-04-13 17:42:52 +03:00
9f02064ee2 deprecate old lib, added new engines 2022-04-13 15:13:03 +03:00
e97c63c077
test 2022-04-13 14:46:30 +03:00
bc48aecee1
asd 2022-04-13 14:46:25 +03:00
Alex Z
5396b80b57 replace steampathslib to facepunch.steamworks 2021-05-07 19:44:13 +03:00
93b7e2789a prepearing to 1.0.0.3 2021-05-06 01:09:02 +03:00
28d2ed46da squirrel installer initial support 2021-05-05 21:05:04 +03:00
94099aaa93 hammer++ initial support 2021-05-05 21:04:51 +03:00
624381699b steam_api.dll form facepunch
* Steamworks SDK 1.51
2021-05-05 20:51:55 +03:00
324468393d integrated steamworksNET sdk from facepunch 2021-05-05 20:51:28 +03:00
7213d32c2b update 2021-05-05 20:43:50 +03:00
e2987f6f4b
Merge pull request #16 from EpicMorg/dependabot/nuget/Newtonsoft.Json-13.0.1
Bump Newtonsoft.Json from 12.0.3 to 13.0.1
2021-04-17 22:10:50 +03:00
dependabot[bot]
0d6a1c8c32
Bump Newtonsoft.Json from 12.0.3 to 13.0.1
Bumps [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) from 12.0.3 to 13.0.1.
- [Release notes](https://github.com/JamesNK/Newtonsoft.Json/releases)
- [Commits](https://github.com/JamesNK/Newtonsoft.Json/compare/12.0.3...13.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-23 02:02:46 +00:00
7e0fd30f64
Merge pull request #15 from EpicMorg/dependabot/add-v2-config-file
Create Dependabot config file
2020-09-18 19:58:20 +03:00
dependabot-preview[bot]
eaa5f1afab
Create Dependabot config file 2020-09-18 16:54:16 +00:00
14fc054240 Merge branch 'develop' 2020-06-11 19:35:41 +03:00
Alex Z
4cc7c47560 - fix ui
- fix logic with list available engine
2020-06-11 19:25:11 +03:00
ddb98146d9 iconpack 2020-03-22 13:01:15 +03:00
227b33abf4
Merge pull request #14 from EpicMorg/master
hotifx 1.0.0.1
2020-03-19 18:45:11 +03:00
1e35537b24 lang hotfix 2020-03-19 18:41:30 +03:00
122 changed files with 24010 additions and 11798 deletions

9
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: nuget
directory: "/"
schedule:
interval: daily
time: "02:00"
open-pull-requests-limit: 10
target-branch: "develop"

4
.github/icons/README.md vendored Normal file
View File

@ -0,0 +1,4 @@
## Attribution is required.
* "[Flags Icon Pack](https://www.flaticon.com/packs/flags-2)" by [RoundIcons](https://www.flaticon.com/authors/roundicons).

BIN
.github/icons/ru_lang_24.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 B

BIN
.github/icons/ua_lang_24.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

BIN
.github/icons/us_lang_24.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

40
.github/workflows/develop.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: Universal Valve Toolbox - develop
on:
push:
branches: [ develop ]
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
jobs:
build:
runs-on: windows-latest
steps:
- name: Set the value
run: echo "ACTIONS_ALLOW_UNSECURE_COMMANDS=true" >> $GITHUB_ENV
- name: Checkout Code
uses: actions/checkout@master
with:
clean: true
fetch-depth: 0
lfs: true
submodules: true
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
with:
vs-prerelease: true
msbuild-architecture: x86
- name: Setup NuGet
uses: NuGet/setup-nuget@v1
- name: Restore NuGet Packages
run: nuget restore src/UniversalValveToolbox.sln
- name: Build Debug
run: msbuild src/UniversalValveToolbox.sln /p:Configuration=Debug

40
.github/workflows/master.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: Universal Valve Toolbox - master
on:
push:
branches: [ master ]
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
jobs:
build:
runs-on: windows-latest
steps:
- name: Set the value
run: echo "ACTIONS_ALLOW_UNSECURE_COMMANDS=true" >> $GITHUB_ENV
- name: Checkout Code
uses: actions/checkout@master
with:
clean: true
fetch-depth: 0
lfs: true
submodules: true
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
with:
vs-prerelease: true
msbuild-architecture: x86
- name: Setup NuGet
uses: NuGet/setup-nuget@v1
- name: Restore NuGet Packages
run: nuget restore src/UniversalValveToolbox.sln
- name: Build Release
run: msbuild src/UniversalValveToolbox.sln /p:Configuration=Release

43
.github/workflows/pr.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Universal Valve Toolbox - pull request to master
on:
pull_request:
branches: [ master ]
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
jobs:
build:
runs-on: windows-latest
steps:
- name: Set the value
run: echo "ACTIONS_ALLOW_UNSECURE_COMMANDS=true" >> $GITHUB_ENV
- name: Checkout Code
uses: actions/checkout@master
with:
clean: true
fetch-depth: 0
lfs: true
submodules: true
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
with:
vs-prerelease: true
msbuild-architecture: x86
- name: Setup NuGet
uses: NuGet/setup-nuget@v1
- name: Restore NuGet Packages
run: nuget restore src/UniversalValveToolbox.sln
- name: Build Debug
run: msbuild src/UniversalValveToolbox.sln /p:Configuration=Debug
- name: Build Release
run: msbuild src/UniversalValveToolbox.sln /p:Configuration=Release

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "src/Facepunch.Steamworks"]
path = src/Facepunch.Steamworks
url = https://github.com/Facepunch/Facepunch.Steamworks.git

39
CHANGELOG.md Normal file
View File

@ -0,0 +1,39 @@
# Universal Valve Toolbox [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4)
# [![GitHub Build Status](https://img.shields.io/github/workflow/status/EpicMorg/UniversalValveToolbox/Universal%20Valve%20Toolbox%20-%20master?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/actions) [![Translation status](https://translate.epicm.org/widgets/universalvalvetoolbox/-/svg-badge.svg)](https://translate.epicm.org/engage/universalvalvetoolbox/?utm_source=widget) [![Size](https://img.shields.io/github/repo-size/EpicMorg/UniversalValveToolbox?label=size&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/releases) [![GitHub license](https://img.shields.io/github/license/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md) [![Activity](https://img.shields.io/github/commit-activity/w/EpicMorg/UniversalValveToolbox?&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/stargazers) [![GitHub uses](https://img.shields.io/sourcegraph/rrc/github.com/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/pulse) [![CodeScene Code Health](https://codescene.io/projects/6852/status-badges/code-health)](https://codescene.io/projects/6852) [![CodeScene System Mastery](https://codescene.io/projects/6852/status-badges/system-mastery)](https://codescene.io/projects/6852)
---------------------------
`Universal Valve Toolbox is not affiliated with Valve Corporation.`
---------------------------
# Changelog
## 1.0.0.4
#### Whats new
* Fixed `SteamInit` on program initialization and added tries to launch `Steam`
* Fixed `Run project` option
* Added [support for new engines](SUPPORTED.md)
* Added some default addons, but not linked with any engines
## 1.0.0.3
#### Whats new
* Migrated to @Facepunch [Steamworks](https://github.com/Facepunch/Facepunch.Steamworks)
* Added support for new engines
* Code cleanup
* Added new modes - `retail`, `bundeled`, `dev`
## 1.0.0.2
#### Whats new
* SteamPathLib version bump
* Fixed UI
* Fixed logic
## 1.0.0.1
#### Whats new
* lang hotfix
## 1.0.0.0
#### Whats new
* Release Candidate

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020 EpicMorg: Main
Copyright (c) 2023 EpicMorg: Main
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,7 +1,30 @@
# UniversalValveToolbox
# Universal Valve Toolbox [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4)
# [![AppVeyor](https://img.shields.io/appveyor/ci/stamepicmorg/universalvalvetoolbox?style=flat-square)](https://ci.appveyor.com/project/stamepicmorg/universalvalvetoolbox) [![Translation status](https://translate.epicm.org/widgets/universalvalvetoolbox/-/svg-badge.svg)](https://translate.epicm.org/engage/universalvalvetoolbox/?utm_source=widget) [![Size](https://img.shields.io/github/repo-size/EpicMorg/UniversalValveToolbox?label=size&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/releases) [![GitHub license](https://img.shields.io/github/license/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md) [![Activity](https://img.shields.io/github/commit-activity/w/EpicMorg/UniversalValveToolbox?&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/stargazers) [![GitHub uses](https://img.shields.io/sourcegraph/rrc/github.com/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/pulse) [![CodeScene Code Health](https://codescene.io/projects/6852/status-badges/code-health)](https://codescene.io/projects/6852) [![CodeScene System Mastery](https://codescene.io/projects/6852/status-badges/system-mastery)](https://codescene.io/projects/6852)
# [![GitHub Build Status](https://img.shields.io/github/workflow/status/EpicMorg/UniversalValveToolbox/Universal%20Valve%20Toolbox%20-%20master?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/actions) [![Translation status](https://translate.epicm.org/widgets/universalvalvetoolbox/-/svg-badge.svg)](https://translate.epicm.org/engage/universalvalvetoolbox/?utm_source=widget) [![Size](https://img.shields.io/github/repo-size/EpicMorg/UniversalValveToolbox?label=size&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/releases) [![GitHub license](https://img.shields.io/github/license/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md) [![Activity](https://img.shields.io/github/commit-activity/w/EpicMorg/UniversalValveToolbox?&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/stargazers) [![GitHub uses](https://img.shields.io/sourcegraph/rrc/github.com/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/pulse) [![CodeScene Code Health](https://codescene.io/projects/6852/status-badges/code-health)](https://codescene.io/projects/6852) [![CodeScene System Mastery](https://codescene.io/projects/6852/status-badges/system-mastery)](https://codescene.io/projects/6852)
---------------------------
`Universal Valve Toolbox is not affiliated with Valve Corporation.`
---------------------------
# Description
`Universal Valve Toolbox` is a toolbox for easy launching some officials Valve's SDK such as Source SDK 2013 SP or MP and other games. Full list of supported games can be found [here](SUPPORTED.md).
## Settings
[Read it here](SETTINGS.md)
## Changelog
[Read it here](CHANGELOG.md)
---------------------------
# Stargazers
[![Stargazers repo roster for @EpicMorg/UniversalValveToolbox](https://reporoster.com/stars/dark/EpicMorg/UniversalValveToolbox)](https://github.com/EpicMorg/UniversalValveToolbox/stargazers)
# Forkers
[![Forkers repo roster for @EpicMorg/UniversalValveToolboxr](https://reporoster.com/forks/dark/EpicMorg/UniversalValveToolbox)](https://github.com/EpicMorg/UniversalValveToolbox/network/members)
---------------------------
[![](https://codescene.io/projects/6852/status.svg)](https://codescene.io/projects/6852/jobs/latest-successful/results)
Toolbox for easy launching some officials Valve's SDK such as Source SDK 2013 SP or MP.

7
SECURITY.md Normal file
View File

@ -0,0 +1,7 @@
# Security Policy
## Reporting a Vulnerability
1. Open `Issues` tab [here](https://github.com/EpicMorg/UniversalValveToolbox/issues).
2. Select `CVE Report`.
3. Publish `CVE Report`.
4. Thank you :heart:

20
SETTINGS.md Normal file
View File

@ -0,0 +1,20 @@
# Universal Valve Toolbox [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4)
# [![GitHub Build Status](https://img.shields.io/github/workflow/status/EpicMorg/UniversalValveToolbox/Universal%20Valve%20Toolbox%20-%20master?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/actions) [![Translation status](https://translate.epicm.org/widgets/universalvalvetoolbox/-/svg-badge.svg)](https://translate.epicm.org/engage/universalvalvetoolbox/?utm_source=widget) [![Size](https://img.shields.io/github/repo-size/EpicMorg/UniversalValveToolbox?label=size&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/releases) [![GitHub license](https://img.shields.io/github/license/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md) [![Activity](https://img.shields.io/github/commit-activity/w/EpicMorg/UniversalValveToolbox?&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/stargazers) [![GitHub uses](https://img.shields.io/sourcegraph/rrc/github.com/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/pulse) [![CodeScene Code Health](https://codescene.io/projects/6852/status-badges/code-health)](https://codescene.io/projects/6852) [![CodeScene System Mastery](https://codescene.io/projects/6852/status-badges/system-mastery)](https://codescene.io/projects/6852)
---------------------------
`Universal Valve Toolbox is not affiliated with Valve Corporation.`
---------------------------
# Settings
Mod could be changed at `settings.json` with `ToolboxMod` section. Supported mods: `retail`, `bundle`, `dev`.
## Retail
This is default mode. Shows all avalible users games at account. Tool launched with default steam app id `480` for requesting steam api and getting info.
## Bundle mode
If you want to distribute this tollbox with your game - edit `settings.json` and switch `ToolboxMod` to `bundle` value. And change `ToolsAppId` and `BundleAppID` for your's `SteamApp` of you game and sdk tools.
## Dev mode
Dev mode is the same mode as `bundle` but local path of root of your game folder and angine name will be get from `DevEnginePath` and `DevEngineName` values. Also You should set `ToolsAppId` and `BundleAppID` for your's `SteamApp` of you game and sdk tools.

51
SUPPORTED.md Normal file
View File

@ -0,0 +1,51 @@
# Universal Valve Toolbox [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4)
# [![GitHub Build Status](https://img.shields.io/github/workflow/status/EpicMorg/UniversalValveToolbox/Universal%20Valve%20Toolbox%20-%20master?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/actions) [![Translation status](https://translate.epicm.org/widgets/universalvalvetoolbox/-/svg-badge.svg)](https://translate.epicm.org/engage/universalvalvetoolbox/?utm_source=widget) [![Size](https://img.shields.io/github/repo-size/EpicMorg/UniversalValveToolbox?label=size&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/releases) [![GitHub license](https://img.shields.io/github/license/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md) [![Activity](https://img.shields.io/github/commit-activity/w/EpicMorg/UniversalValveToolbox?&style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/UniversalValveToolbox.svg?style=popout-square)](https://github.com/EpicMorg/UniversalValveToolbox/stargazers) [![GitHub uses](https://img.shields.io/sourcegraph/rrc/github.com/EpicMorg/UniversalValveToolbox?style=flat-square)](https://github.com/EpicMorg/UniversalValveToolbox/pulse) [![CodeScene Code Health](https://codescene.io/projects/6852/status-badges/code-health)](https://codescene.io/projects/6852) [![CodeScene System Mastery](https://codescene.io/projects/6852/status-badges/system-mastery)](https://codescene.io/projects/6852)
---------------------------
`Universal Valve Toolbox is not affiliated with Valve Corporation.`
---------------------------
# Supported games and SDK
appid | name
--- | ---
1117390 | Snowdrop Escape
17520 | Synergy
1828210 | Requiem Of Science
1840 | Source Filmmaker
1950750 | Kayf-Life: Complete Edition
1966980 | Bestiarium Project
211 | Source SDK
220 | Half-Life2
224260 | No More Room in Hell
240 | Counter-Strike: Source
243730 | Source SDK 2013 SinglePlayer
243750 | Source SDK 2013 MultiPlayer
254430 | Half-Life SDK
280740 | Aperture Tag: The Paint Gun Testing Initiative
280 | Half-Life: Source
286080 | Thinking with Time Machine
290930 | Half-Life 2: Update
300 | Day of Defeat: Source
320 | Half-Life 2: Deathmatch
340 | Half-Life 2: Lost Coast
360 | Half-Life Deathmatch: Source
362890 | Black Mesa
380 | Half-Life 2: Episode One
397680 | FIREFIGHT RELOADED
399120 | Prospekt
4000 | Garry's Mod
400 | Portal
420 | Half-Life 2: Episode Two
440 | Team Fortress 2
447820 | Day of Infamy
496450 | J.A.C.K.
500 | Left 4 Dead
550 | Left 4 Dead 2
563560 | Alien Swarm: Reactive Drop
570 | Dota 2
620 | Portal 2
630 | Alien Swarm
730 | ounter-Strike: Global Offensive

@ -0,0 +1 @@
Subproject commit 1bae58560200c74fe53beeddb382aea4d83615f1

View File

@ -5,16 +5,32 @@ VisualStudioVersion = 16.0.29521.150
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalValveToolbox", "UniversalValveToolbox\UniversalValveToolbox.csproj", "{DE66895F-7317-45D3-B5CA-292253CE086A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Facepunch.Steamworks.Win32", "Facepunch.Steamworks\Facepunch.Steamworks\Facepunch.Steamworks.Win32.csproj", "{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DE66895F-7317-45D3-B5CA-292253CE086A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE66895F-7317-45D3-B5CA-292253CE086A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE66895F-7317-45D3-B5CA-292253CE086A}.Debug|x86.ActiveCfg = Debug|x86
{DE66895F-7317-45D3-B5CA-292253CE086A}.Debug|x86.Build.0 = Debug|x86
{DE66895F-7317-45D3-B5CA-292253CE086A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE66895F-7317-45D3-B5CA-292253CE086A}.Release|Any CPU.Build.0 = Release|Any CPU
{DE66895F-7317-45D3-B5CA-292253CE086A}.Release|x86.ActiveCfg = Release|x86
{DE66895F-7317-45D3-B5CA-292253CE086A}.Release|x86.Build.0 = Release|x86
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Debug|x86.ActiveCfg = Debug|Any CPU
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Debug|x86.Build.0 = Debug|Any CPU
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Release|Any CPU.Build.0 = Release|Any CPU
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Release|x86.ActiveCfg = Release|Any CPU
{ED9B29E8-0F90-4F9E-BD87-F5014F5FCF85}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,10 +1,18 @@
using UniversalValveToolbox.Base;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using UniversalValveToolbox.Base;
namespace UniversalValveToolbox.Model.Dto {
public class SettingsDtoModel : DtoModel {
private string lastSelectedProject;
private string[] availableLanguages;
private string language;
private string devenginepath = "C://";
private string devenginename = "My Future Game (engine)";
private ToolboxMod toolboxmod = ToolboxMod.retail;
private uint toolsappid = 480;
private uint bundleappsid = 480;
public string LastSelectedProject {
get => lastSelectedProject;
@ -20,5 +28,35 @@ namespace UniversalValveToolbox.Model.Dto {
get => language;
set => UpdateField(value, ref language);
}
[JsonConverter(typeof(StringEnumConverter))]
public ToolboxMod ToolboxMod
{
get => toolboxmod;
set => UpdateField(value, ref toolboxmod);
}
public uint ToolsAppId
{
get => toolsappid;
set => UpdateField(value, ref toolsappid);
}
public uint BundleAppID
{
get => bundleappsid;
set => UpdateField(value, ref bundleappsid);
}
public string DevEnginePath
{
get => devenginepath;
set => UpdateField(value, ref devenginepath);
}
public string DevEngineName
{
get => devenginename;
set => UpdateField(value, ref devenginename);
}
}
public enum ToolboxMod {
retail, bundle, dev
}
}

View File

@ -1,4 +1,7 @@
using System;
using Microsoft.Win32;
using Steamworks;
using System;
using System.Diagnostics;
using System.Windows.Forms;
using UniversalValveToolbox.Model.Provider;
using UniversalValveToolbox.Utils;
@ -13,10 +16,47 @@ namespace UniversalValveToolbox {
var dataProvide = new DataProvider();
var currSettings = dataProvide.Settings;
LanguageManager.UpdateLanguage(currSettings.Language);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
LanguageManager.UpdateLanguage(currSettings.Language);
try { SteamClient.Init(currSettings.ToolsAppId); }
catch (Exception ex) {
DialogResult result = MessageBox.Show(@"Some error was occurred when trying to init Steam API:" + Environment.NewLine +
"---------------------------------------------------------------------------" + Environment.NewLine +
ex.Message + Environment.NewLine +
"---------------------------------------------------------------------------" + Environment.NewLine +
"Try to launch Steam?",
"Error!", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
if (result == DialogResult.Yes)
{
try {
string steamPATH = "";
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Valve\Steam");
steamPATH = key.GetValue("SteamExe").ToString();
Process.Start(steamPATH);
key.Close();
}
catch (Exception exs) {
MessageBox.Show(@"Sorry. Steam launch failed because:" + Environment.NewLine +
"---------------------------------------------------------------------------" + Environment.NewLine +
exs.Message + Environment.NewLine +
"---------------------------------------------------------------------------" + Environment.NewLine +
"Application will be terminated.",
"Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}
else
{
MessageBox.Show("Application will be terminated.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Exit();
}
}
Application.Run(new FormMain());
}
}

View File

@ -33,5 +33,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.0.4")]
[assembly: AssemblyFileVersion("1.0.0.4")]

View File

@ -130,6 +130,16 @@ namespace UniversalValveToolbox.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap toolbox64 {
get {
object obj = ResourceManager.GetObject("toolbox64", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@ -118,23 +118,14 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="checked_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\checked_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="valve_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\valve_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="refresh_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\refresh_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="human_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\human_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="info_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\info_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="checked_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\checked_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="plug-silhouette_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\plug-silhouette_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -142,4 +133,16 @@
<data name="run_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\run_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="human_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\human_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="info_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\info_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="toolbox64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\toolbox64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -77,14 +77,5 @@ namespace UniversalValveToolbox.Properties.translations {
return ResourceManager.GetString("ru-RU", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to EpicMorg.
/// </summary>
internal static string strLangAuthor {
get {
return ResourceManager.GetString("strLangAuthor", resourceCulture);
}
}
}
}

View File

@ -123,7 +123,4 @@
<data name="ru-RU" xml:space="preserve">
<value>Russian</value>
</data>
<data name="strLangAuthor" xml:space="preserve">
<value>EpicMorg</value>
</data>
</root>

View File

@ -123,7 +123,4 @@
<data name="ru-RU" xml:space="preserve">
<value>Русский</value>
</data>
<data name="strLangAuthor" xml:space="preserve">
<value>EpicMorg</value>
</data>
</root>

View File

@ -60,6 +60,15 @@ namespace UniversalValveToolbox.Properties.translations {
}
}
/// <summary>
/// Looks up a localized string similar to EpicMorg.
/// </summary>
internal static string strLangAuthor {
get {
return ResourceManager.GetString("strLangAuthor", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to &lt;New Addon&gt;.
/// </summary>

View File

@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strLangAuthor" xml:space="preserve">
<value>EpicMorg</value>
</data>
<data name="strNewAddon" xml:space="preserve">
<value>&lt;New Addon&gt;</value>
</data>

View File

@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strLangAuthor" xml:space="preserve">
<value>EpicMorg</value>
</data>
<data name="strNewAddon" xml:space="preserve">
<value>&lt;Новое Дополнение&gt;</value>
</data>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -30,17 +30,22 @@
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAbout));
this.labelVersion = new System.Windows.Forms.Label();
this.pictureBoxLogo = new System.Windows.Forms.PictureBox();
this.labelTitle = new System.Windows.Forms.Label();
this.labelCopy = new System.Windows.Forms.Label();
this.labelDivider = new System.Windows.Forms.Label();
this.buttonOK = new System.Windows.Forms.Button();
this.linkLabelIconSite = new System.Windows.Forms.LinkLabel();
this.groupBox = new System.Windows.Forms.GroupBox();
this.linkLabelTI = new System.Windows.Forms.LinkLabel();
this.linkLabelFP = new System.Windows.Forms.LinkLabel();
this.pictureBoxLogo = new System.Windows.Forms.PictureBox();
this.labelCaution = new System.Windows.Forms.Label();
this.labelIconsBy = new System.Windows.Forms.Label();
this.linkLabelthoseicons = new System.Windows.Forms.LinkLabel();
this.linkLabelsmashicons = new System.Windows.Forms.LinkLabel();
this.labelFacepunchSteamworksWin32dll = new System.Windows.Forms.Label();
this.labelkasthackbindingwfdll = new System.Windows.Forms.Label();
this.labelNewtonsoftJsondll = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxLogo)).BeginInit();
this.groupBox.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// labelVersion
@ -48,14 +53,6 @@
resources.ApplyResources(this.labelVersion, "labelVersion");
this.labelVersion.Name = "labelVersion";
//
// pictureBoxLogo
//
this.pictureBoxLogo.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.pictureBoxLogo.Image = global::UniversalValveToolbox.Properties.Resources.valve_64;
resources.ApplyResources(this.pictureBoxLogo, "pictureBoxLogo");
this.pictureBoxLogo.Name = "pictureBoxLogo";
this.pictureBoxLogo.TabStop = false;
//
// labelTitle
//
resources.ApplyResources(this.labelTitle, "labelTitle");
@ -79,29 +76,6 @@
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// linkLabelIconSite
//
resources.ApplyResources(this.linkLabelIconSite, "linkLabelIconSite");
this.linkLabelIconSite.Name = "linkLabelIconSite";
this.linkLabelIconSite.TabStop = true;
this.linkLabelIconSite.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelIconSite_LinkClicked);
//
// groupBox
//
resources.ApplyResources(this.groupBox, "groupBox");
this.groupBox.Controls.Add(this.linkLabelTI);
this.groupBox.Controls.Add(this.linkLabelFP);
this.groupBox.Controls.Add(this.linkLabelIconSite);
this.groupBox.Name = "groupBox";
this.groupBox.TabStop = false;
//
// linkLabelTI
//
resources.ApplyResources(this.linkLabelTI, "linkLabelTI");
this.linkLabelTI.Name = "linkLabelTI";
this.linkLabelTI.TabStop = true;
this.linkLabelTI.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelTI_LinkClicked);
//
// linkLabelFP
//
resources.ApplyResources(this.linkLabelFP, "linkLabelFP");
@ -109,11 +83,75 @@
this.linkLabelFP.TabStop = true;
this.linkLabelFP.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelFP_LinkClicked);
//
// pictureBoxLogo
//
this.pictureBoxLogo.Image = global::UniversalValveToolbox.Properties.Resources.toolbox64;
resources.ApplyResources(this.pictureBoxLogo, "pictureBoxLogo");
this.pictureBoxLogo.Name = "pictureBoxLogo";
this.pictureBoxLogo.TabStop = false;
//
// labelCaution
//
resources.ApplyResources(this.labelCaution, "labelCaution");
this.labelCaution.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.labelCaution.Name = "labelCaution";
//
// labelIconsBy
//
resources.ApplyResources(this.labelIconsBy, "labelIconsBy");
this.labelIconsBy.Name = "labelIconsBy";
//
// linkLabelthoseicons
//
resources.ApplyResources(this.linkLabelthoseicons, "linkLabelthoseicons");
this.linkLabelthoseicons.Name = "linkLabelthoseicons";
this.linkLabelthoseicons.TabStop = true;
this.linkLabelthoseicons.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelTI_LinkClicked);
//
// linkLabelsmashicons
//
resources.ApplyResources(this.linkLabelsmashicons, "linkLabelsmashicons");
this.linkLabelsmashicons.Name = "linkLabelsmashicons";
this.linkLabelsmashicons.TabStop = true;
this.linkLabelsmashicons.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelSI_LinkClicked);
//
// labelFacepunchSteamworksWin32dll
//
resources.ApplyResources(this.labelFacepunchSteamworksWin32dll, "labelFacepunchSteamworksWin32dll");
this.labelFacepunchSteamworksWin32dll.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.labelFacepunchSteamworksWin32dll.Name = "labelFacepunchSteamworksWin32dll";
//
// labelkasthackbindingwfdll
//
resources.ApplyResources(this.labelkasthackbindingwfdll, "labelkasthackbindingwfdll");
this.labelkasthackbindingwfdll.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.labelkasthackbindingwfdll.Name = "labelkasthackbindingwfdll";
//
// labelNewtonsoftJsondll
//
resources.ApplyResources(this.labelNewtonsoftJsondll, "labelNewtonsoftJsondll");
this.labelNewtonsoftJsondll.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.labelNewtonsoftJsondll.Name = "labelNewtonsoftJsondll";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.labelkasthackbindingwfdll);
this.groupBox1.Controls.Add(this.labelNewtonsoftJsondll);
this.groupBox1.Controls.Add(this.labelFacepunchSteamworksWin32dll);
resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false;
//
// FormAbout
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.linkLabelsmashicons);
this.Controls.Add(this.linkLabelthoseicons);
this.Controls.Add(this.linkLabelFP);
this.Controls.Add(this.labelIconsBy);
this.Controls.Add(this.labelCaution);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.labelDivider);
this.Controls.Add(this.labelTitle);
@ -127,8 +165,7 @@
this.ShowInTaskbar = false;
this.Load += new System.EventHandler(this.FormAbout_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBoxLogo)).EndInit();
this.groupBox.ResumeLayout(false);
this.groupBox.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@ -142,9 +179,14 @@
private System.Windows.Forms.Label labelCopy;
private System.Windows.Forms.Label labelDivider;
private System.Windows.Forms.Button buttonOK;
private System.Windows.Forms.LinkLabel linkLabelIconSite;
private System.Windows.Forms.GroupBox groupBox;
private System.Windows.Forms.LinkLabel linkLabelTI;
private System.Windows.Forms.LinkLabel linkLabelFP;
private System.Windows.Forms.Label labelCaution;
private System.Windows.Forms.Label labelIconsBy;
private System.Windows.Forms.LinkLabel linkLabelthoseicons;
private System.Windows.Forms.LinkLabel linkLabelsmashicons;
private System.Windows.Forms.Label labelFacepunchSteamworksWin32dll;
private System.Windows.Forms.Label labelkasthackbindingwfdll;
private System.Windows.Forms.Label labelNewtonsoftJsondll;
private System.Windows.Forms.GroupBox groupBox1;
}
}

View File

@ -6,13 +6,30 @@ namespace UniversalValveToolbox {
public partial class FormAbout : Form {
public FormAbout() {
InitializeComponent();
#region move to helper
System.Reflection.Assembly assemblyFacepunchSteamworksWin32 = System.Reflection.Assembly.LoadFrom("Facepunch.Steamworks.Win32.dll");
System.Reflection.Assembly assemblykasthackbindingwf = System.Reflection.Assembly.LoadFrom("kasthack.binding.wf.dll");
System.Reflection.Assembly assemblyNewtonsoftJson = System.Reflection.Assembly.LoadFrom("Newtonsoft.Json.dll");
Version verFacepunchSteamworksWin32 = assemblyFacepunchSteamworksWin32.GetName().Version;
Version verkasthackbindingwf = assemblykasthackbindingwf.GetName().Version;
Version verNewtonsoftJson = assemblyNewtonsoftJson.GetName().Version;
#endregion
labelVersion.Text = Utils.VersionHelper.AssemblyVersion;
labelTitle.Text = Utils.VersionHelper.AssemblyTitle;
labelCopy.Text = Utils.VersionHelper.AssemblyCopyright;
labelCaution.Text = labelTitle.Text + " " + labelCaution.Text;
labelFacepunchSteamworksWin32dll.Text = "Facepunch.Steamworks.Win32.dll " + verFacepunchSteamworksWin32.ToString();
labelkasthackbindingwfdll.Text = "kasthack.binding.wf.dll " + verkasthackbindingwf.ToString();
labelNewtonsoftJsondll.Text = "Newtonsoft.Json.dll " + verNewtonsoftJson.ToString();
}
private void FormAbout_Load(object sender, EventArgs e) {
}
private void buttonOK_Click(object sender, EventArgs e) {
@ -30,5 +47,10 @@ namespace UniversalValveToolbox {
private void linkLabelTI_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("https://www.flaticon.com/authors/those-icons");
}
private void linkLabelSI_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://www.flaticon.com/authors/smashicons");
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@ using System.Collections.Generic;
using UniversalValveToolbox.Utils;
using System.Globalization;
using System.Collections;
using EpicMorg.SteamPathsLib;
using Steamworks;
namespace UniversalValveToolbox {
public partial class FormAddons : Form {
@ -30,7 +30,7 @@ namespace UniversalValveToolbox {
.Cast<DictionaryEntry>()
.ToArray();
model = new FormAddonViewModel(dataProvider.Addons, dataProvider.Engines.Where(engine => SteamPathsUtil.GetSteamAppDataById(engine.Appid) != null).ToArray(), categories);
model = new FormAddonViewModel(dataProvider.Addons, dataProvider.Engines.Where(engine => isSteamAppInstall(engine.Appid)).ToArray(), categories);
UpdateAddonsComboBox();
UpdateAddonCategoryComboBox();
@ -106,6 +106,11 @@ namespace UniversalValveToolbox {
}
}
private bool isSteamAppInstall(int appId) {
var isInstall = SteamApps.IsAppInstalled(appId);
return isInstall;
}
private void UpdateAddonCategoryComboBox() {
comboBoxCategory.Items.Clear();
comboBoxCategory.Items.AddRange(model.Categories.Select(c => c.Value).ToArray());

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
using EpicMorg.SteamPathsLib;
using Steamworks;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@ -12,8 +12,10 @@ using UniversalValveToolbox.Model.Provider;
using UniversalValveToolbox.Model.ViewModel;
using UniversalValveToolbox.Utils;
namespace UniversalValveToolbox {
public partial class FormMain : Form {
namespace UniversalValveToolbox
{
public partial class FormMain : Form
{
private readonly string RUN_PROJECT_ID = "RUN_PROJECT_ID";
private EngineDtoModel[] Engines;
@ -25,21 +27,25 @@ namespace UniversalValveToolbox {
private ListViewGroup listViewGroupAddons;
private ListViewGroup listViewGroupTools;
private EngineDtoModel SelectedEngine {
get {
private EngineDtoModel SelectedEngine
{
get
{
if (Engines.Length == 0)
return null;
return Engines[comboBoxEngine.SelectedIndex];
}
}
private ProjectDtoModel SelectedProject {
private ProjectDtoModel SelectedProject
{
get => (ProjectDtoModel)((comboBoxProjects.Enabled)
? Projects.First(project => project.Name.Equals(comboBoxProjects.SelectedItem))
: null);
}
public FormMain() {
public FormMain()
{
InitializeComponent();
FillBaseMenuItems();
@ -47,21 +53,25 @@ namespace UniversalValveToolbox {
Text = VersionHelper.AssemblyTitle + VersionHelper.AssemblyVersion;
comboBoxEngine.SelectedIndexChanged += (s, e) => {
comboBoxEngine.SelectedIndexChanged += (s, e) =>
{
UpdateProjectList();
UpdateToolsList();
UpdateAddonsList();
};
}
private void FormMain_Load(object sender, EventArgs e) {
private void FormMain_Load(object sender, EventArgs e)
{
}
private void UpdateLastSelectedProject() {
private void UpdateLastSelectedProject()
{
var lastSelectedProject = dataProvider.Projects.FirstOrDefault(project => project.Name.Equals(dataProvider.Settings.LastSelectedProject));
if (lastSelectedProject != null && Engines.Length != 0) {
if (lastSelectedProject != null && Engines.Length != 0)
{
var indexEngine = comboBoxEngine.Items.IndexOf(Engines.First(engine => engine.Appid.Equals(lastSelectedProject.Engine)).Name);
comboBoxEngine.SelectedIndex = indexEngine;
@ -75,14 +85,16 @@ namespace UniversalValveToolbox {
EnvUtils.PrepareSFMData($"{SelectedProject?.Path ?? string.Empty}");
}
}
private void SaveLastSelectedProject() {
private void SaveLastSelectedProject()
{
var settings = dataProvider.Settings;
settings.LastSelectedProject = SelectedProject?.Name;
dataProvider.Settings = settings;
}
private void UpdateFormData() {
private void UpdateFormData()
{
UpdateEngineList();
UpdateProjectList();
UpdateToolsList();
@ -92,16 +104,19 @@ namespace UniversalValveToolbox {
UpdateLastSelectedProject();
}
private void UpdateNavigationBar() {
private void UpdateNavigationBar()
{
UpdateLogInStatus();
UpdateInfoNavigationBar();
}
private void toolStripStatusLabelRefresh_Click(object sender, EventArgs e) {
private void toolStripStatusLabelRefresh_Click(object sender, EventArgs e)
{
UpdateFormData();
}
public void FillBaseMenuItems() {
public void FillBaseMenuItems()
{
#region static content, do not edit
//creating groups (categores)
listViewGroupAddons = new ListViewGroup(Properties.translations.MenuCategories.catAddons);
@ -164,11 +179,15 @@ namespace UniversalValveToolbox {
});
}
private void UpdateEngineList() {
var dataProvider = new DataProvider();
Engines = dataProvider.Engines.Where(engine => SteamPathsUtil.GetSteamAppDataById(engine.Appid) != null).ToArray();
private void UpdateEngineList()
{
if (Engines != null && Engines.Length != 0) {
GetAvailableEngines();
if (Engines != null && Engines.Length != 0)
{
comboBoxEngine.Enabled = true;
comboBoxEngine.Items.Clear();
comboBoxEngine.Items.AddRange(Engines.Select(engine => engine.Name).ToArray());
@ -177,8 +196,35 @@ namespace UniversalValveToolbox {
}
}
private void UpdateProjectList() {
if (Engines.Length == 0) {
private void GetAvailableEngines()
{
var dataProvider = new DataProvider();
if (dataProvider.Settings.ToolboxMod == ToolboxMod.dev)
{
EngineDtoModel engineValues = dataProvider.Engines.Single(engine => engine.Appid == dataProvider.Settings.BundleAppID);
Engines = new[] {
new EngineDtoModel {
Appid = (int)dataProvider.Settings.BundleAppID,
Name = dataProvider.Settings.DevEngineName,
Bin = engineValues.Bin,
Tools = engineValues.Tools
}
};
}
else {
Engines = dataProvider.Engines.Where(engine => dataProvider.Settings.ToolboxMod switch
{
ToolboxMod.retail => SteamApps.IsAppInstalled(engine.Appid),
ToolboxMod.bundle => engine.Appid == dataProvider.Settings.BundleAppID,
_ => throw new Exception($"Unrecognised toolbox mode: {dataProvider.Settings.ToolboxMod}")
}).ToArray();
}
}
private void UpdateProjectList()
{
if (Engines.Length == 0)
{
comboBoxProjects.Enabled = false;
comboBoxProjects.Items.Clear();
@ -191,7 +237,8 @@ namespace UniversalValveToolbox {
var selectEngine = Engines[comboBoxEngine.SelectedIndex];
AvailableProjects = Projects.Where(project => project.Engine == selectEngine.Appid).ToArray();
if (AvailableProjects != null && AvailableProjects.Length != 0) {
if (AvailableProjects != null && AvailableProjects.Length != 0)
{
comboBoxProjects.Enabled = true;
comboBoxProjects.Items.Clear();
@ -199,17 +246,20 @@ namespace UniversalValveToolbox {
comboBoxProjects.SelectedIndex = 0;
}
else {
else
{
comboBoxProjects.Enabled = false;
comboBoxProjects.Items.Clear();
}
}
private void UpdateToolsList() {
private void UpdateToolsList()
{
var removeItem = new List<ListViewItem>();
foreach (ListViewItem item in listViewGroupTools.Items) {
foreach (ListViewItem item in listViewGroupTools.Items)
{
removeItem.Add(item);
}
@ -218,19 +268,30 @@ namespace UniversalValveToolbox {
if (SelectedEngine == null)
return;
var pathSelectedEngine = SteamPathsUtil.GetSteamAppManifestDataById(SelectedEngine.Appid)?.Path;
var dataProvider = new DataProvider();
if (pathSelectedEngine != null) {
var pathSelectedEngine = dataProvider.Settings.ToolboxMod switch
{
ToolboxMod.retail => SteamApps.AppInstallDir(SelectedEngine.Appid),
ToolboxMod.bundle => SteamApps.AppInstallDir(dataProvider.Settings.BundleAppID),
ToolboxMod.dev => dataProvider.Settings.DevEnginePath,
_ => throw new Exception($"Unrecognised engine type: {dataProvider.Settings.ToolboxMod}")
};
if (pathSelectedEngine != null)
{
var pairPathIconTools = SelectedEngine.Tools
.Where(tool => File.Exists(Path.Combine(pathSelectedEngine, tool.Bin)))
.Select(tool => {
.Select(tool =>
{
var keyByPath = Path.Combine(pathSelectedEngine, tool.Bin);
var icon = Icon.ExtractAssociatedIcon(Path.Combine(pathSelectedEngine, tool.Bin));
return new Pair(keyByPath, icon);
});
foreach (var pair in pairPathIconTools) {
foreach (var pair in pairPathIconTools)
{
listView.SmallImageList.Images.Add((string)pair.First, (Icon)pair.Second);
listView.LargeImageList.Images.Add((string)pair.First, (Icon)pair.Second);
}
@ -239,16 +300,19 @@ namespace UniversalValveToolbox {
var itemsTools = SelectedEngine.Tools
.Where(tool => File.Exists(Path.Combine(pathSelectedEngine, tool.Bin)))
.Select(tool => {
.Select(tool =>
{
string keyByPath = null;
if (pathSelectedEngine != null)
keyByPath = Path.Combine(pathSelectedEngine, tool.Bin);
if (keyByPath == null) {
if (keyByPath == null)
{
return new ListViewItem(tool.Name, listViewGroupTools);
}
else {
else
{
return new ListViewItem(tool.Name, keyByPath, listViewGroupTools);
}
@ -256,27 +320,33 @@ namespace UniversalValveToolbox {
listView.Items.AddRange(itemsTools);
var engineData = SteamPathsUtil.GetSteamAppManifestDataById(SelectedEngine.Appid);
var enginePath = dataProvider.Settings.ToolboxMod switch
{
ToolboxMod.retail => SteamApps.AppInstallDir(SelectedEngine.Appid),
ToolboxMod.bundle => SteamApps.AppInstallDir(dataProvider.Settings.BundleAppID),
ToolboxMod.dev => dataProvider.Settings.DevEnginePath,
_ => throw new Exception($"Unrecognised engine type: {dataProvider.Settings.ToolboxMod}")
};
var isAvailableProjectBySelectEngine = Projects.Any(project => project.Engine == SelectedEngine.Appid);
if (engineData != null && isAvailableProjectBySelectEngine) {
var enginePath = engineData.Path;
if (enginePath != null && isAvailableProjectBySelectEngine)
{
var iconPathEngine = Path.Combine(enginePath, SelectedEngine.Bin);
if (enginePath != null) {
var iconPathEngine = Path.Combine(enginePath, SelectedEngine.Bin);
var runProjectListViewItem = new ListViewItem(Properties.translations.MenuItems.itmRunProject, iconPathEngine, listViewGroupTools);
runProjectListViewItem.Tag = RUN_PROJECT_ID;
var runProjectListViewItem = new ListViewItem(Properties.translations.MenuItems.itmRunProject, iconPathEngine, listViewGroupTools);
runProjectListViewItem.Tag = RUN_PROJECT_ID;
listView.Items.Add(runProjectListViewItem);
}
listView.Items.Add(runProjectListViewItem);
}
}
private void UpdateAddonsList() {
private void UpdateAddonsList()
{
var removeItem = new List<ListViewItem>();
foreach (ListViewItem item in listViewGroupAddons.Items) {
foreach (ListViewItem item in listViewGroupAddons.Items)
{
removeItem.Add(item);
}
@ -285,39 +355,45 @@ namespace UniversalValveToolbox {
if (SelectedEngine == null)
return;
var pathSelectedEngine = SteamPathsUtil.GetSteamAppManifestDataById(SelectedEngine.Appid)?.Path;
var pathSelectedEngine = SteamApps.AppInstallDir(SelectedEngine.Appid);
var addonsSelectedEngine = dataProvider.Addons.Where(a => a.Engines.Contains(SelectedEngine.Appid));
var pairPathIconTools = addonsSelectedEngine
.Where(addon => {
.Where(addon =>
{
var path = addon.Bin;
return File.Exists(path);
})
.Select(addons => {
.Select(addons =>
{
var keyByPath = addons.Bin;
var icon = Icon.ExtractAssociatedIcon(keyByPath);
return new Pair(keyByPath, icon);
});
foreach (var pair in pairPathIconTools) {
foreach (var pair in pairPathIconTools)
{
listView.SmallImageList.Images.Add((string)pair.First, (Icon)pair.Second);
listView.LargeImageList.Images.Add((string)pair.First, (Icon)pair.Second);
}
var itemsAddons = addonsSelectedEngine.Select(addons => {
var itemsAddons = addonsSelectedEngine.Select(addons =>
{
string keyByPath = null;
if (pathSelectedEngine != null)
keyByPath = Path.Combine(pathSelectedEngine, addons.Bin);
if (keyByPath == null) {
if (keyByPath == null)
{
return new ListViewItem(addons.Name, listViewGroupAddons);
}
else {
else
{
return new ListViewItem(addons.Name, keyByPath, listViewGroupAddons);
}
@ -326,8 +402,9 @@ namespace UniversalValveToolbox {
listView.Items.AddRange(itemsAddons);
}
private void UpdateInfoNavigationBar() {
var countAvailableEngines = dataProvider.Engines.Length;
private void UpdateInfoNavigationBar()
{
var countAvailableEngines = Engines.Length;
var countAvailableProjects = dataProvider.Projects.Length;
var countAvailableAddons = dataProvider.Addons.Length;
@ -335,81 +412,114 @@ namespace UniversalValveToolbox {
toolStripStatusLabelAddons.Text = Properties.translations.MenuNavbar.menuStrAddons + $"{countAvailableAddons}";
}
private void UpdateLogInStatus() {
private void UpdateLogInStatus()
{
var steamData = SteamManager.SteamData;
if (steamData.SteamPid != 0) {
if (steamData.SteamPid != 0)
{
toolStripStatusLabelSteam.Image = Properties.Resources.checked_16;
toolStripStatusLabelSteam.Text = Properties.translations.MenuNavbar.menuStrSteam + Properties.translations.MenuNavbar.menuStrOnline;
toolStripStatusLabelSteam.ToolTipText = Properties.translations.MenuNavbar.menuStrSteam + $"PID: {steamData.SteamPid.ToString()}";
}
else {
else
{
toolStripStatusLabelSteam.Image = Properties.Resources.cancel_16;
toolStripStatusLabelSteam.ToolTipText = string.Empty;
toolStripStatusLabelSteam.Text = Properties.translations.MenuNavbar.menuStrSteam + Properties.translations.MenuNavbar.menuStrOffline;
}
if (steamData.UserNameSteam != null) {
if (steamData.UserNameSteam != null)
{
toolStripStatusLabelLogin.Text = Properties.translations.MenuNavbar.menuStrLogin + $"{steamData.UserNameSteam}";
}
else {
else
{
toolStripStatusLabelLogin.Text = Properties.translations.MenuNavbar.menuStrLogin + Properties.translations.MenuNavbar.menuStrNone;
}
}
private void button_Launch_Click(object sender, EventArgs e) {
private void button_Launch_Click(object sender, EventArgs e)
{
this.OpenSettings();
}
private void listView_MouseDoubleClick(object sender, MouseEventArgs e) {
private void listView_MouseDoubleClick(object sender, MouseEventArgs e)
{
var selectItem = listView.SelectedItems[0];
var selectItemText = selectItem.Text;
EnvUtils.PrepareVProject($"{SelectedProject?.Path ?? string.Empty}");
EnvUtils.PrepareSFMData($"{SelectedProject?.Path ?? string.Empty}");
if (selectItem.Group == listViewGroupTools) {
if (RUN_PROJECT_ID.Equals(selectItem.Tag) && SelectedProject != null) {
var pathEngineBin = Path.Combine(SteamPathsUtil.GetSteamAppManifestDataById(SelectedEngine.Appid).Path, SelectedEngine.Bin);
if (selectItem.Group == listViewGroupTools)
{
if (RUN_PROJECT_ID.Equals(selectItem.Tag) && SelectedProject != null)
{
//var pathEngineBin = Path.Combine(SteamApps.AppInstallDir(SelectedEngine.Appid), SelectedEngine.Bin);
var pathEngineBin = dataProvider.Settings.ToolboxMod switch
{
ToolboxMod.retail => Path.Combine(SteamApps.AppInstallDir(SelectedEngine.Appid), SelectedEngine.Bin),
ToolboxMod.bundle => Path.Combine(SteamApps.AppInstallDir(dataProvider.Settings.BundleAppID), SelectedEngine.Bin),
ToolboxMod.dev => Path.Combine(dataProvider.Settings.DevEnginePath, SelectedEngine.Bin),
_ => throw new Exception($"Unrecognised engine type: {dataProvider.Settings.ToolboxMod}")
};
Process.Start(pathEngineBin, $"-steam -game \"{SelectedProject?.Path ?? string.Empty}\" {SelectedProject.Args}");
}
var selectedTool = SelectedEngine.Tools.FirstOrDefault(tool => tool.Name == selectItemText);
if (selectedTool != null) {
var selectedEnginePath = SteamPathsUtil.GetSteamAppManifestDataById(SelectedEngine.Appid)?.Path;
if (selectedTool != null)
{
// var selectedEnginePath = SteamApps.AppInstallDir(SelectedEngine.Appid);
if (selectedEnginePath != null) {
var selectedEnginePath = dataProvider.Settings.ToolboxMod switch
{
ToolboxMod.retail => SteamApps.AppInstallDir(SelectedEngine.Appid),
ToolboxMod.bundle => SteamApps.AppInstallDir(dataProvider.Settings.BundleAppID),
ToolboxMod.dev => dataProvider.Settings.DevEnginePath,
_ => throw new Exception($"Unrecognised engine type: {dataProvider.Settings.ToolboxMod}")
};
if (selectedEnginePath != null)
{
var toolPath = Path.Combine(selectedEnginePath, selectedTool.Bin);
if (File.Exists(toolPath)) {
if (File.Exists(toolPath))
{
string finalArg = $"-steam {selectedTool.Args}";
if (!finalArg.Contains("-game")) {
finalArg += $"-game \"{SelectedProject?.Path ?? string.Empty}\"";
if (!finalArg.Contains("-game"))
{
finalArg += $" -game \"{SelectedProject?.Path ?? string.Empty}\" ";
}
Process.Start(toolPath, finalArg);
}
else
MessageBox.Show($"\"{selectedTool.Name}\" {Properties.translations.MessageBoxes.msgTextNotFound}\n{toolPath}", Properties.translations.MessageBoxes.msgWarning, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else {
else
{
DialogResult dialogResult = MessageBox.Show($"\"{SelectedEngine.Name}\" {Properties.translations.MessageBoxes.msgTextWithAppID} \"{SelectedEngine.Appid}\" {Properties.translations.MessageBoxes.msgTextNotInstalledInstall}", Properties.translations.MessageBoxes.msgWarning, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (dialogResult == DialogResult.Yes) {
if (dialogResult == DialogResult.Yes)
{
Process.Start($"steam://install/{SelectedEngine.Appid}");
}
else if (dialogResult == DialogResult.No) {
else if (dialogResult == DialogResult.No)
{
MessageBox.Show($"{Properties.translations.MessageBoxes.msgTextInstallationOf} \"{SelectedEngine.Name}\" {Properties.translations.MessageBoxes.msgTextWithAppID} \"{SelectedEngine.Appid}\" {Properties.translations.MessageBoxes.msgTextCancelled}", Properties.translations.MessageBoxes.msgInfo, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
}
}
else if (selectItem.Group == listViewGroupAddons) {
else if (selectItem.Group == listViewGroupAddons)
{
var selectedAddons = dataProvider.Addons.FirstOrDefault(addon => addon.Name == selectItemText);
if (selectedAddons != null) {
if (selectedAddons != null)
{
var addonPath = Path.Combine(selectedAddons.Bin);
if (File.Exists(addonPath))
@ -420,34 +530,43 @@ namespace UniversalValveToolbox {
}
}
else if (selectItemText == Properties.translations.MenuItems.itmOpenSettings) {
else if (selectItemText == Properties.translations.MenuItems.itmOpenSettings)
{
this.OpenSettings();
}
else if (selectItemText == Properties.translations.MenuItems.itmEditConfigurations) {
else if (selectItemText == Properties.translations.MenuItems.itmEditConfigurations)
{
var frmProfiles = new FormProjects();
if (frmProfiles.ShowDialog() == DialogResult.OK) {
if (frmProfiles.ShowDialog() == DialogResult.OK)
{
UpdateFormData();
}
}
else if (selectItemText == Properties.translations.MenuItems.itmEditPlugins) {
else if (selectItemText == Properties.translations.MenuItems.itmEditPlugins)
{
var frmPlugins = new FormAddons();
if (frmPlugins.ShowDialog() == DialogResult.OK) {
if (frmPlugins.ShowDialog() == DialogResult.OK)
{
UpdateFormData();
}
}
else if (selectItemText == Properties.translations.MenuItems.itmAbout) {
else if (selectItemText == Properties.translations.MenuItems.itmAbout)
{
var frmAbout = new FormAbout();
frmAbout.ShowDialog();
}
else if (selectItemText == Properties.translations.MenuItems.itmGitHubLink) {
else if (selectItemText == Properties.translations.MenuItems.itmGitHubLink)
{
Process.Start("https://github.com/EpicMorg/UniversalValveToolbox");
}
else if (selectItemText == Properties.translations.MenuItems.itmGitHubReport) {
else if (selectItemText == Properties.translations.MenuItems.itmGitHubReport)
{
Process.Start("https://github.com/EpicMorg/UniversalValveToolbox/issues/new/choose");
}
}
private void OpenSettings() {
private void OpenSettings()
{
var dataManager = new DataProvider();
var settingsDto = dataManager.Settings;
var languageProvider = new LanguageProvider();
@ -456,14 +575,17 @@ namespace UniversalValveToolbox {
var frmSettings = new FormSettings(settingsModel);
if (frmSettings.ShowDialog() == DialogResult.OK) {
if (frmSettings.ShowDialog() == DialogResult.OK)
{
dataManager.Settings = settingsDto;
Application.Restart();
}
}
private void FormMain_FormClosing(object sender, FormClosingEventArgs e) {
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
{
SaveLastSelectedProject();
SteamClient.Shutdown();
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
using EpicMorg.SteamPathsLib;

using kasthack.binding.wf;
using Steamworks;
using System;
using System.Collections.Generic;
using System.Linq;
@ -21,7 +22,7 @@ namespace UniversalValveToolbox {
public FormProjects() {
InitializeComponent();
model = new FormProjectViewModel(dataProvider.Projects, dataProvider.Engines.Where(engine => SteamPathsUtil.GetSteamAppDataById(engine.Appid) != null).ToArray());
model = new FormProjectViewModel(dataProvider.Projects, dataProvider.Engines.Where(engine => isAppInstalled(engine.Appid)).ToArray());
UpdateComboBoxProject();
UpdateComboBoxEngine();
@ -34,6 +35,11 @@ namespace UniversalValveToolbox {
comboBoxEngine.Bind(a => a.SelectedIndex, model, a => a.SelectEngineIndex);
}
private bool isAppInstalled(int appId) {
var isInstall = SteamApps.IsAppInstalled(appId);
return isInstall;
}
private void Model_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) {
UpdateComboBoxEngine();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -117,6 +117,13 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonOK.Location" type="System.Drawing.Point, System.Drawing">
<value>251, 227</value>
</data>
<data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>332, 227</value>
</data>
<data name="buttonCancel.Text" xml:space="preserve">
<value>Отмена</value>
</data>
@ -133,7 +140,6 @@
<data name="textBoxName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="textBoxName.Size" type="System.Drawing.Size, System.Drawing">
<value>395, 20</value>
</data>
@ -171,6 +177,12 @@
<data name="labelAddon.Text" xml:space="preserve">
<value>Выбор Проекта:</value>
</data>
<data name="labelDivider.Location" type="System.Drawing.Point, System.Drawing">
<value>-18, 218</value>
</data>
<data name="buttonApply.Location" type="System.Drawing.Point, System.Drawing">
<value>413, 227</value>
</data>
<data name="buttonApply.Text" xml:space="preserve">
<value>Применить</value>
</data>
@ -180,6 +192,9 @@
<data name="labelArgs.Text" xml:space="preserve">
<value>Параметры запуска:</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>500, 262</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAYAAAAAAAEAIADbMQAAZgAAAICAAAABACAAKAgBAEEyAABAQAAAAQAgAChCAABpOgEAMDAAAAEA
@ -2059,6 +2074,9 @@
AIABAACAAQAAwAMAAPAPAAA=
</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>516, 300</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Редактор Проектов</value>
</data>

View File

@ -74,8 +74,8 @@
//
// labelTranslationAthor
//
this.labelTranslationAthor.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
resources.ApplyResources(this.labelTranslationAthor, "labelTranslationAthor");
this.labelTranslationAthor.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.labelTranslationAthor.Name = "labelTranslationAthor";
//
// FormSettings

View File

@ -20,7 +20,7 @@ namespace UniversalValveToolbox {
}
private void FormSettings_Load(object sender, EventArgs e) {
labelTranslationAthor.Text = Properties.translations.LangDict.strLangAuthor;
labelTranslationAthor.Text = Properties.translations.VarStrings.strLangAuthor;
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,9 @@
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
@ -33,7 +36,27 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>valve.ico</ApplicationIcon>
<ApplicationIcon>toolbox.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
@ -51,11 +74,11 @@
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<PackageReference Include="EpicMorg.SteamPathsLib" Version="1.1.0.5" />
<!--<PackageReference Include="EpicMorg.SteamPathsLib" Version="1.1.0.6" />-->
<PackageReference Include="kasthack.binding.wf">
<Version>1.2.26</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<Reference Include="UIAutomationProvider" />
<Reference Include="WindowsBase" />
<Reference Include="WindowsFormsIntegration" />
@ -184,15 +207,24 @@
<EmbeddedResource Include="UI\FormAbout.resx">
<DependentUpon>FormAbout.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormAbout.ru-RU.resx">
<DependentUpon>FormAbout.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormAbout.ru.resx">
<DependentUpon>FormAbout.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormAddons.resx">
<DependentUpon>FormAddons.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormAddons.ru-RU.resx">
<DependentUpon>FormAddons.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormAddons.ru.resx">
<DependentUpon>FormAddons.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormMain.ru-RU.resx">
<DependentUpon>FormMain.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormMain.ru.resx">
<DependentUpon>FormMain.cs</DependentUpon>
</EmbeddedResource>
@ -202,6 +234,9 @@
<EmbeddedResource Include="UI\FormMain.resx">
<DependentUpon>FormMain.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormProjects.ru-RU.resx">
<DependentUpon>FormProjects.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormProjects.ru.resx">
<DependentUpon>FormProjects.cs</DependentUpon>
</EmbeddedResource>
@ -239,14 +274,116 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>MessageBoxes.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormSettings.ru-RU.resx">
<DependentUpon>FormSettings.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\FormSettings.ru.resx">
<DependentUpon>FormSettings.cs</DependentUpon>
</EmbeddedResource>
<None Include="json\addons\myOtherProgram.json" />
<None Include="json\addons\myProgram.json" />
<None Include="json\engines\1117390_snowdropecape.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\17520_synergy.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\1828210_RequiemOfScience.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\224260_nmrih.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\286080_thinkingwithtimemachine.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\397680_FIREFIGHTRELOADED.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\447820_dayofinfamy.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\563560_alienswarm.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\7-zip.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\far manager.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\git bash.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\git cmd.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\git gui.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\google chrome 86.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\google chrome.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\microsoft visual studio 2019 preview.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\microsoft visual studio 2022 preview.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\mozilla firefox.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\template\myOtherProgram.json" />
<None Include="json\addons\template\myProgram.json" />
<None Include="json\addons\notepad++.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\p4 merge.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\perforce.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\powershell 7 %28x64%29.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\powershell 7 %28x86%29.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\powershell 7 preview %28x64%29.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\powershell 7 preview %28x86%29.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\steam.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\sublime text.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\vlc.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\vs code insiders.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\win merge.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\addons\winrar.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\1840_sfm.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\1950750_kl.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\1966980_bst.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="json\engines\440_tf2.sdk.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@ -341,6 +478,7 @@
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="toolbox.ico" />
<None Include="Resources\cancel_16.png" />
<None Include="Resources\checked_16.png" />
<None Include="Resources\human_16.png" />
@ -349,7 +487,18 @@
<None Include="Resources\info_16.png" />
<None Include="Resources\plug-silhouette_16.png" />
<None Include="Resources\run_16.png" />
<Content Include="valve.ico" />
<None Include="Resources\toolbox64.png" />
<Content Include="steam_api.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="steam_api64.dll" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<ProjectReference Include="..\Facepunch.Steamworks\Facepunch.Steamworks\Facepunch.Steamworks.Win32.csproj">
<Project>{ed9b29e8-0f90-4f9e-bd87-f5014f5fcf85}</Project>
<Name>Facepunch.Steamworks.Win32</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -1,4 +1,4 @@
using EpicMorg.SteamPathsLib;
using Steamworks;
using System;
using System.IO;
@ -28,7 +28,7 @@ namespace UniversalValveToolbox.Utils {
if (pathProject == null || pathProject.Length == 0)
return;
var SFMpath = SteamPathsUtil.GetSteamAppManifestDataById(1840)?.Path;
var SFMpath = SteamApps.AppInstallDir(1840);
if (SFMpath == null)
return;

View File

@ -1,4 +1,5 @@
using EpicMorg.SteamPathsLib;
using Steamworks;
using System.Diagnostics;
using UniversalValveToolbox.Model.ViewModel;
namespace UniversalValveToolbox.Utils {
@ -6,8 +7,9 @@ namespace UniversalValveToolbox.Utils {
public static SteamDataViewModel SteamData {
get {
var result = new SteamDataViewModel();
result.SteamPid = SteamPathsUtil.GetActiveProcessSteamData()?.PID ?? 0;
result.UserNameSteam = SteamPathsUtil.GetSteamData()?.LastGameNameUsed ?? null;
result.SteamPid = Process.GetProcessesByName("steam")[0]?.Id ?? 0;
result.UserNameSteam = SteamClient.Name ?? null;
return result;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "7-Zip",
"Category": "",
"Bin": "C:\\Program Files\\7-Zip\\7zFM.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Far Manager",
"Category": "",
"Bin": "C:\\Program Files\\Far Manager\\Far.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Git Bash",
"Category": "",
"Bin": "C:\\Program Files\\Git\\git-bash.exe",
"Args": "--cd-to-home"
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Git CMD",
"Category": "",
"Bin": "C:\\Program Files\\Git\\git-cmd.exe",
"Args": "--cd-to-home"
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Git GUI",
"Category": "",
"Bin": "C:\\Program Files\\Git\\cmd\\git-gui.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Google Chrome",
"Category": "",
"Bin": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Google Chrome",
"Category": "",
"Bin": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Microsoft Visual Studio 2019 Preview",
"Category": "",
"Bin": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\devenv.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Microsoft Visual Studio 2022 Preview",
"Category": "",
"Bin": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\Common7\\IDE\\devenv.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Mozilla Firefox",
"Category": "",
"Bin": "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Notepad++",
"Category": "",
"Bin": "C:\\Program Files\\Notepad++\\notepad++.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "P4 Merge",
"Category": "",
"Bin": "C:\\Program Files\\Perforce\\p4merge.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Perforce",
"Category": "",
"Bin": "C:\\Program Files\\Perforce\\p4v.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "PowerShell 7 (x64)",
"Category": "",
"Bin": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
"Args": "-WorkingDirectory ~"
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "PowerShell 7 (x86)",
"Category": "",
"Bin": "C:\\Program Files (x86)\\PowerShell\\7\\pwsh.exe",
"Args": "-WorkingDirectory ~"
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "PowerShell 7 Preview (x64)",
"Category": "",
"Bin": "C:\\Program Files\\PowerShell\\7-preview\\pwsh.exe",
"Args": " -WorkingDirectory ~"
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "PowerShell 7 Preview (x86)",
"Category": "",
"Bin": "C:\\Program Files (x86)\\PowerShell\\7-preview\\pwsh.exe",
"Args": "-WorkingDirectory ~"
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Steam",
"Category": "",
"Bin": "C:\\Program Files (x86)\\Steam\\Steam.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Sublime Text",
"Category": "",
"Bin": "C:\\Program Files\\Sublime Text\\sublime_text.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "VLC",
"Category": "",
"Bin": "C:\\Program Files\\VideoLAN\\VLC\\vlc.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "VS Code Insiders",
"Category": "",
"Bin": "C:\\Program Files\\Microsoft VS Code Insiders\\Code - Insiders.exe",
"Args": ""
}

View File

@ -0,0 +1,9 @@
{
"Engines": [
],
"Name": "Win Merge",
"Category": "",
"Bin": "C:\\Program Files\\WinMerge\\WinMergeU.exe",
"Args": ""
}

View File

@ -0,0 +1,7 @@
{
"Engines": [],
"Name": "WinRAR",
"Category": "",
"Bin": "C:\\Program Files\\WinRAR\\WinRAR.exe",
"Args": ""
}

View File

@ -0,0 +1,37 @@
{
"appid": 1117390,
"name": "Snowdrop Escape: SDK",
"bin": "hl2.exe",
"tools": [
{
"args": "",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "-tools -steam -game snowdrop_escape",
"bin": "hl2.exe",
"name": "Engine Tools"
},
{
"args": "-steam -game snowdrop_escape",
"bin": "hl2.exe",
"name": "Run Game"
}
]
}

View File

@ -0,0 +1,37 @@
{
"appid": 17520,
"name": "Synergy: SDK",
"bin": "synergy.exe",
"tools": [
{
"args": "",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "-tools -steam -game synergy",
"bin": "synergy.exe",
"name": "Engine Tools"
},
{
"args": "-steam -game synergy",
"bin": "synergy.exe",
"name": "Run Game"
}
]
}

View File

@ -0,0 +1,42 @@
{
"appid": 1828210,
"name": "Requiem Of Science: SDK",
"bin": "hl2.exe",
"tools": [
{
"args": "",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "-tools -steam -game hl2ss",
"bin": "hl2.exe",
"name": "Engine Tools"
},
{
"args": "-steam -game hl2ss",
"bin": "hl2.exe",
"name": "Run Game"
}
]
}

View File

@ -1,36 +1,36 @@
{
"appid": 1840,
"name": "Source Filmmaker",
"bin": "game//sfm.exe",
"bin": "game\\sfm.exe",
"tools": [
{
"args": "-steam",
"bin": "game//bin//qsdklauncher.exe",
"bin": "game\\bin\\qsdklauncher.exe",
"name": "SDK Launcher"
},
{
"args": "",
"bin": "game//bin//hammer.exe",
"bin": "game\\bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "game//bin//hlmv.exe",
"bin": "game\\bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "game//bin//hlfaceposer.exe",
"bin": "game\\bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "game//bin//qc_eyes.exe",
"bin": "game\\bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "-steam",
"bin": "game//sfm.exe",
"bin": "game\\sfm.exe",
"name": "Run SFM"
}
]

View File

@ -0,0 +1,52 @@
{
"appid": 1950750,
"name": "Kayf-Life: Complete Edition",
"bin": "kl.exe",
"tools": [
{
"args": "",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor (Slammin' Source Tools)"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "",
"bin": "sdktools\\SourceSDK.ENV.Editor\\SourceSDK.ENV.Editor.exe",
"name": "SourceSDK ENV Editor"
},
{
"args": "-tools -steam -game klall",
"bin": "kl.exe",
"name": "Engine Tools"
},
{
"args": "-game klall -novid -condebug -condump +map testmap -shaderedit",
"bin": "kl.exe",
"name": "Shader Editor"
},
{
"args": "-steam -game klall",
"bin": "kl.exe",
"name": "Run Game"
}
]
}

View File

@ -0,0 +1,52 @@
{
"appid": 1966980,
"name": "Bestiarium Project",
"bin": "bst.exe",
"tools": [
{
"args": "",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor (Slammin' Source Tools)"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "",
"bin": "sdktools\\SourceSDK.ENV.Editor\\SourceSDK.ENV.Editor.exe",
"name": "SourceSDK ENV Editor"
},
{
"args": "-tools -steam -game bst",
"bin": "bst.exe",
"name": "Engine Tools"
},
{
"args": "-game bst -novid -condebug -condump +map testmap -shaderedit",
"bin": "bst.exe",
"name": "Shader Editor"
},
{
"args": "-steam -game bst",
"bin": "bst.exe",
"name": "Run Game"
}
]
}

View File

@ -5,7 +5,7 @@
"tools": [
{
"args": "-steam -game launcher",
"bin": "bin//SDKLauncher.exe",
"bin": "bin\\SDKLauncher.exe",
"name": "Authoring Tools Launcher"
}
]

View File

@ -5,22 +5,27 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -0,0 +1,37 @@
{
"appid": 447820,
"name": "No More Room in Hell: SDK",
"bin": "nmrih.exe",
"tools": [
{
"args": "",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "-tools -steam -game nmrih",
"bin": "nmrih.exe",
"name": "Engine Tools"
},
{
"args": "-steam -game nmrih",
"bin": "nmrih.exe",
"name": "Run Game"
}
]
}

View File

@ -5,22 +5,27 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -5,22 +5,27 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -5,22 +5,27 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -5,7 +5,7 @@
"tools": [
{
"args": "",
"bin": "Hammer Editor//hammer.exe",
"bin": "Hammer Editor\\hammer.exe",
"name": "Valve Hammer Editor"
}
]

View File

@ -5,32 +5,32 @@
"tools": [
{
"args": "-steam -game aperturetag",
"bin": "bin//SDKLauncher.exe",
"bin": "bin\\SDKLauncher.exe",
"name": "Authoring Tools Launcher"
},
{
"args": "-steam -game aperturetag",
"bin": "bin//p2map_publish.exe",
"bin": "bin\\p2map_publish.exe",
"name": "Aperture Tag Publish Tool"
},
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -5,22 +5,22 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -0,0 +1,42 @@
{
"appid": 563560,
"name": "Thinking with Time Machine: SDK",
"bin": "portal2.exe",
"tools": [
{
"args": "-steam -game TWTM",
"bin": "bin\\SDKLauncher.exe",
"name": "Authoring Tools Launcher"
},
{
"args": "",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{
"args": "-tools -steam -game TWTM",
"bin": "portal2.exe",
"name": "Engine Tools"
},
{
"args": "-steam -game TWTM",
"bin": "portal2.exe",
"name": "Run Game"
}
]
}

View File

@ -5,22 +5,22 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -5,22 +5,27 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

View File

@ -5,22 +5,27 @@
"tools": [
{
"args": "",
"bin": "bin//hammer.exe",
"bin": "bin\\hammer.exe",
"name": "Valve Hammer Editor"
},
{
"args": "",
"bin": "bin//hlmv.exe",
"bin": "bin\\hammerplusplus.exe",
"name": "Valve Hammer Editor ++"
},
{
"args": "",
"bin": "bin\\hlmv.exe",
"name": "Half-Life Model Viewer"
},
{
"args": "",
"bin": "bin//hlfaceposer.exe",
"bin": "bin\\hlfaceposer.exe",
"name": "Half-Life FacePoser"
},
{
"args": "",
"bin": "bin//qc_eyes.exe",
"bin": "bin\\qc_eyes.exe",
"name": "QC Eyes"
},
{

Some files were not shown because too many files have changed in this diff Show More