* 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.
This ports the PDF manual by @catloversg into .md form, so it can be used in-game and via browsing on GitHub.
It also adds MathJax rendering to in-game docs, so that the math formulas can be rendered. (GitHub already supports this natively.)
* Bump electron version to 22.2.1
* Fix npm run electron command (needed the electron-packager-all command which I had removed)
* Improve the npm run format command, no longer floods terminal with all file names
* Updated start command to serve the built version of the game in .app
* Remove some unused commands and unused workflows. Combined the ci and ci-pr workflows.
* Modify check for generated files logic. Attempt to fix so it will edit its own comment instead of posting a new one on every commit.
* Try to fix check for generated files to create a comment on a PR.
* Check for generated files does not count as a failure.
* Lint doesn't fail based on stuff in dist. Prettier and lint no longer use the "diff" version.
* Removed some commands that weren't really used (specific version electron packager commands that require you to have already ran npm run electron to generate .package folder)
`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)
* Updated mathjax and better-react-mathjax
* Removed MathJaxWrapper. Per better-react-mathjax documentation, we were incorrectly including a new context for every equation using this wrapper.
* Wrapped entire game in a MathJaxContext at GameRoot.