Commit graph

371 commits

Author SHA1 Message Date
560e5496bc
feat(dtmm): Implement importing mod archives 2023-02-20 16:39:13 +01:00
a81fb7c021
chore: Update lib/serde_sjson 2023-02-20 16:39:10 +01:00
4b7f12e487
refactor(dtmm): Use commands instead of notifications 2023-02-18 10:59:21 +01:00
b8804409a3
chore: Update crates 2023-02-18 10:46:05 +01:00
e65579d8aa
feat(dtmm): Implement rudimentary mod deployment 2023-02-18 10:20:10 +01:00
cb9f154f1e
fix(sdk): Fix lua file compilation
Aussiemon provided the last missing piece of information about the
binary format.
2023-02-18 10:18:53 +01:00
2cda35032c
feat(dtmm): Implement rudimentary mod managing UI 2023-02-17 23:06:10 +01:00
8b2ca0e45a
feat(dtmm): Improve logging output format 2023-02-17 23:00:18 +01:00
16bfe88101
feat(sdk): Link LuaJIT for bytecode compilation
This removes the LuaJIT binary as a runtime dependency and decreases
the complexity of the compilation, by not needing to juggle a bunch of
temp files anymore.

However, it was a bit of a pain to get everything set up in the end.

Closes #4.
2023-02-17 22:56:47 +01:00
df06182ca0
fix(sdk): Fix file header binary format
The file header format is a bit more complex than I first realized,
especially around when a path to `data/` is included, and which size
field determines its file name length.
2023-02-17 22:51:48 +01:00
110108004d
fix(dtmt): Fix dictionary lookup for all groups
Rather than checking all groups, when no cli flag was given, no groups
were checked.
2023-02-17 22:51:47 +01:00
036c20bd8c
feat(lib): Implement IdString type
This type is similar to an `Either` between a `Murmur64` hash and a
`String`. This is necessary to be able to retain hash information where
the hash is not in the dictionary, but at the same time allow string
names where they are available.

Up until now, when reading a bundle, all hashes would be converted to
strings, which made sense for displaying those names. But when writing
the same bundle back, those strings ended up being re-hashed, resulting
in incorrect hashes.
2023-02-17 22:51:46 +01:00
1d08498131
feat(dtmt): Add command to print the dictionary
This is mostly helpful to check/debug whether the internal dictionary
actually contains the expected data. For manually looking through the
entire dictionary, opening the CSV file is still more convenient.
2023-02-17 22:51:46 +01:00
9077d791b2
feat(sdk): Implement file properties 2023-02-17 22:51:45 +01:00
6b01511d22
refactor(main_window): Combine window size into one variable 2023-02-08 14:40:55 +01:00
073a91d788
bug(sdk): Fix type conversion recursion
The compiler doesn't complain about this, so I assumed it
was able to correctly resolve a conversion
`BundleFileType` -> `Murmur64` via their shared `From` impl: `u64`.

But it appears that is not the case, and the simple `t.into()` just
calls itself. So I need to do the conversion via the intermediary value
manually.
2023-02-08 14:40:54 +01:00
61b3a07666
feat(sdk): Implement bundle database handling 2023-02-08 14:40:51 +01:00
204ce1e163
feat(dtmm): Create initial mod manager window 2023-02-08 14:40:49 +01:00
9f84340b73
refactor: Extract Oodle into separate library
The library utilizes an internal global singleton to allow
using the functions without having to lug around an instance of
`libloading::Library`.
2023-02-08 14:33:47 +01:00
5eebced362
bug: Fix building 2023-01-17 11:09:02 +01:00
5ce35f2014
refactor: Improve conversions between murmur hashes and primitives 2023-01-08 15:34:35 +01:00
96c9da16de
bug: Fix package test 2023-01-08 15:33:53 +01:00
3b7abe02bf
feat: Implement command to create mod project from template 2023-01-07 21:53:56 +01:00
f61fab4257
feat: Implement building mod bundles 2023-01-07 21:27:26 +01:00
56bcbd8648
feat: Implement initial bundle building
For now, only empty bundles can be created, though.
2023-01-07 16:20:26 +01:00
0811f47ae2
bug: Fix reading bundle properties
Clippy's suggestion failed me, as `slice::take` only yields _at most_
the given number of elements, but `Vec::with_capacity` doesn't resize
in a way that it would yield `capacity` elements.
2023-01-07 16:19:01 +01:00
db7790ec5b
refactor: Properly handle unknown field 2023-01-06 18:55:55 +01:00
0441a0d932
feat: Recognize bundle properties
Ref: #3.
2023-01-06 18:54:33 +01:00
385e1f98e2
bug: Fix tracing spans not being entered 2023-01-06 13:32:58 +01:00
20c0382c22
refactor: Make operations on binary data sync
There is no benefit from making all operations on binary data read
in small, async steps directly from the file.
Since we know file sizes beforehand, it's less complex to read
the entire data blob into memory once, then operate on that
synchronously.
2023-01-06 13:30:18 +01:00
fddf8fcbbd
refactor: Remove synchronization for context parameter
The context is only written to during initial setup. After that
it is only ever read, so no synchronization is necessary.
2023-01-04 10:40:25 +01:00
96b29a3d2b
doc: Improve README wording 2023-01-01 23:47:53 +01:00
2c34d98193
feat: Show status when adding dictionary entries 2023-01-01 18:54:09 +01:00
61a80f71a7
docs: Add quick start information to README 2023-01-01 11:38:29 +01:00
95aa145569
version: v0.2.0 2022-12-28 19:59:10 +01:00
9806013d68
fix: Fix decompiling strings files with Unicode 2022-12-28 19:50:22 +01:00
3913684898
refactor: Apply clippy suggestion 2022-12-28 19:44:27 +01:00
c2ed9275b0
fix: Decompression doesn't work for some bundles
It seems that with the new bundle format, chunks are stored uncompressed
when their compressed size equals the chunk size.
2022-12-28 19:44:23 +01:00
2219f4fab3
feat: Implement decompilation for strings file type 2022-12-28 18:30:11 +01:00
5cc97959a5
feat: Improve error output during extraction 2022-12-28 18:29:26 +01:00
b8b4802cd9
version: dtmt v0.1.2 2022-12-28 18:29:09 +01:00
cfb73fbb00
version: sdk v0.1.2 2022-12-28 13:15:03 +01:00
97b824176f
refactor: Add a few spans for error reporting 2022-12-28 13:14:21 +01:00
1c27224221
feat: Implement new bundle format 2022-12-28 13:10:54 +01:00
aa9277c394
version: v0.1.1 2022-12-11 12:11:59 +01:00
be1ce0dcf0
refactor: Apply clippy suggestions 2022-12-11 12:10:02 +01:00
f94a8c8731
feat: Handle file variants 2022-12-11 12:09:31 +01:00
764d9c00f2
feat: Implement murmur hash command 2022-12-10 19:28:49 +01:00
a4c6ba731a
feat: Add config file 2022-12-10 17:12:23 +01:00
28aacf9d58
refactor: Apply clippy suggestions 2022-12-10 12:43:36 +01:00