* Fix the type declaration of `!!raw-loader!` modules.
Instead of declaring them to export an object with a single key
`default` which is a string, the modules have a default export, which
is a string.
Note, that this doesn't actually change the generated code, just the
types that typescript sees. The code worked before because the only
thing done to the values was to coerce the values to a string, which
turned into a no-op.
* Switch from using `raw-loader` to using a source asset module.
`raw-loader` was deprecated in webpack v5.
* Use Compression Streams API instead of jszip or other libraries.
* Remove usage of base64 in the new binary format.
* Do not convert binary data to string and back. The type of save data is SaveData, it's either string (old base64 format) or Uint8Array (new binary format).
* Proper support for interacting with electron-related code. Electron-related code assumes that save data is in the base64 format.
* Proper support for other tools (DevMenu, pretty-save.js). Full support for DevMenu will be added in a follow-up PR. Check the comments in src\DevMenu\ui\SaveFileDev.tsx for details.
`npm run build` now generates a .app folder with the minimal run files
`npm run electron` now uses the .app contents as a base
deploy-dev.yml should upload just the .app folder after building (not tested yet)
Includes some bug fixes:
* Fix sleeve shock internal/display discrepancy (0-100 vs 0-100)
* Special error message if ns function called without a this
* Change whitespace to pre-wrap for dialog box.
* Fix bug where idle sleeves do not consume cycles but still recover shock from those cycles. Now they do not recover during idle.
* attempted to tag commit as v2.2.0
Replaces the `npm run allbuild` script with the `npm version` command.
It creates a new commit with a standardized message & includes the built
app.
Usage: `npm version [patch | minor | version | 10.0.0 | etc]`
Will update the package.json & perform a bunch of steps in a row:
- Runs `npm install` in:
- The root directory
- The ./electron/ directory
- The ./tools/bump-version/ directory
- Runs `npm run test`
- Update the version string in:
- ./electron/package.json (version)
- ./src/Constants.ts (VersionString)
- ./doc/source/conf.py (version & release)
- Runs `npm run doc` (build the markdown documentation)
- Runs `npm run build` (production build)
- Runs `npm run electron` (electron build)
- Runs `git add --all`
- Runs `git push -u origin dev && git push --tags`
This includes a tool to update the various files in the repo that need
to change when a version increments.
It also includes a workflow to trigger the action manually, passing it a
version & a changelog url. It'll update the values, build the app, build
the doc, make a commit in a branch, and create a pull request to merge
this stuff back into dev.
Rewrote the changelog script to use primarily merged pull requests
between "commit A" and "commit B".
It uses the GitHub rest api. The resulting data is pushed to a draft gist.
Manual usage is in the README.
Also adds a GitHub workflow action to run the tool on demand, through
the GitHub action's interface.
- Add a script to generate achievement data from Steamworks API
- Add achievements page with a link in sidebar
- Calculate achievements (1/min) with an engine counter
- Store achievements with a timestamp on unlocked in the PlayerObject
- Add a script to generate monochrome icons from Steam icons
- Add toast when unlocking an achievement