Commit graph

236 commits

Author SHA1 Message Date
3af631348d Fix missing Mods.original_require 2023-11-24 11:52:47 +01:00
13e77a2097 Use template engine to build mod_data.lua
The string-building version became too complex to maintain properly.
2023-11-24 11:52:47 +01:00
15498cc2e0 Move deployment directory for legacy mods
This moves it back to its original place at `$game_dir/mods`.
2023-11-24 11:52:47 +01:00
bd6c236655 Implement deploying non-bundled mods
Closes #113.
2023-11-24 11:52:47 +01:00
871a54020e Apply formatting 2023-11-24 11:52:47 +01:00
1eae146721 Add mod config option for loose files
Just the field in the config file, for now.
2023-11-24 11:52:47 +01:00
6ab514c428
dtmm: Filter file dialog error log
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
Druid's implementation makes it so that cancelling the file dialog
logs an error tracing event.

Closes #133.
2023-11-24 11:07:40 +01:00
6f0fdc5086
dtmm: Document error dialog 2023-11-24 10:13:59 +01:00
7080dcb8de
sdk: Use common ljd flags
Some checks failed
lint/clippy Checking for common mistakes and opportunities for code improvement
build/linux Build for the target platform: linux
build/msvc Build for the target platform: msvc
2023-10-30 14:07:00 +01:00
93db78d58f
sdk: Implement decompiling Lua
Closes #48.
2023-10-30 09:28:07 +01:00
70e22e1dfb
Assign mod loader as global manager 2023-08-30 01:36:46 +02:00
6ef4c2e094
refactor: Format Lua code 2023-07-22 14:39:51 +02:00
9b8f07d125
fix: Fix FFI import 2023-07-22 14:39:35 +02: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
ebe8966c26
feat(dtmm): Add log level option
Closes #12.
2023-04-06 14:54:46 +02:00
a246e5acb6
feat(dtmm): Log to file 2023-04-06 14:49:43 +02:00
7567c41143
fix(dtmm): Fix ANSI color parsing 2023-04-06 13:00:30 +02:00
f337053314 Merge pull request 'Fix creating default config' (#100) from issue/98 into master
Reviewed-on: #100
2023-04-05 21:26:02 +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
01b1428b38
fix(dtmm): Fix updating log view 2023-04-05 14:48:38 +02:00
f30608e6f1
feat(dtmm): Enable colors for regular log lines 2023-04-05 14:48:23 +02:00
c4425f5b6b
fix(dtmm): Trim whitespace in log lines 2023-04-05 13:44:30 +02:00
c7ec318e83
chore(dtmm): Remove debug logs 2023-04-05 13:42:16 +02:00
82e9361e1a
fix(dtmm): Fix creating default config
Fixes #98.
2023-04-05 11:13:41 +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
e460de043a
chore(dtmm): Vendor icons
Closes #86.
2023-03-28 21:34:16 +02:00
dbbfa6c9ae
fix(dtmm): Fix re-creating boot bundle backup 2023-03-28 21:18:24 +02:00
2014c3b187
feat(dtmt): Fail early in mod migration 2023-03-28 20:54:23 +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
e48ef539b1
feat(dtmt): Implement mod migration utility
Closes #87.
2023-03-28 20:52:11 +02:00
0e9903bd6b Merge pull request 'Improve deployment after game update' (#92) from feat/deployment-improvements into master
Reviewed-on: #92
2023-03-28 20:50:27 +02:00
597bc77464
chore: Fix clippy warnings 2023-03-28 20:49:31 +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
4f99fdb5b0
feat(dtmm): Improve error dialog visuals
Closes #62.
2023-03-28 14:45:21 +02:00
ba753cf6bb
feat: Implement static linking, second attempt
This is mostly just the code from the previous attempt. All that was
missing were the `.lib` files to link to on Windows.
2023-03-16 18:09:40 +01:00
6513ee5976
fix(dtmt): Fix parameter being positional
Fixes #77.
2023-03-16 17:53:57 +01: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
281678ae7b Merge pull request 'Disable update check button when there is no API key' (#74) from issue/71 into master
Reviewed-on: #74
2023-03-16 14:28:58 +01:00
b23dd91e17 Merge pull request 'Improve error dialog window' (#75) from issue/70 into master
Reviewed-on: #75
2023-03-16 14:28:35 +01:00
04f76e38e0
feat(dtmm): Improve error dialog window
Druid doesn't yet implement options necessary to create a "standard"
message dialog. So for now, we'll have to approximate that with what
we've got.

Fixes #70.
2023-03-16 11:41:51 +01:00
272f4ef016
fix(dtmm): Prevent logging from causing state changes
The log view itself still works correctly, as it is lensed onto the
field. But ignoring log from general Data comparisons prevents it
generating state changes.

This also removes the log for unknown commands. In practice, missing to
implement a command hasn't been an issue.
2023-03-16 10:00:09 +01:00
705ecd8b59
feat(dtmm): Add tooltip to update button
Fixes #71.
2023-03-16 09:56:27 +01:00
60780656cf
fix(dtmm): Disable update check when there is no API key
Ref: #71.
2023-03-16 09:19:40 +01:00
81a9e068a6
feat(dtmm): Select accent color
As voted, though with rather poor participation.
2023-03-15 21:42:42 +01:00
146714d882
feat(dtmm): Use Nexus mod details when available 2023-03-15 19:46:53 +01:00
6a52f3efc2
feat(dtmm): Improve update icon 2023-03-15 19:37:47 +01:00