Age | Commit message (Collapse) | Author |
|
We set the Electron path `userData` to the system's cache folder, as
this is the same path Electron stores cache files in, and its normally
set to the system config folder, obviously not ideal.
However, when changing, we do as such quite late in the startup process
leading to some things (notably the variable used to store where we
download the Northstar archive to), using the older value.
Now its one of the first things we do on startup, fixing that.
|
|
I intended to do this when creating src/win.js, but wanted it to be in a
different commit, as that commit made pretty large changes as well.
So no more `main_win`, `win_show` and confusion between what `win` is.
|
|
I've not been able to find anything that breaks from this, as I've gone
through every IPC event that got moved, to ensure it still functions,
and all the breakage I found has since been fixed.
IPC events that dont fit in any particular module is also now in the new
file named `src/app/modules/ipc.js`
There's also another module `src/win.js`, which lets you get the
`BrowserWindow` outside of `src/index.js`
I also took the oppertunity to clean up some of the code when moving it
around, and adding a couple comments, as some of it was quite horrid.
|
|
This fixes a couple issues where the main process wouldn't actually get
changes made to the settings, this fixes that.
On top of this, changing settings is now done with `settings.set()`
There shouldn't be any breakage from this change, but I suppose it is
possible. Especially because the `settings()` function still does
contain backup options set, meaning `settings.nsargs` is technically
still valid, but dont expect it to actually be updated when that
variable is changed, its merely here to avoid any problems.
|
|
|
|
Its now been split into 2, requests.js and releases.js, the latter
simply gets relevant info from GitHub release pages. The prior however
gives simple functions for doing `GET` requests, and caching the result,
and then transparently it'll use that cache when you request it next
time. On top of this, some requests made by the renderer will now also
use this, and this in turn ends up making loading the mod browser much
faster. As instead of having to request the list of packages from
Thunderstore, we can simply load the result of an old request.
The current lifetime of the cache is 5 minutes, however this can also
easily be adjusted.
This also moves the cached requests away from
<cache_folder>/viper-requests.json, and over to
<cache_folder>/Viper/cached-requests.json
|
|
I will likely add more buttons in the future, but for now this is most
of the ones a user could need to repair problems.
|
|
We now show an alert if the gamepath is detected to be missing
read/write perms, both when selecting the gamepath initially, when it
gets auto detected, but also after it's selected, passively.
|
|
Most of these are from back when Viper was originally started, I also
removed a few keys as they were no longer in use, but were forgotten
about, most of these are from pre-v1.0.0 aka, the old smaller UI
|
|
|
|
If the main process has changes to the settings, said settings will now
also be sent to the renderer, making them synchronized.
|
|
Now they simply have the red color instead.
|
|
|
|
Far prettier, and far more useful at a glance.
|
|
Install toasts, installing overall, dependencies and so forth, all seem to be fully functional, however more bug testing is probably required to concluce whether that is actually the case or not...
This also doesn't break `src/modules/mods.js`, i.e dragging mods in to
manually install them still functions the same as always.
|
|
I may or may not have missed some properties or something somewhere,
perhaps we'll see if something ends up broken in the future...
|
|
This is missing a lot of things, notably support for detecting and
installing dependencies, it also is actually being used by the frontend,
that still uses `mods.js`, this'll change soon™️
It should also when done, be capable of removing mods installed in the
old `mods/` folder when updating those mods, and then installing in the
new `packages/` folder, making the upgrade a smooth ride.
|
|
This should've already been a thing, and was a thing for when the game
was currently launching, but this functionality seems to have been
broken at some point.
|
|
win.alert() now has a Promise return value, which'll allow you to wait
until an alert has been closed before continuing code execution.
win.confirm() was also added it's the same as win.alert() except it runs
confirm() in the renderer instead of alert(), and has a return boolean
in the Promise resolve callback. This boolean being whether the user
confirmed the action or not.
|
|
|
|
I'd managed to forget to change some function calls to their new
modularized versions, that's now fixed.
|
|
This also fixes is_running not quite working on Linux
|
|
Notably, winLog() and winAlert() are now win.log() and win.alert()
inside modules/window.js.
updateViper(), updateNorthstar and handleNorthstarUpdating() are now
update.viper(), update.northstar() and update.northstar_autoupdate(),
inside modules/update.js
isGameRunning() and isOriginRunning() are now is_running.origin() and
is_running.game() inside modules/is_running.js, along with a
.titanfall() and .northstar() for more specificity. Not used anywhere
right now, but may in the future be used.
setpath() and gamepathExists() are now gamepath.set() and
gamepath.exists() inside modules/gamepath.js
killOrigin() are now kill.origin() inside modules/kill.js
setlang() is now just inlined into the only event where it's used.
|
|
Both getTF2Version() and getNSVersion() are now in version.js
|
|
|
|
|
|
The reasoning behind this is obvious, I overall would like to make
utils.js far smaller, and if not get entirely rid of it.
|
|
|
|
This doesn't entirely uphold support, as it doesn't use the author file
for anything, however it does write it as intended.
|
|
|
|
When JavaScript errors occur outside of the renderer, they'll no longer
display a big and confusingly detailed error stack, now they'll simply
be shown a toast about the fact that an error happened.
The user can then click this to get more details, but still without it
being as invasive and obtuse as before.
|
|
If a mod has multiple mod folders inside it, however all with the same
name, they'll be merged together, this now fixes that, by adding
"(dupe)" to the end of it, along with displaying an error, however it
will install successfully.
This also happens to add some duplicate toast protection, however this
should be reworked, but I am not bothered to deal with it right now, and
I instead will be putting this on future me.
|
|
Some functions have been renamed:
update() -> updateNorthstar()
updatevp() -> updateViper()
Overall these are far better function names...
|
|
|
|
I removed the underscore at one point and forgot to change the name
everywhere it seems.
|
|
Mostly syntax, but also a few fixes with how the settings system work,
and also a change in localization strings.
|
|
missed a few
one last one
|
|
|
|
Quite a lot of them aren't in the same syntax/style, and it's quite bad
to look at, this should fix them all without causing issues.
|
|
|
|
I know, commas aren't needed, however, going in and out of using commas
and not using them also looks bad, so generally I try to always use
them, with exceptions.
|
|
Instead of opening your normal web browser you can now just open the
page inside Viper, many changes aren't finished yet, notably the
webview.css file.
At some point I'll split the main.css into more files so the folder
makes sense even though there's currently only one file in there.
|
|
Essentially just validates the config file and then prompts you about
it, it allows you to reset it directly or just to exit and let yourself
fix it. And because the error message appears directly in the renderer
we have access to navigator.language, and can therefore still localize
the string. However! We can't actually care if the user has disabled
auto detection of their language, since... y'know, the config file where
that's stored isn't able to be read properly.
And so I added an argument to lang(), which allows you to force it to
use a specific language if that language is available, if not it
defaults back to English.
|
|
When Viper starts up it'll check to make sure the gamepath still exists,
and throws errors if not, it also redirects you to the first page (the
one where you can set the gamepath), and gives you an informative error.
This could happen because the user unmounted the drive the gamepath is
on, or it could happen if the user moved their game location.
|
|
This overwrites viper.json and disables Viper updates, this is useful
when repackaging Viper for other formats we don't already support.
|
|
When #87 was merged an unnoticed problem slipped in where if Viper was
running in a version that did not support auto-updates we would never
auto-update Northstar. Now that's fixed, and the nsupdate option is
completely implemented.
I also took the liberty of removing the auto-update option in the
settings page if Viper can't auto-update anyway, as it's useless if
that's not possible.
|
|
Albeit with some caveats, due to the way electron-updater is setup, if
you're not on a version of Viper which supports auto-updates the event
which runs the NS Updater code will never be run, and hence it'll never
auto-update. This was also an issue before, but I only noticed it now.
|
|
It actually saves settings, loads them properly and everything...
|
|
This was due to me testing something, not actually supposed to be in
release builds...
|
|
Since apparently dragleave and dragenter don't quite work as intended we
have to resort to this obscure method which should work just fine on the
user's end.
|