mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-11-05 17:46:21 +00:00
c0643fadca
Historically we've used copy-cat to provide a web-based emulator for running example code on our documentation site. However, copy-cat is often out-of-date with CC:T, which means example snippets fail when you try to run them! This commit vendors in copy-cat (or rather an updated version of it) into CC:T itself, allowing us to ensure the emulator is always in sync with the mod. While the ARCHITECTURE.md documentation goes into a little bit more detail here, the general implementation is as follows - In project/src/main we implement the core of the emulator. This includes a basic reimplementation of some of CC's classes to work on the web (mostly the HTTP API and ComputerThread), and some additional code to expose the computers to Javascript. - This is all then compiled to Javascript using [TeaVM][1] (we actually use a [personal fork of it][2] as there's a couple of changes I've not upstreamed yet). - The Javascript side then pulls in the these compiled classes (and the CC ROM) and hooks them up to [cc-web-term][3] to display the actual computer. - As we're no longer pulling in copy-cat, we can simplify our bundling system a little - we now just compile to ESM modules directly. [1]: https://github.com/konsoletyper/teavm [2]: https://github.com/SquidDev/teavm/tree/squid-patches [3]: https://github.com/squiddev-cc/cc-web-term
31 lines
806 B
JSON
31 lines
806 B
JSON
{
|
|
"name": "tweaked.cc",
|
|
"version": "1.0.0",
|
|
"description": "Website additions for tweaked.cc",
|
|
"author": "SquidDev",
|
|
"license": "BSD-3-Clause",
|
|
"type": "module",
|
|
"dependencies": {
|
|
"@squid-dev/cc-web-term": "^2.0.0",
|
|
"preact": "^10.5.5",
|
|
"setimmediate": "^1.0.5",
|
|
"tslib": "^2.0.3"
|
|
},
|
|
"devDependencies": {
|
|
"@rollup/plugin-node-resolve": "^15.2.1",
|
|
"@rollup/plugin-terser": "^0.4.3",
|
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
"@rollup/plugin-url": "^8.0.1",
|
|
"@types/glob": "^8.1.0",
|
|
"glob": "^10.3.4",
|
|
"preact-render-to-string": "^6.2.1",
|
|
"rehype": "^13.0.0",
|
|
"rehype-highlight": "^7.0.0",
|
|
"rehype-react": "^8.0.0",
|
|
"rollup": "^3.19.1",
|
|
"rollup-plugin-postcss": "^4.0.2",
|
|
"tsx": "^3.12.10",
|
|
"typescript": "^5.2.2"
|
|
}
|
|
}
|