788fa40c2a
refactor: Move ini to use QSettings && drop get/setList functions
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2023-04-29 19:55:24 -07:00
dc8109658c
review fixes
...
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com >
2023-02-22 13:20:13 -05:00
256fc322a8
minor cleanup
...
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com >
2023-02-16 12:57:35 -05:00
c07fff7503
switch to qdcss for parsing
...
make it not horrible to look at
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com >
2023-02-12 17:23:15 -05:00
f5f2d33f93
parse nil metadata
...
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com >
2023-02-11 17:46:17 -05:00
29f7ea752f
refactor: make shared_qobject_ptr ctor explicit
...
This turns issues like creating two shared ptrs from a single raw ptr
from popping up at runtime, instead making them a compile error.
Signed-off-by: flow <flowlnlnln@gmail.com >
2023-01-25 16:57:51 -03:00
1a35fec134
Merge pull request #696 from Ryex/import-all-the-things
...
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/581
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/700
2023-01-16 10:04:09 +01:00
ebb0596c1a
fix: don't fail mod parsing when encountering invalid modListVersion
...
The spec (admitely a very old one) states that this entry should always
have the value "2". However, some mods do not follow this convention,
causing issues.
One notable example is the 1.6 version of Aether II for 1.7.10, that has
this value set at "5" for whatever reason.
Signed-off-by: flow <flowlnlnln@gmail.com >
2023-01-13 21:15:10 -03:00
574af2c795
chore: cleanup review suggestions
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2023-01-09 17:18:08 -07:00
03b75bf2a9
feat: Import all the things!
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2023-01-07 15:04:22 -07:00
0ebf04a021
fix newlines
...
Co-authored-by: flow <flowlnlnln@gmail.com >
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-30 10:21:49 -07:00
7f438425aa
refactor: add an identify
function to make easy to reuse
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-29 19:47:19 -07:00
3691f3a296
fix: cleanup and suggested changes
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-26 14:50:15 -07:00
cfce54fe46
fix: update parse tests
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-24 20:43:17 -07:00
a7c9b2f172
feat: validate world saves
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-24 20:43:17 -07:00
eb31a951a1
feat: worldSave parsing and validation
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-24 20:43:01 -07:00
ccfe605920
feat: add shaderpack validation
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-24 15:55:10 -07:00
878614ff68
feat: add a ModUtils::validate
...
moves the reading of mod files into `ModUtils` namespace
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-24 09:42:02 -07:00
64c51a70a3
feat: add initial support for parseing datapacks
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com >
2022-12-24 09:42:02 -07:00
f55fc51e9b
fix: remove commented-out assertions
...
They may not hold true at all times, and that's fine.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-11-20 11:11:08 -03:00
df0f9259c0
refactor: move RP/TP validation to their respective utils
...
This makes it easier to validate individual resources, and allows the
logic to be used in other places in the future, if we need to.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-11-20 11:10:26 -03:00
1f6b8f9d2b
fix instance IDs and resource pack imports
...
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com >
2022-11-19 23:59:30 +08:00
0a04c3a2a7
fix: Fix the error that CodeQL caught
...
Signed-off-by: txtsd <code@ihavea.quest >
2022-11-13 18:54:55 +01:00
76050880f1
fix: use unicode variant for marking '.index' hidden
...
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-11-04 16:53:21 -03:00
ed261f0af9
Update launcher/minecraft/mod/tasks/LocalModParseTask.cpp
...
Co-authored-by: flow <flowlnlnln@gmail.com >
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com >
2022-09-25 20:38:55 +03:00
600c49f7f0
Replaced tomlc99 with tomlplusplus
...
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com >
2022-09-24 00:10:27 +03:00
23fc453fae
fix: comments and naming of texture pack stuff
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net >
2022-09-20 10:26:15 +02:00
07dcefabcb
feat: add texture pack parsing
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net >
2022-09-20 10:26:15 +02:00
c9eb584ac8
fix: prevent deletes by shared pointer accidental creation
...
This fixes the launcher crashing when opening the game :iea:
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-16 20:12:30 -03:00
10493bd44a
fix: move newly allocated resources to the main thread
...
This avoids them getting deleted when the worker thread exits, due to
thread affinity on the created thread.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-16 20:12:30 -03:00
9e35230467
fix: memory leak when getting mods from the mods folder
...
friendly reminder to always delete your news.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-16 20:12:30 -03:00
42c81395b3
fix: race condition on ResourceFolderModel tests
...
This (hopefully) fixes the race contiditions that sometimes got
triggered in tests.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-03 13:37:22 -03:00
3b13e692d2
feat: move resource pack images to QPixmapCache
...
This takes care of evicting entries when the cache gets too big for us,
so we can add new entries without much worries.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-03 13:37:22 -03:00
8a7e117f6b
refactor: move resource pack file parsing utilities to separate namespace
...
This makes it easier to use that logic in other contexts.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-03 13:37:22 -03:00
9b984cedac
feat: add image from pack.png to resource packs
...
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-03 13:37:22 -03:00
f21ae66265
feat: add basic resource pack parsing of pack.mcmeta
...
This parses the pack format ID and the description from the local file,
from both a ZIP and a folder, and hooks it into the model.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-03 13:37:21 -03:00
cda2bfc240
feat: allow specifying factory for resources in BasicFolderLoadTask
...
This allows us to hook our own resource type, that possibly has more
content than the base Resource, to it.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-09-03 13:37:20 -03:00
c3ceefbafb
refactor+fix: add new tests for Resource models and fix issues
...
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-08-20 10:49:23 -03:00
e7cf9932a9
refactor: simplify Mod structure
...
No need to keep track of pointers left and right. A single one already
gives enough headaches!
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-08-20 10:48:51 -03:00
92aa24ae34
fix: don't give shared pointer to obj. external to the model
...
It causes some weird problems and adds refcounting overhead.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-08-20 10:48:00 -03:00
ec62d8e973
refactor: move general code from mod model to its own model
...
This aims to continue decoupling other types of resources (e.g. resource
packs, shader packs, etc) from mods, so that we don't have to
continuously watch our backs for changes to one of them affecting the
others.
To do so, this creates a more general list model for resources, based on
the mods one, that allows you to extend it with functionality for other
resources.
I had to do some template and preprocessor stuff to get around the
QObject limitation of not allowing templated classes, so that's sadge :c
On the other hand, I tried cleaning up most general-purpose code in the
mod model, and added some documentation, because it looks nice :D
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-08-20 10:45:01 -03:00
2f5e55bea0
fix: only remove orphaned metadata on first opening
...
This avoids deleting the metadata while one is updating their mods.
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-08-11 13:11:56 -03:00
31ba1de53b
fix: remove orphaned metadata to avoid problems with auto-updating insts
...
Just as my master has taught me. 🔫
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-08-02 16:15:39 -03:00
54b335711a
fix: raw-pointers and leaks in ModFolderLoadTask
...
Co-authored-by: timoreo <contact@timoreo.fr >
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-07-17 11:56:23 -03:00
c4316e81e6
change: make Mod a QObject used as a pointer
...
Prevents problems when copying it around!
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-07-17 11:33:44 -03:00
fd6755c93f
change: mod metadata improvements
...
- Use slug instead of name
- Keep temporary status before having local details
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-07-17 11:33:43 -03:00
a53ee2e35c
fix: mod parsing of 'String-fied' version (i.e. OpenBlocks)
...
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-07-17 11:33:43 -03:00
91a5c4bdcb
feat: add metadata get/delete via mod id
...
This is, in many cases, more reliable than name comparisons, so it's
useful specially in cases where a mod changes name between versions
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-07-17 11:33:43 -03:00
dfab55112b
feat: remove existing mod when updating/redownloading it
...
Signed-off-by: flow <flowlnlnln@gmail.com >
2022-07-17 11:33:42 -03:00
e6b1a1fa76
Merge pull request #716 from flowln/mod_perma_2
...
Hide index folder on Windows
2022-06-14 23:58:35 +10:00