Yawn-Wider / YWPolarisVore

The ss13 codebase used by the Yawn Wider, based on VORE which is based on Polaris.
Other
13 stars 61 forks source link

Monty/character export #1426

Closed Montessquio closed 4 months ago

Montessquio commented 4 months ago

This PR leverages the merged in rust-g#1 to provide a button on the character setup screen that allows players to export their entire player save, including user preferences and all character slots, to a JSON file which they can then download.

Included in this PR are the compiled rust-g binaries for both platforms from the above linked repo, as well as the new rust_g_yw.dm file it creates so as not to mess with upstream's custom handwritten rust_g.dm.

This implementation creates no temp files on the host disk, it's all handled by a dynamic javascript blob, so there shouldn't be any issues with filesystem security on that end.

Incidentally it also led to the creation of a breakout code/modules/client/preferences_yw.dm to house this change and future additions to the core preferences file.

Player confirmation dialog: image

Internet Explorer download windows: image

The backup window that allows people to copy-paste their save in case the auto download fails: image