stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Simple Mod Manager

  • 2 Devlogs
  • 7 Total hours

A simple mod for toggling off and on mods, resource packs, and shaders, without touching the file system.

Open comments for this post

4h 13m 22s logged

I finished the screen class rendering the actual projects. This was mostly just trial and error, which is why it took so long, but now, I have a basic layout which I can expand upon. There are still a few issues with the image downloading, so I will have to fix that, but so far the actual project information getting pipeline seems to be flawless. I also created the detailed project widget, and made pseudocode for the rendering of it, however it is not fully implemented. Since the individual project pages will be a simple get request from the Modrinth API, it the detailed widget will just be constructing a different URL to perform the get request (as I will not be using the ‘search?’ part of the API). I am also planning to add Curseforge support, but that will only be done once the full Modrinth pipeline is done. I will likely commit the code tomorrow, as right now I am experiencing issues with committing to a different branch in GitHub, as I don’t want to commit to main, since that is only for releases.

0
0
15
Open comments for this post

2h 52m 7s logged

Simple Mod Manager is a lightweight utility that allows players to easily enable, disable, and manage their installed mods without manually moving files. For Stardance, I am trying to add the two most complicated features-creating an in game mod, resourcepack, and shader downloader, as well as a mod hot-swap to update mods in real time to avoid a full game restart. These will be difficult to perfect mostly because I have barely any experience in JVM class loading, and I have done little to no work with file downloading. Before Stardance, I had planned to make a separate mod called ModGuard with these things added, however I realized there wasn’t many features to add to it, and since I already had a decent user base to Simple Mod Manager, I decided to merge the two instead, so that users wouldn’t ever have to leave the game, or even restart it when installing any modifications (super helpful for modpack creators and streamlining the creation process)!

1. Download System:

I fixed the download pipeline. For whatever reason, before fetching stuff from the api wasn’t working, and today I fixed that. It came down to a mix of a few issues both involving my internet connection, as well as a broken enum.toString() method getting called, which caused a crash. The old download system also didn’t support resourcepacks and shaders, so I added a few fields to the widget class, and made an enum to represent that (ProjectType). Now whenever fetching from the API, I must specify the type which I am getting (e.g. ProjectType.MOD), and it will filter for mods in the facets. After that was done and tested, I had the whole pipeline for downloading done, meaning I just needed something to represent the mods.

2. Screen System:

I made a screen which had the facet buttons, project widgets, search bar, and tab bar. Since these were all stored inside of ArrayLists, I would only have to call the render method for each button within a for loop, making the rendering process super easy. After getting that to work, I added a few background containers, as well as a method to auto detect when a button/search query was changed and fetch the project details for the user. Now I just have to add automatic scrolling detection which will automatically call the API when I am out of projects to see. In order to avoid overlap, I will use the offset and limiters inside the Modrinth API query to skip the first set of mods which the user already saw, and then display the next set, by simply adding them to the ArrayList..

Next Steps:

After I add those small features, the next step will be to extend the project widget class in order to make a more detailed version for when you actually click on the project to download it.

0
0
12

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…