Commit graph

46 commits

Author SHA1 Message Date
1df5f47c2c
Prevent excessive debug logs 2023-11-16 20:07:51 +01:00
5ac66779c2
Use version number from Nexus import
All checks were successful
lint/clippy Checking for common mistakes and opportunities for code improvement
build/msvc Build for the target platform: msvc
build/linux Build for the target platform: linux
Non-bundled mods come without a `dtmt.cfg`, and therefore without a
version number. But we need a version number at import to compare to
for the Nexus update check.
2023-11-14 16:19:07 +01:00
0bc8779b9d
Fix Nexusmods API key not being loaded from config 2023-11-14 15:07:07 +01:00
d0e074ccce
Use template engine to build mod_data.lua
The string-building version became too complex to maintain properly.
2023-11-14 15:06:12 +01:00
b1ff69fa08
Move deployment directory for legacy mods
This moves it back to its original place at `$game_dir/mods`.
2023-11-13 09:45:31 +01:00
78e4d644f0
Implement deploying non-bundled mods
Closes #113.
2023-11-13 09:45:08 +01:00
192f942927
Apply formatting 2023-11-08 15:06:53 +01:00
707a3ead8b
feat(dtmm): Guard certain Lua libraries behind a setting
All checks were successful
lint/clippy Checking for common mistakes and opportunities for code improvement
build/msvc Build for the target platform: msvc
build/linux Build for the target platform: linux
Libraries like `io`, `os` and `ffi` allow practically unrestricted
access to the system's files and running arbitrary operations.
The base game removes them for this reason, and while we don't want to
disable them permanently, very few mods should ever have a need for
them.

So we hide them behind a setting, worded so that people only enable it
when absolutely needed.

Closes #112.
2023-04-24 16:45:49 +02:00
690098d7c7
feat(dtmm): Improve debug logging
This re-enables stdout/stderr logging for release binaries for DTMM.
As a GUI application, it usually won't be started from a CLI, and there
should be no negative impact from that.
But since stdout logging is synchronous and much faster than the async
action that writes to the log file, it might get to log more when the
application panics.
2023-04-09 14:33:55 +02:00
7f5da1e09c
fix(dtmm): Skip mods folder in dtkit reset
Fixes #107.
2023-04-09 09:59:06 +02:00
a246e5acb6
feat(dtmm): Log to file 2023-04-06 14:49:43 +02:00
c08b3e4903 Merge pull request 'Fix deployment deleting too many bundles' (#102) from issue/101 into master
Reviewed-on: #102
2023-04-05 16:28:15 +02:00
c25ea89055
fix(dtmm): Fix deployment deleting too many bundles
Fixes #101.
2023-04-05 15:36:47 +02:00
50a6a1c927
feat(dtmm): Colorize log output
Parses ANSI codes generated by tracing/color-eyre into druid's RichText
attributes.
2023-04-05 09:38:32 +02:00
dbbfa6c9ae
fix(dtmm): Fix re-creating boot bundle backup 2023-03-28 21:18:24 +02:00
21d95e492c
feat(dtmm): Improve reset logging 2023-03-28 20:54:22 +02:00
288adf356b
feat(dtmm): Implement resetting dtkit-patch installations
Closes #88.
2023-03-28 20:54:20 +02:00
f50a97ff16
feat(dtmm): Improve deployment after game update
Usually the backup created by the first deployment is used for a clean
file to make further deployments from, but when the game is updated,
that is reversed, as now the original file is newer than the backup.

In such a case, we first copy the new file to our backup before
continuing with the deployment.

The current implementation is not fool-proof (e.g. it'll do weird stuff
if users mess with the files manually) and doesn't cover everything. But
it should be enough for the regular use case.

Closes #90.
2023-03-28 15:26:15 +02:00
9428b076f0
feat(dtmm): Delay initial load
Delays the loading of the configuration file and mod data, so that
any error can be shown in the UI.

Closes #72.
2023-03-16 14:31:53 +01:00
e434535d96
WIP more nexus mod details 2023-03-15 17:53:04 +01:00
ac44883199
refactor(dtmm): Remove unused field 2023-03-15 17:53:00 +01:00
8edb8b357e
feat(dtmm): Implement rudimentary update check
The UI for it is rather ugly, still, but it works.
2023-03-15 17:52:55 +01:00
c7203127bb
feat(dtmm): Implement importing Nexus downloads
For now, this merely parses and retains the API information encoded in
the archive's file name.
2023-03-15 17:07:01 +01:00
978701bed8
feat(dtmm): Implement mod logo
Closes #15.
2023-03-09 20:07:22 +01:00
4995190199
feat(dtmm): Check mod order
Closes #13.
2023-03-09 11:57:08 +01:00
6b168bad6b
fix(dtmm): Fix game directory check when there is no Steam
Fixes #60.
2023-03-09 11:54:31 +01:00
308613d5fc
feat(dtmt): Improve error messages when compiling Lua
Fixes #58.
2023-03-08 21:27:29 +01:00
a8db19cf9f
refactor: Capitalize error messages 2023-03-08 20:40:30 +01:00
658d996315
feat(dtmm): Implement error dialog
Closes #37.
2023-03-08 20:40:25 +01:00
53188f8c30
chore(dtmm): Improve debug logging 2023-03-07 19:45:47 +01:00
18760d7760
feat(dtmm): Remove unused bundles from previous deployment
Fixes #29.
2023-03-06 16:07:46 +01:00
2d48b96dc1
feat(dtmm): Check Steam update before deployment
Closes #35.
2023-03-06 16:07:43 +01:00
14406ecae9
fix(dtmm): Use a well-known format to serialize timestamps 2023-03-06 16:07:14 +01:00
61dbbcf2d9
feat(dtmm): Write deployment info to disk
Ref: #35.
Fixes #29.
2023-03-06 16:07:13 +01:00
f021e507b8 Merge pull request 'Indicate when a deployment is necessary' (#49) from issue/32 into master
Reviewed-on: #49
2023-03-06 16:04:24 +01:00
ba9c190a96
fix(dtmm): Fix change detection for mod info 2023-03-06 16:02:39 +01:00
4a1e88987c
fix: Force unix path separators for engine values
The engine, and therefore the SDK, too, use unix path separators.
However, on Windows, `PathBuf` automatically produces backslashes.

Fix #46.
2023-03-03 17:36:53 +01:00
dcaefa0a8a
fix(dtmm): Fix importing archives on Windows
The path separators in zip files are OS-specific.

Fix #43.
2023-03-02 20:34:51 +01:00
de072fd0c4
feat(dtmm): Save the mod list
Closes #9.
2023-03-01 19:51:28 +01:00
16a785dc5b
feat(dtmm): Avoid allocations in settings 2023-03-01 14:38:04 +01:00
e6c9fe834c
feat(dtmm): Save settings to config file
Closes #18.
2023-03-01 14:13:11 +01:00
55335c0fdc
refactor(dtmm): Split controller files 2023-03-01 10:40:34 +01:00
e2043aa502
fix(dtmm): Fix incorrect DMF resource names 2023-02-28 23:30:27 +01:00
464face3a8
fix(dtmm): Reset settings file 2023-02-28 21:28:14 +01:00
7c7b9b5890
fix(dtmm): Fix resetting mods 2023-02-28 21:18:32 +01:00
e5a72731dd
refactor(dtmm): Split files into smaller modules 2023-02-28 10:03:56 +01:00