From f96673bc1789068d4bbbeb7cf6dbc406045171f1 Mon Sep 17 00:00:00 2001 From: Vitaly Date: Sat, 8 Feb 2025 14:17:27 +0300 Subject: [PATCH] rename prismarine-viewer dir to renderer to avoid confusion (#269) --- .github/workflows/next-deploy.yml | 18 ++- .github/workflows/preview.yml | 2 +- .github/workflows/publish.yml | 2 +- CONTRIBUTING.md | 14 +- Dockerfile | 2 +- cypress/e2e/{index.spec.ts => smoke.spec.ts} | 0 package.json | 10 +- pnpm-lock.yaml | 16 +-- pnpm-workspace.yaml | 4 +- prismarine-viewer/README.MD | 5 + {prismarine-viewer => renderer}/.npmrc | 0 .../buildMesherConfig.mjs | 0 .../buildMesherWorker.mjs | 0 {prismarine-viewer => renderer}/package.json | 4 +- .../playground.html | 0 .../playground}/baseScene.ts | 11 ++ .../playground}/playground.ts | 0 .../playground}/playgroundUi.tsx | 0 .../playground}/scenes/entities.ts | 0 .../playground}/scenes/floorRandom.ts | 0 .../playground}/scenes/frequentUpdates.ts | 0 .../playground}/scenes/index.ts | 0 .../playground}/scenes/lightingStarfield.ts | 0 .../playground}/scenes/main.ts | 2 +- .../playground}/scenes/railsCobweb.ts | 0 .../playground}/scenes/rotationIssue.ts | 0 .../playground}/scenes/slabsOptimization.ts | 0 .../playground}/scenes/transparencyIssue.ts | 0 .../playground}/shared.ts | 0 .../rsbuild.config.ts | 2 +- .../rsbuildSharedConfig.ts | 0 .../viewer/.gitignore | 0 .../viewer/index.js | 0 .../viewer/lib/cleanupDecorator.ts | 0 .../viewer/lib/entities.ts | 0 .../viewer/lib/entity/EntityMesh.ts | 1 + .../viewer/lib/entity/animations.js | 0 .../viewer/lib/entity/armorModels.json | 0 .../viewer/lib/entity/armorModels.ts | 0 .../viewer/lib/entity/entities.json | 0 .../viewer/lib/entity/exportedModels.js | 0 .../viewer/lib/entity/externalTextures.json | 0 .../viewer/lib/entity/models/allay.obj | 0 .../viewer/lib/entity/models/axolotl.obj | 0 .../viewer/lib/entity/models/blaze.obj | 0 .../viewer/lib/entity/models/boat.obj | 0 .../viewer/lib/entity/models/camel.obj | 0 .../viewer/lib/entity/models/cat.obj | 0 .../viewer/lib/entity/models/chicken.obj | 0 .../viewer/lib/entity/models/cod.obj | 0 .../viewer/lib/entity/models/creeper.obj | 0 .../viewer/lib/entity/models/dolphin.obj | 0 .../viewer/lib/entity/models/ender_dragon.obj | 0 .../viewer/lib/entity/models/enderman.obj | 0 .../viewer/lib/entity/models/endermite.obj | 0 .../viewer/lib/entity/models/fox.obj | 0 .../viewer/lib/entity/models/frog.obj | 0 .../viewer/lib/entity/models/ghast.obj | 0 .../viewer/lib/entity/models/goat.obj | 0 .../viewer/lib/entity/models/guardian.obj | 0 .../viewer/lib/entity/models/horse.obj | 0 .../viewer/lib/entity/models/llama.obj | 0 .../viewer/lib/entity/models/minecart.obj | 0 .../viewer/lib/entity/models/parrot.obj | 0 .../viewer/lib/entity/models/piglin.obj | 0 .../viewer/lib/entity/models/pillager.obj | 0 .../viewer/lib/entity/models/rabbit.obj | 0 .../viewer/lib/entity/models/sheep.obj | 0 .../viewer/lib/entity/models/shulker.obj | 0 .../viewer/lib/entity/models/sniffer.obj | 0 .../viewer/lib/entity/models/spider.obj | 0 .../viewer/lib/entity/models/tadpole.obj | 0 .../viewer/lib/entity/models/turtle.obj | 0 .../viewer/lib/entity/models/vex.obj | 0 .../viewer/lib/entity/models/villager.obj | 0 .../viewer/lib/entity/models/warden.obj | 0 .../viewer/lib/entity/models/witch.obj | 0 .../viewer/lib/entity/models/wolf.obj | 0 .../viewer/lib/entity/models/zombie.obj | 0 .../lib/entity/models/zombie_villager.obj | 0 .../viewer/lib/entity/objModels.js | 0 .../viewer/lib/hand.ts | 0 .../viewer/lib/holdingBlock.ts | 0 .../viewer/lib/mesher/mesher.ts | 0 .../viewer/lib/mesher/models.ts | 2 +- .../viewer/lib/mesher/modelsGeometryCommon.ts | 0 .../viewer/lib/mesher/shared.ts | 2 +- .../viewer/lib/mesher/standaloneRenderer.ts | 0 .../viewer/lib/mesher/test/mesherTester.ts | 0 .../viewer/lib/mesher/test/playground.ts | 0 .../viewer/lib/mesher/test/tests.test.ts | 0 .../viewer/lib/mesher/world.ts | 0 .../viewer/lib/mesher/worldConstants.ts | 0 .../viewer/lib/moreBlockDataGenerated.json | 0 .../viewer/lib/primitives.js | 0 .../viewer/lib/renderUtils.js | 0 .../viewer/lib/simpleUtils.ts | 0 .../viewer/lib/threeJsUtils.ts | 0 .../viewer/lib/ui/newStats.ts | 0 .../viewer/lib/utils.electron.js | 0 .../viewer/lib/utils.js | 0 .../viewer/lib/utils.web.js | 0 .../viewer/lib/viewer.ts | 0 .../viewer/lib/viewerWrapper.ts | 0 .../viewer/lib/workerProxy.ts | 0 .../viewer/lib/worldDataEmitter.ts | 2 +- .../viewer/lib/worldrendererCommon.ts | 0 .../viewer/lib/worldrendererThree.ts | 0 .../viewer/prepare/utils.ts | 0 .../viewer/sign-renderer/index.html | 0 .../viewer/sign-renderer/index.ts | 0 .../viewer/sign-renderer/noop.js | 0 .../viewer/sign-renderer/package.json | 0 .../viewer/sign-renderer/playground.ts | 0 .../viewer/sign-renderer/tests.test.ts | 0 .../viewer/sign-renderer/vite.config.ts | 0 rsbuild.config.ts | 10 +- scripts/build.js | 2 +- scripts/buildNpmReact.ts | 2 +- scripts/dockerPrepare.mjs | 4 +- src/botUtils.ts | 2 +- src/chatUtils.ts | 4 +- src/connect.ts | 2 +- src/devReload.ts | 4 +- src/devtools.ts | 2 +- src/entities.ts | 2 +- src/globals.d.ts | 4 +- src/googledrive.ts | 2 +- src/index.ts | 10 +- src/inventoryWindows.ts | 2 +- src/loadSave.ts | 2 +- src/optimizeJson.ts | 2 +- src/optionsGuiScheme.tsx | 2 +- src/panorama.ts | 4 +- src/react/AppStatusProvider.tsx | 9 +- src/react/BookProvider.tsx | 2 +- src/react/ChatProvider.tsx | 2 +- src/react/DiscordButton.tsx | 2 +- src/react/Input.tsx | 2 +- src/react/MainMenu.tsx | 2 +- src/react/MessageFormatted.tsx | 2 +- src/react/MinimapProvider.tsx | 6 +- src/react/ModuleSignsViewer.tsx | 2 +- src/react/PauseScreen.tsx | 2 +- src/react/ServersListProvider.tsx | 120 +----------------- src/react/SingleplayerProvider.tsx | 2 +- src/react/serversStorage.ts | 115 +++++++++++++++++ src/resourcePack.ts | 2 +- src/shims/minecraftData.ts | 2 +- src/sounds/botSoundSystem.ts | 4 +- src/sounds/soundsMap.ts | 2 +- src/watchOptions.ts | 4 +- tsconfig.json | 4 +- vitest.config.ts | 2 +- 154 files changed, 239 insertions(+), 210 deletions(-) rename cypress/e2e/{index.spec.ts => smoke.spec.ts} (100%) create mode 100644 prismarine-viewer/README.MD rename {prismarine-viewer => renderer}/.npmrc (100%) rename {prismarine-viewer => renderer}/buildMesherConfig.mjs (100%) rename {prismarine-viewer => renderer}/buildMesherWorker.mjs (100%) rename {prismarine-viewer => renderer}/package.json (93%) rename {prismarine-viewer => renderer}/playground.html (100%) rename {prismarine-viewer/examples => renderer/playground}/baseScene.ts (97%) rename {prismarine-viewer/examples => renderer/playground}/playground.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/playgroundUi.tsx (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/entities.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/floorRandom.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/frequentUpdates.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/index.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/lightingStarfield.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/main.ts (99%) rename {prismarine-viewer/examples => renderer/playground}/scenes/railsCobweb.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/rotationIssue.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/slabsOptimization.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/scenes/transparencyIssue.ts (100%) rename {prismarine-viewer/examples => renderer/playground}/shared.ts (100%) rename {prismarine-viewer => renderer}/rsbuild.config.ts (94%) rename {prismarine-viewer => renderer}/rsbuildSharedConfig.ts (100%) rename {prismarine-viewer => renderer}/viewer/.gitignore (100%) rename {prismarine-viewer => renderer}/viewer/index.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/cleanupDecorator.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/entities.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/EntityMesh.ts (99%) rename {prismarine-viewer => renderer}/viewer/lib/entity/animations.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/armorModels.json (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/armorModels.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/entities.json (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/exportedModels.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/externalTextures.json (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/allay.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/axolotl.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/blaze.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/boat.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/camel.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/cat.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/chicken.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/cod.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/creeper.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/dolphin.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/ender_dragon.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/enderman.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/endermite.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/fox.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/frog.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/ghast.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/goat.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/guardian.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/horse.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/llama.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/minecart.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/parrot.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/piglin.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/pillager.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/rabbit.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/sheep.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/shulker.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/sniffer.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/spider.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/tadpole.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/turtle.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/vex.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/villager.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/warden.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/witch.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/wolf.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/zombie.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/models/zombie_villager.obj (100%) rename {prismarine-viewer => renderer}/viewer/lib/entity/objModels.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/hand.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/holdingBlock.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/mesher.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/models.ts (99%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/modelsGeometryCommon.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/shared.ts (94%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/standaloneRenderer.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/test/mesherTester.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/test/playground.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/test/tests.test.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/world.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/mesher/worldConstants.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/moreBlockDataGenerated.json (100%) rename {prismarine-viewer => renderer}/viewer/lib/primitives.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/renderUtils.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/simpleUtils.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/threeJsUtils.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/ui/newStats.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/utils.electron.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/utils.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/utils.web.js (100%) rename {prismarine-viewer => renderer}/viewer/lib/viewer.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/viewerWrapper.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/workerProxy.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/worldDataEmitter.ts (99%) rename {prismarine-viewer => renderer}/viewer/lib/worldrendererCommon.ts (100%) rename {prismarine-viewer => renderer}/viewer/lib/worldrendererThree.ts (100%) rename {prismarine-viewer => renderer}/viewer/prepare/utils.ts (100%) rename {prismarine-viewer => renderer}/viewer/sign-renderer/index.html (100%) rename {prismarine-viewer => renderer}/viewer/sign-renderer/index.ts (100%) rename {prismarine-viewer => renderer}/viewer/sign-renderer/noop.js (100%) rename {prismarine-viewer => renderer}/viewer/sign-renderer/package.json (100%) rename {prismarine-viewer => renderer}/viewer/sign-renderer/playground.ts (100%) rename {prismarine-viewer => renderer}/viewer/sign-renderer/tests.test.ts (100%) rename {prismarine-viewer => renderer}/viewer/sign-renderer/vite.config.ts (100%) create mode 100644 src/react/serversStorage.ts diff --git a/.github/workflows/next-deploy.yml b/.github/workflows/next-deploy.yml index 2fd3be09..0856285c 100644 --- a/.github/workflows/next-deploy.yml +++ b/.github/workflows/next-deploy.yml @@ -23,6 +23,8 @@ jobs: uses: pnpm/action-setup@v4 - name: Install Global Dependencies run: pnpm add -g vercel + - name: Install Dependencies + run: pnpm install - name: Pull Vercel Environment Information run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} - name: Write Release Info @@ -35,7 +37,7 @@ jobs: run: | mkdir -p .vercel/output/static/playground pnpm build-playground - cp -r prismarine-viewer/dist/* .vercel/output/static/playground/ + cp -r renderer/dist/* .vercel/output/static/playground/ - name: Download Generated Sounds map run: node scripts/downloadSoundsMap.mjs - name: Deploy Project Artifacts to Vercel @@ -43,6 +45,20 @@ jobs: with: run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} id: deploy + - name: Start servers for testing + run: | + nohup pnpm prod-start & + nohup pnpm test-mc-server & + - name: Run Cypress smoke tests + uses: cypress-io/github-action@v5 + with: + install: false + spec: cypress/e2e/smoke.spec.ts + - uses: actions/upload-artifact@v4 + if: failure() + with: + name: cypress-smoke-test-screenshots + path: cypress/screenshots/ - name: Set deployment aliases run: | for alias in $(echo ${{ secrets.TEST_PREVIEW_DOMAIN }} | tr "," "\n"); do diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 331ce62e..9386276f 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -66,7 +66,7 @@ jobs: run: | mkdir -p .vercel/output/static/playground pnpm build-playground - cp -r prismarine-viewer/dist/* .vercel/output/static/playground/ + cp -r renderer/dist/* .vercel/output/static/playground/ - name: Write pr redirect index.html run: | mkdir -p .vercel/output/static/pr diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 94c3c8f3..ce7f56b9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,7 +35,7 @@ jobs: run: | mkdir -p .vercel/output/static/playground pnpm build-playground - cp -r prismarine-viewer/dist/* .vercel/output/static/playground/ + cp -r renderer/dist/* .vercel/output/static/playground/ - name: Download Generated Sounds map run: node scripts/downloadSoundsMap.mjs - name: Deploy Project to Vercel diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 02f6957e..fb0ae55e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -31,11 +31,11 @@ Paths: - `src` - main app source code - `src/react` - React components - almost all UI is in this folder. Almost every component has its base (reused in app and storybook) and `Provider` - which is a component that provides context to its children. Consider looking at DeathScreen component to see how it's used. -### Renderer: Playground & Mesher (`prismarine-viewer`) +### Renderer: Playground & Mesher (`renderer`) - Playground Scripts: - Start: `pnpm run-playground` (playground, mesher + server) or `pnpm watch-playground` - - Build: `pnpm build-playground` or `node prismarine-viewer/esbuild.mjs` + - Build: `pnpm build-playground` or `node renderer/esbuild.mjs` - Mesher Scripts: - Start: `pnpm watch-mesher` @@ -43,10 +43,10 @@ Paths: Paths: -- `prismarine-viewer` - Improved and refactored version of . Here is everything related to rendering the game world itself (no ui at all). Two most important parts here are: -- `prismarine-viewer/viewer/lib/worldrenderer.ts` - adding new objects to three.js happens here (sections) -- `prismarine-viewer/viewer/lib/models.ts` - preparing data for rendering (blocks) - happens in worker: out file - `worker.js`, building - `prismarine-viewer/buildWorker.mjs` -- `prismarine-viewer/examples/playground.ts` - Playground (source of ) Use this for testing any rendering changes. You can also modify the playground code. +- `renderer` - Improved and refactored version of . Here is everything related to rendering the game world itself (no ui at all). Two most important parts here are: +- `renderer/viewer/lib/worldrenderer.ts` - adding new objects to three.js happens here (sections) +- `renderer/viewer/lib/models.ts` - preparing data for rendering (blocks) - happens in worker: out file - `worker.js`, building - `renderer/buildWorker.mjs` +- `renderer/playground/playground.ts` - Playground (source of ) Use this for testing any rendering changes. You can also modify the playground code. ### Storybook (`.storybook`) @@ -74,7 +74,7 @@ Cypress tests are located in `cypress` folder. To run them, run `pnpm test-mc-se ## Unit Tests There are not many unit tests for now (which we are trying to improve). -Location of unit tests: `**/*.test.ts` files in `src` folder and `prismarine-viewer` folder. +Location of unit tests: `**/*.test.ts` files in `src` folder and `renderer` folder. Start them with `pnpm test-unit`. ## Making protocol-related changes diff --git a/Dockerfile b/Dockerfile index be9d7815..4769141f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ RUN if [ "$DOWNLOAD_SOUNDS" = "true" ] ; then node scripts/downloadSoundsMap.mjs # TODO for development # EXPOSE 9090 # VOLUME /app/src -# VOLUME /app/prismarine-viewer +# VOLUME /app/renderer # ENTRYPOINT ["pnpm", "run", "run-all"] # only for prod diff --git a/cypress/e2e/index.spec.ts b/cypress/e2e/smoke.spec.ts similarity index 100% rename from cypress/e2e/index.spec.ts rename to cypress/e2e/smoke.spec.ts diff --git a/package.json b/package.json index 869ecbec..9c68b14c 100644 --- a/package.json +++ b/package.json @@ -16,19 +16,19 @@ "test:e2e": "start-test http-get://localhost:8080 test:cypress", "prod-start": "node server.js --prod", "test-mc-server": "tsx cypress/minecraft-server.mjs", - "lint": "eslint \"{src,cypress,prismarine-viewer}/**/*.{ts,js,jsx,tsx}\"", + "lint": "eslint \"{src,cypress,renderer}/**/*.{ts,js,jsx,tsx}\"", "lint-fix": "pnpm lint --fix", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build && node scripts/build.js moveStorybookFiles", "start-experiments": "vite --config experiments/vite.config.ts --host", "watch-other-workers": "echo NOT IMPLEMENTED", "build-other-workers": "echo NOT IMPLEMENTED", - "build-mesher": "node prismarine-viewer/buildMesherWorker.mjs", + "build-mesher": "node renderer/buildMesherWorker.mjs", "watch-mesher": "pnpm build-mesher -w", "run-playground": "run-p watch-mesher watch-other-workers watch-playground", "run-all": "run-p start run-playground", - "build-playground": "rsbuild build --config prismarine-viewer/rsbuild.config.ts", - "watch-playground": "rsbuild dev --config prismarine-viewer/rsbuild.config.ts" + "build-playground": "rsbuild build --config renderer/rsbuild.config.ts", + "watch-playground": "rsbuild dev --config renderer/rsbuild.config.ts" }, "keywords": [ "prismarine", @@ -152,7 +152,7 @@ "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", "path-exists-cli": "^2.0.0", - "prismarine-viewer": "link:prismarine-viewer", + "renderer": "link:renderer", "process": "github:PrismarineJS/node-process", "rimraf": "^5.0.1", "storybook": "^7.4.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d98ea63..214de75b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -369,12 +369,12 @@ importers: path-exists-cli: specifier: ^2.0.0 version: 2.0.0 - prismarine-viewer: - specifier: link:prismarine-viewer - version: link:prismarine-viewer process: specifier: github:PrismarineJS/node-process version: https://codeload.github.com/PrismarineJS/node-process/tar.gz/380d0b4f4c86f1b65b216c311bf00431f314e88e + renderer: + specifier: link:renderer + version: link:renderer rimraf: specifier: ^5.0.1 version: 5.0.1 @@ -400,7 +400,7 @@ importers: specifier: ^2.3.2 version: 2.4.1 - prismarine-viewer: + renderer: dependencies: '@tweenjs/tween.js': specifier: ^20.0.3 @@ -435,12 +435,12 @@ importers: prismarine-schematic: specifier: ^1.2.0 version: 1.2.3 - prismarine-viewer: - specifier: link:./ - version: 'link:' process: specifier: ^0.11.10 version: 0.11.10 + renderer: + specifier: link:./ + version: 'link:' socket.io: specifier: ^4.0.0 version: 4.7.2 @@ -471,7 +471,7 @@ importers: specifier: ^1.2.2 version: 1.2.2 - prismarine-viewer/viewer/sign-renderer: + renderer/viewer/sign-renderer: dependencies: vite: specifier: ^4.4.9 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 131aadfe..5de14962 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,4 @@ packages: - "." - - "prismarine-viewer" - - "prismarine-viewer/viewer/sign-renderer/" + - "renderer" + - "renderer/viewer/sign-renderer/" diff --git a/prismarine-viewer/README.MD b/prismarine-viewer/README.MD new file mode 100644 index 00000000..7273a338 --- /dev/null +++ b/prismarine-viewer/README.MD @@ -0,0 +1,5 @@ +# Prismarine Viewer + +Renamed to `renderer`. + +For more info see [CONTRIBUTING.md](../CONTRIBUTING.md). diff --git a/prismarine-viewer/.npmrc b/renderer/.npmrc similarity index 100% rename from prismarine-viewer/.npmrc rename to renderer/.npmrc diff --git a/prismarine-viewer/buildMesherConfig.mjs b/renderer/buildMesherConfig.mjs similarity index 100% rename from prismarine-viewer/buildMesherConfig.mjs rename to renderer/buildMesherConfig.mjs diff --git a/prismarine-viewer/buildMesherWorker.mjs b/renderer/buildMesherWorker.mjs similarity index 100% rename from prismarine-viewer/buildMesherWorker.mjs rename to renderer/buildMesherWorker.mjs diff --git a/prismarine-viewer/package.json b/renderer/package.json similarity index 93% rename from prismarine-viewer/package.json rename to renderer/package.json index 02b0a304..10049f4f 100644 --- a/prismarine-viewer/package.json +++ b/renderer/package.json @@ -1,5 +1,5 @@ { - "name": "prismarine-viewer", + "name": "renderer", "version": "1.25.0", "description": "Web based viewer", "main": "index.js", @@ -26,7 +26,7 @@ "prismarine-block": "^1.7.3", "prismarine-chunk": "^1.22.0", "prismarine-schematic": "^1.2.0", - "prismarine-viewer": "link:./", + "renderer": "link:./", "process": "^0.11.10", "socket.io": "^4.0.0", "socket.io-client": "^4.0.0", diff --git a/prismarine-viewer/playground.html b/renderer/playground.html similarity index 100% rename from prismarine-viewer/playground.html rename to renderer/playground.html diff --git a/prismarine-viewer/examples/baseScene.ts b/renderer/playground/baseScene.ts similarity index 97% rename from prismarine-viewer/examples/baseScene.ts rename to renderer/playground/baseScene.ts index daa56fcc..02a6432f 100644 --- a/prismarine-viewer/examples/baseScene.ts +++ b/renderer/playground/baseScene.ts @@ -104,6 +104,17 @@ export class BasePlaygroundScene { } if (window.innerHeight < 700) { this.gui.open(false) + } else { + // const observer = new MutationObserver(() => { + // this.gui.domElement.classList.remove('transition') + // }) + // observer.observe(this.gui.domElement, { + // attributes: true, + // attributeFilter: ['class'], + // }) + setTimeout(() => { + this.gui.domElement.classList.remove('transition') + }, 500) } this.gui.onChange(({ property, object }) => { diff --git a/prismarine-viewer/examples/playground.ts b/renderer/playground/playground.ts similarity index 100% rename from prismarine-viewer/examples/playground.ts rename to renderer/playground/playground.ts diff --git a/prismarine-viewer/examples/playgroundUi.tsx b/renderer/playground/playgroundUi.tsx similarity index 100% rename from prismarine-viewer/examples/playgroundUi.tsx rename to renderer/playground/playgroundUi.tsx diff --git a/prismarine-viewer/examples/scenes/entities.ts b/renderer/playground/scenes/entities.ts similarity index 100% rename from prismarine-viewer/examples/scenes/entities.ts rename to renderer/playground/scenes/entities.ts diff --git a/prismarine-viewer/examples/scenes/floorRandom.ts b/renderer/playground/scenes/floorRandom.ts similarity index 100% rename from prismarine-viewer/examples/scenes/floorRandom.ts rename to renderer/playground/scenes/floorRandom.ts diff --git a/prismarine-viewer/examples/scenes/frequentUpdates.ts b/renderer/playground/scenes/frequentUpdates.ts similarity index 100% rename from prismarine-viewer/examples/scenes/frequentUpdates.ts rename to renderer/playground/scenes/frequentUpdates.ts diff --git a/prismarine-viewer/examples/scenes/index.ts b/renderer/playground/scenes/index.ts similarity index 100% rename from prismarine-viewer/examples/scenes/index.ts rename to renderer/playground/scenes/index.ts diff --git a/prismarine-viewer/examples/scenes/lightingStarfield.ts b/renderer/playground/scenes/lightingStarfield.ts similarity index 100% rename from prismarine-viewer/examples/scenes/lightingStarfield.ts rename to renderer/playground/scenes/lightingStarfield.ts diff --git a/prismarine-viewer/examples/scenes/main.ts b/renderer/playground/scenes/main.ts similarity index 99% rename from prismarine-viewer/examples/scenes/main.ts rename to renderer/playground/scenes/main.ts index 0aca157e..33fe2528 100644 --- a/prismarine-viewer/examples/scenes/main.ts +++ b/renderer/playground/scenes/main.ts @@ -222,7 +222,7 @@ class MainScene extends BasePlaygroundScene { }) const zip = new JSZip() - zip.file('description.txt', 'Generated with prismarine-viewer') + zip.file('description.txt', 'Generated with mcraft.fun/playground') const end = async () => { // download zip file diff --git a/prismarine-viewer/examples/scenes/railsCobweb.ts b/renderer/playground/scenes/railsCobweb.ts similarity index 100% rename from prismarine-viewer/examples/scenes/railsCobweb.ts rename to renderer/playground/scenes/railsCobweb.ts diff --git a/prismarine-viewer/examples/scenes/rotationIssue.ts b/renderer/playground/scenes/rotationIssue.ts similarity index 100% rename from prismarine-viewer/examples/scenes/rotationIssue.ts rename to renderer/playground/scenes/rotationIssue.ts diff --git a/prismarine-viewer/examples/scenes/slabsOptimization.ts b/renderer/playground/scenes/slabsOptimization.ts similarity index 100% rename from prismarine-viewer/examples/scenes/slabsOptimization.ts rename to renderer/playground/scenes/slabsOptimization.ts diff --git a/prismarine-viewer/examples/scenes/transparencyIssue.ts b/renderer/playground/scenes/transparencyIssue.ts similarity index 100% rename from prismarine-viewer/examples/scenes/transparencyIssue.ts rename to renderer/playground/scenes/transparencyIssue.ts diff --git a/prismarine-viewer/examples/shared.ts b/renderer/playground/shared.ts similarity index 100% rename from prismarine-viewer/examples/shared.ts rename to renderer/playground/shared.ts diff --git a/prismarine-viewer/rsbuild.config.ts b/renderer/rsbuild.config.ts similarity index 94% rename from prismarine-viewer/rsbuild.config.ts rename to renderer/rsbuild.config.ts index cea001db..d1cd681c 100644 --- a/prismarine-viewer/rsbuild.config.ts +++ b/renderer/rsbuild.config.ts @@ -30,7 +30,7 @@ export default mergeRsbuildConfig( }, source: { entry: { - index: join(__dirname, './examples/playground.ts') + index: join(__dirname, './playground/playground.ts') }, define: { 'globalThis.includedVersions': JSON.stringify(supportedVersions), diff --git a/prismarine-viewer/rsbuildSharedConfig.ts b/renderer/rsbuildSharedConfig.ts similarity index 100% rename from prismarine-viewer/rsbuildSharedConfig.ts rename to renderer/rsbuildSharedConfig.ts diff --git a/prismarine-viewer/viewer/.gitignore b/renderer/viewer/.gitignore similarity index 100% rename from prismarine-viewer/viewer/.gitignore rename to renderer/viewer/.gitignore diff --git a/prismarine-viewer/viewer/index.js b/renderer/viewer/index.js similarity index 100% rename from prismarine-viewer/viewer/index.js rename to renderer/viewer/index.js diff --git a/prismarine-viewer/viewer/lib/cleanupDecorator.ts b/renderer/viewer/lib/cleanupDecorator.ts similarity index 100% rename from prismarine-viewer/viewer/lib/cleanupDecorator.ts rename to renderer/viewer/lib/cleanupDecorator.ts diff --git a/prismarine-viewer/viewer/lib/entities.ts b/renderer/viewer/lib/entities.ts similarity index 100% rename from prismarine-viewer/viewer/lib/entities.ts rename to renderer/viewer/lib/entities.ts diff --git a/prismarine-viewer/viewer/lib/entity/EntityMesh.ts b/renderer/viewer/lib/entity/EntityMesh.ts similarity index 99% rename from prismarine-viewer/viewer/lib/entity/EntityMesh.ts rename to renderer/viewer/lib/entity/EntityMesh.ts index 1db6d4c3..37a77e3d 100644 --- a/prismarine-viewer/viewer/lib/entity/EntityMesh.ts +++ b/renderer/viewer/lib/entity/EntityMesh.ts @@ -304,6 +304,7 @@ export function getMesh ( mesh.scale.set(1 / 16, 1 / 16, 1 / 16) if (textureOffset) { + // todo(memory) dont clone const loadedTexture = blocksTexture.clone() loadedTexture.offset.set(textureOffset[0], textureOffset[1]) loadedTexture.needsUpdate = true diff --git a/prismarine-viewer/viewer/lib/entity/animations.js b/renderer/viewer/lib/entity/animations.js similarity index 100% rename from prismarine-viewer/viewer/lib/entity/animations.js rename to renderer/viewer/lib/entity/animations.js diff --git a/prismarine-viewer/viewer/lib/entity/armorModels.json b/renderer/viewer/lib/entity/armorModels.json similarity index 100% rename from prismarine-viewer/viewer/lib/entity/armorModels.json rename to renderer/viewer/lib/entity/armorModels.json diff --git a/prismarine-viewer/viewer/lib/entity/armorModels.ts b/renderer/viewer/lib/entity/armorModels.ts similarity index 100% rename from prismarine-viewer/viewer/lib/entity/armorModels.ts rename to renderer/viewer/lib/entity/armorModels.ts diff --git a/prismarine-viewer/viewer/lib/entity/entities.json b/renderer/viewer/lib/entity/entities.json similarity index 100% rename from prismarine-viewer/viewer/lib/entity/entities.json rename to renderer/viewer/lib/entity/entities.json diff --git a/prismarine-viewer/viewer/lib/entity/exportedModels.js b/renderer/viewer/lib/entity/exportedModels.js similarity index 100% rename from prismarine-viewer/viewer/lib/entity/exportedModels.js rename to renderer/viewer/lib/entity/exportedModels.js diff --git a/prismarine-viewer/viewer/lib/entity/externalTextures.json b/renderer/viewer/lib/entity/externalTextures.json similarity index 100% rename from prismarine-viewer/viewer/lib/entity/externalTextures.json rename to renderer/viewer/lib/entity/externalTextures.json diff --git a/prismarine-viewer/viewer/lib/entity/models/allay.obj b/renderer/viewer/lib/entity/models/allay.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/allay.obj rename to renderer/viewer/lib/entity/models/allay.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/axolotl.obj b/renderer/viewer/lib/entity/models/axolotl.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/axolotl.obj rename to renderer/viewer/lib/entity/models/axolotl.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/blaze.obj b/renderer/viewer/lib/entity/models/blaze.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/blaze.obj rename to renderer/viewer/lib/entity/models/blaze.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/boat.obj b/renderer/viewer/lib/entity/models/boat.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/boat.obj rename to renderer/viewer/lib/entity/models/boat.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/camel.obj b/renderer/viewer/lib/entity/models/camel.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/camel.obj rename to renderer/viewer/lib/entity/models/camel.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/cat.obj b/renderer/viewer/lib/entity/models/cat.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/cat.obj rename to renderer/viewer/lib/entity/models/cat.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/chicken.obj b/renderer/viewer/lib/entity/models/chicken.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/chicken.obj rename to renderer/viewer/lib/entity/models/chicken.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/cod.obj b/renderer/viewer/lib/entity/models/cod.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/cod.obj rename to renderer/viewer/lib/entity/models/cod.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/creeper.obj b/renderer/viewer/lib/entity/models/creeper.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/creeper.obj rename to renderer/viewer/lib/entity/models/creeper.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/dolphin.obj b/renderer/viewer/lib/entity/models/dolphin.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/dolphin.obj rename to renderer/viewer/lib/entity/models/dolphin.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/ender_dragon.obj b/renderer/viewer/lib/entity/models/ender_dragon.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/ender_dragon.obj rename to renderer/viewer/lib/entity/models/ender_dragon.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/enderman.obj b/renderer/viewer/lib/entity/models/enderman.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/enderman.obj rename to renderer/viewer/lib/entity/models/enderman.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/endermite.obj b/renderer/viewer/lib/entity/models/endermite.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/endermite.obj rename to renderer/viewer/lib/entity/models/endermite.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/fox.obj b/renderer/viewer/lib/entity/models/fox.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/fox.obj rename to renderer/viewer/lib/entity/models/fox.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/frog.obj b/renderer/viewer/lib/entity/models/frog.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/frog.obj rename to renderer/viewer/lib/entity/models/frog.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/ghast.obj b/renderer/viewer/lib/entity/models/ghast.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/ghast.obj rename to renderer/viewer/lib/entity/models/ghast.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/goat.obj b/renderer/viewer/lib/entity/models/goat.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/goat.obj rename to renderer/viewer/lib/entity/models/goat.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/guardian.obj b/renderer/viewer/lib/entity/models/guardian.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/guardian.obj rename to renderer/viewer/lib/entity/models/guardian.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/horse.obj b/renderer/viewer/lib/entity/models/horse.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/horse.obj rename to renderer/viewer/lib/entity/models/horse.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/llama.obj b/renderer/viewer/lib/entity/models/llama.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/llama.obj rename to renderer/viewer/lib/entity/models/llama.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/minecart.obj b/renderer/viewer/lib/entity/models/minecart.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/minecart.obj rename to renderer/viewer/lib/entity/models/minecart.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/parrot.obj b/renderer/viewer/lib/entity/models/parrot.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/parrot.obj rename to renderer/viewer/lib/entity/models/parrot.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/piglin.obj b/renderer/viewer/lib/entity/models/piglin.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/piglin.obj rename to renderer/viewer/lib/entity/models/piglin.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/pillager.obj b/renderer/viewer/lib/entity/models/pillager.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/pillager.obj rename to renderer/viewer/lib/entity/models/pillager.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/rabbit.obj b/renderer/viewer/lib/entity/models/rabbit.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/rabbit.obj rename to renderer/viewer/lib/entity/models/rabbit.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/sheep.obj b/renderer/viewer/lib/entity/models/sheep.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/sheep.obj rename to renderer/viewer/lib/entity/models/sheep.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/shulker.obj b/renderer/viewer/lib/entity/models/shulker.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/shulker.obj rename to renderer/viewer/lib/entity/models/shulker.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/sniffer.obj b/renderer/viewer/lib/entity/models/sniffer.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/sniffer.obj rename to renderer/viewer/lib/entity/models/sniffer.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/spider.obj b/renderer/viewer/lib/entity/models/spider.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/spider.obj rename to renderer/viewer/lib/entity/models/spider.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/tadpole.obj b/renderer/viewer/lib/entity/models/tadpole.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/tadpole.obj rename to renderer/viewer/lib/entity/models/tadpole.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/turtle.obj b/renderer/viewer/lib/entity/models/turtle.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/turtle.obj rename to renderer/viewer/lib/entity/models/turtle.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/vex.obj b/renderer/viewer/lib/entity/models/vex.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/vex.obj rename to renderer/viewer/lib/entity/models/vex.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/villager.obj b/renderer/viewer/lib/entity/models/villager.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/villager.obj rename to renderer/viewer/lib/entity/models/villager.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/warden.obj b/renderer/viewer/lib/entity/models/warden.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/warden.obj rename to renderer/viewer/lib/entity/models/warden.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/witch.obj b/renderer/viewer/lib/entity/models/witch.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/witch.obj rename to renderer/viewer/lib/entity/models/witch.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/wolf.obj b/renderer/viewer/lib/entity/models/wolf.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/wolf.obj rename to renderer/viewer/lib/entity/models/wolf.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/zombie.obj b/renderer/viewer/lib/entity/models/zombie.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/zombie.obj rename to renderer/viewer/lib/entity/models/zombie.obj diff --git a/prismarine-viewer/viewer/lib/entity/models/zombie_villager.obj b/renderer/viewer/lib/entity/models/zombie_villager.obj similarity index 100% rename from prismarine-viewer/viewer/lib/entity/models/zombie_villager.obj rename to renderer/viewer/lib/entity/models/zombie_villager.obj diff --git a/prismarine-viewer/viewer/lib/entity/objModels.js b/renderer/viewer/lib/entity/objModels.js similarity index 100% rename from prismarine-viewer/viewer/lib/entity/objModels.js rename to renderer/viewer/lib/entity/objModels.js diff --git a/prismarine-viewer/viewer/lib/hand.ts b/renderer/viewer/lib/hand.ts similarity index 100% rename from prismarine-viewer/viewer/lib/hand.ts rename to renderer/viewer/lib/hand.ts diff --git a/prismarine-viewer/viewer/lib/holdingBlock.ts b/renderer/viewer/lib/holdingBlock.ts similarity index 100% rename from prismarine-viewer/viewer/lib/holdingBlock.ts rename to renderer/viewer/lib/holdingBlock.ts diff --git a/prismarine-viewer/viewer/lib/mesher/mesher.ts b/renderer/viewer/lib/mesher/mesher.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/mesher.ts rename to renderer/viewer/lib/mesher/mesher.ts diff --git a/prismarine-viewer/viewer/lib/mesher/models.ts b/renderer/viewer/lib/mesher/models.ts similarity index 99% rename from prismarine-viewer/viewer/lib/mesher/models.ts rename to renderer/viewer/lib/mesher/models.ts index 80fff2a0..0dec4015 100644 --- a/prismarine-viewer/viewer/lib/mesher/models.ts +++ b/renderer/viewer/lib/mesher/models.ts @@ -1,7 +1,7 @@ import { Vec3 } from 'vec3' import worldBlockProvider, { WorldBlockProvider } from 'mc-assets/dist/worldBlockProvider' import legacyJson from '../../../../src/preflatMap.json' -import { BlockType } from '../../../examples/shared' +import { BlockType } from '../../../playground/shared' import { World, BlockModelPartsResolved, WorldBlock as Block } from './world' import { BlockElement, buildRotationMatrix, elemFaces, matmul3, matmulmat3, vecadd3, vecsub3 } from './modelsGeometryCommon' import { INVISIBLE_BLOCKS } from './worldConstants' diff --git a/prismarine-viewer/viewer/lib/mesher/modelsGeometryCommon.ts b/renderer/viewer/lib/mesher/modelsGeometryCommon.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/modelsGeometryCommon.ts rename to renderer/viewer/lib/mesher/modelsGeometryCommon.ts diff --git a/prismarine-viewer/viewer/lib/mesher/shared.ts b/renderer/viewer/lib/mesher/shared.ts similarity index 94% rename from prismarine-viewer/viewer/lib/mesher/shared.ts rename to renderer/viewer/lib/mesher/shared.ts index f3f5c2cc..9f88d2af 100644 --- a/prismarine-viewer/viewer/lib/mesher/shared.ts +++ b/renderer/viewer/lib/mesher/shared.ts @@ -1,4 +1,4 @@ -import { BlockType } from '../../../examples/shared' +import { BlockType } from '../../../playground/shared' export const defaultMesherConfig = { version: '', diff --git a/prismarine-viewer/viewer/lib/mesher/standaloneRenderer.ts b/renderer/viewer/lib/mesher/standaloneRenderer.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/standaloneRenderer.ts rename to renderer/viewer/lib/mesher/standaloneRenderer.ts diff --git a/prismarine-viewer/viewer/lib/mesher/test/mesherTester.ts b/renderer/viewer/lib/mesher/test/mesherTester.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/test/mesherTester.ts rename to renderer/viewer/lib/mesher/test/mesherTester.ts diff --git a/prismarine-viewer/viewer/lib/mesher/test/playground.ts b/renderer/viewer/lib/mesher/test/playground.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/test/playground.ts rename to renderer/viewer/lib/mesher/test/playground.ts diff --git a/prismarine-viewer/viewer/lib/mesher/test/tests.test.ts b/renderer/viewer/lib/mesher/test/tests.test.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/test/tests.test.ts rename to renderer/viewer/lib/mesher/test/tests.test.ts diff --git a/prismarine-viewer/viewer/lib/mesher/world.ts b/renderer/viewer/lib/mesher/world.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/world.ts rename to renderer/viewer/lib/mesher/world.ts diff --git a/prismarine-viewer/viewer/lib/mesher/worldConstants.ts b/renderer/viewer/lib/mesher/worldConstants.ts similarity index 100% rename from prismarine-viewer/viewer/lib/mesher/worldConstants.ts rename to renderer/viewer/lib/mesher/worldConstants.ts diff --git a/prismarine-viewer/viewer/lib/moreBlockDataGenerated.json b/renderer/viewer/lib/moreBlockDataGenerated.json similarity index 100% rename from prismarine-viewer/viewer/lib/moreBlockDataGenerated.json rename to renderer/viewer/lib/moreBlockDataGenerated.json diff --git a/prismarine-viewer/viewer/lib/primitives.js b/renderer/viewer/lib/primitives.js similarity index 100% rename from prismarine-viewer/viewer/lib/primitives.js rename to renderer/viewer/lib/primitives.js diff --git a/prismarine-viewer/viewer/lib/renderUtils.js b/renderer/viewer/lib/renderUtils.js similarity index 100% rename from prismarine-viewer/viewer/lib/renderUtils.js rename to renderer/viewer/lib/renderUtils.js diff --git a/prismarine-viewer/viewer/lib/simpleUtils.ts b/renderer/viewer/lib/simpleUtils.ts similarity index 100% rename from prismarine-viewer/viewer/lib/simpleUtils.ts rename to renderer/viewer/lib/simpleUtils.ts diff --git a/prismarine-viewer/viewer/lib/threeJsUtils.ts b/renderer/viewer/lib/threeJsUtils.ts similarity index 100% rename from prismarine-viewer/viewer/lib/threeJsUtils.ts rename to renderer/viewer/lib/threeJsUtils.ts diff --git a/prismarine-viewer/viewer/lib/ui/newStats.ts b/renderer/viewer/lib/ui/newStats.ts similarity index 100% rename from prismarine-viewer/viewer/lib/ui/newStats.ts rename to renderer/viewer/lib/ui/newStats.ts diff --git a/prismarine-viewer/viewer/lib/utils.electron.js b/renderer/viewer/lib/utils.electron.js similarity index 100% rename from prismarine-viewer/viewer/lib/utils.electron.js rename to renderer/viewer/lib/utils.electron.js diff --git a/prismarine-viewer/viewer/lib/utils.js b/renderer/viewer/lib/utils.js similarity index 100% rename from prismarine-viewer/viewer/lib/utils.js rename to renderer/viewer/lib/utils.js diff --git a/prismarine-viewer/viewer/lib/utils.web.js b/renderer/viewer/lib/utils.web.js similarity index 100% rename from prismarine-viewer/viewer/lib/utils.web.js rename to renderer/viewer/lib/utils.web.js diff --git a/prismarine-viewer/viewer/lib/viewer.ts b/renderer/viewer/lib/viewer.ts similarity index 100% rename from prismarine-viewer/viewer/lib/viewer.ts rename to renderer/viewer/lib/viewer.ts diff --git a/prismarine-viewer/viewer/lib/viewerWrapper.ts b/renderer/viewer/lib/viewerWrapper.ts similarity index 100% rename from prismarine-viewer/viewer/lib/viewerWrapper.ts rename to renderer/viewer/lib/viewerWrapper.ts diff --git a/prismarine-viewer/viewer/lib/workerProxy.ts b/renderer/viewer/lib/workerProxy.ts similarity index 100% rename from prismarine-viewer/viewer/lib/workerProxy.ts rename to renderer/viewer/lib/workerProxy.ts diff --git a/prismarine-viewer/viewer/lib/worldDataEmitter.ts b/renderer/viewer/lib/worldDataEmitter.ts similarity index 99% rename from prismarine-viewer/viewer/lib/worldDataEmitter.ts rename to renderer/viewer/lib/worldDataEmitter.ts index 76efe98c..fee47de2 100644 --- a/prismarine-viewer/viewer/lib/worldDataEmitter.ts +++ b/renderer/viewer/lib/worldDataEmitter.ts @@ -6,7 +6,7 @@ import { generateSpiralMatrix, ViewRect } from 'flying-squid/dist/utils' import { Vec3 } from 'vec3' import { BotEvents } from 'mineflayer' import { getItemFromBlock } from '../../../src/chatUtils' -import { delayedIterator } from '../../examples/shared' +import { delayedIterator } from '../../playground/shared' import { chunkPos } from './simpleUtils' export type ChunkPosKey = string diff --git a/prismarine-viewer/viewer/lib/worldrendererCommon.ts b/renderer/viewer/lib/worldrendererCommon.ts similarity index 100% rename from prismarine-viewer/viewer/lib/worldrendererCommon.ts rename to renderer/viewer/lib/worldrendererCommon.ts diff --git a/prismarine-viewer/viewer/lib/worldrendererThree.ts b/renderer/viewer/lib/worldrendererThree.ts similarity index 100% rename from prismarine-viewer/viewer/lib/worldrendererThree.ts rename to renderer/viewer/lib/worldrendererThree.ts diff --git a/prismarine-viewer/viewer/prepare/utils.ts b/renderer/viewer/prepare/utils.ts similarity index 100% rename from prismarine-viewer/viewer/prepare/utils.ts rename to renderer/viewer/prepare/utils.ts diff --git a/prismarine-viewer/viewer/sign-renderer/index.html b/renderer/viewer/sign-renderer/index.html similarity index 100% rename from prismarine-viewer/viewer/sign-renderer/index.html rename to renderer/viewer/sign-renderer/index.html diff --git a/prismarine-viewer/viewer/sign-renderer/index.ts b/renderer/viewer/sign-renderer/index.ts similarity index 100% rename from prismarine-viewer/viewer/sign-renderer/index.ts rename to renderer/viewer/sign-renderer/index.ts diff --git a/prismarine-viewer/viewer/sign-renderer/noop.js b/renderer/viewer/sign-renderer/noop.js similarity index 100% rename from prismarine-viewer/viewer/sign-renderer/noop.js rename to renderer/viewer/sign-renderer/noop.js diff --git a/prismarine-viewer/viewer/sign-renderer/package.json b/renderer/viewer/sign-renderer/package.json similarity index 100% rename from prismarine-viewer/viewer/sign-renderer/package.json rename to renderer/viewer/sign-renderer/package.json diff --git a/prismarine-viewer/viewer/sign-renderer/playground.ts b/renderer/viewer/sign-renderer/playground.ts similarity index 100% rename from prismarine-viewer/viewer/sign-renderer/playground.ts rename to renderer/viewer/sign-renderer/playground.ts diff --git a/prismarine-viewer/viewer/sign-renderer/tests.test.ts b/renderer/viewer/sign-renderer/tests.test.ts similarity index 100% rename from prismarine-viewer/viewer/sign-renderer/tests.test.ts rename to renderer/viewer/sign-renderer/tests.test.ts diff --git a/prismarine-viewer/viewer/sign-renderer/vite.config.ts b/renderer/viewer/sign-renderer/vite.config.ts similarity index 100% rename from prismarine-viewer/viewer/sign-renderer/vite.config.ts rename to renderer/viewer/sign-renderer/vite.config.ts diff --git a/rsbuild.config.ts b/rsbuild.config.ts index c84c3c92..04edd23d 100644 --- a/rsbuild.config.ts +++ b/rsbuild.config.ts @@ -10,7 +10,7 @@ import fsExtra from 'fs-extra' import { promisify } from 'util' import { generateSW } from 'workbox-build' import { getSwAdditionalEntries } from './scripts/build' -import { appAndRendererSharedConfig } from './prismarine-viewer/rsbuildSharedConfig' +import { appAndRendererSharedConfig } from './renderer/rsbuildSharedConfig' //@ts-ignore try { require('./localSettings.js') } catch { } @@ -31,7 +31,7 @@ if (fs.existsSync('./assets/release.json')) { releaseChangelog = releaseJson.changelog?.replace(//, '') } -// base options are in ./prismarine-viewer/rsbuildSharedConfig.ts +// base options are in ./renderer/rsbuildSharedConfig.ts const appConfig = defineConfig({ html: { template: './index.html', @@ -111,10 +111,10 @@ const appConfig = defineConfig({ // childProcess.execSync('./scripts/prepareSounds.mjs', { stdio: 'inherit' }) // childProcess.execSync('tsx ./scripts/genMcDataTypes.ts', { stdio: 'inherit' }) // childProcess.execSync('tsx ./scripts/genPixelartTypes.ts', { stdio: 'inherit' }) - if (fs.existsSync('./prismarine-viewer/dist/mesher.js') && dev) { + if (fs.existsSync('./renderer/dist/mesher.js') && dev) { // copy mesher - fs.copyFileSync('./prismarine-viewer/dist/mesher.js', './dist/mesher.js') - fs.copyFileSync('./prismarine-viewer/dist/mesher.js.map', './dist/mesher.js.map') + fs.copyFileSync('./renderer/dist/mesher.js', './dist/mesher.js') + fs.copyFileSync('./renderer/dist/mesher.js.map', './dist/mesher.js.map') } else if (!dev) { await execAsync('pnpm run build-mesher') } diff --git a/scripts/build.js b/scripts/build.js index d3703eea..028a9fdc 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -6,7 +6,7 @@ const fs = require('fs') const crypto = require('crypto') const path = require('path') -const prismarineViewerBase = "./node_modules/prismarine-viewer" +const prismarineViewerBase = "./node_modules/renderer" // these files could be copied at build time eg with copy plugin, but copy plugin slows down the config so we copy them there, alternative we could inline it in esbuild config const filesToCopy = [ diff --git a/scripts/buildNpmReact.ts b/scripts/buildNpmReact.ts index 9d0b3484..f4f00e4d 100644 --- a/scripts/buildNpmReact.ts +++ b/scripts/buildNpmReact.ts @@ -39,7 +39,7 @@ fs.promises.readdir(path.resolve(__dirname, '../src/react')).then(async (files) version = version.replace(/^v/, '') packageJson.version = version - const externalize = ['prismarine-viewer', 'mc-assets'] + const externalize = ['renderer', 'mc-assets'] const { metafile } = await build({ entryPoints: [path.resolve(__dirname, '../src/react/npmReactComponents.ts')], bundle: true, diff --git a/scripts/dockerPrepare.mjs b/scripts/dockerPrepare.mjs index ff009168..37e57d01 100644 --- a/scripts/dockerPrepare.mjs +++ b/scripts/dockerPrepare.mjs @@ -12,6 +12,6 @@ const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8')) delete packageJson.optionalDependencies fs.writeFileSync('./package.json', JSON.stringify(packageJson, null, 2), 'utf8') -const packageJsonViewer = JSON.parse(fs.readFileSync('./prismarine-viewer/package.json', 'utf8')) +const packageJsonViewer = JSON.parse(fs.readFileSync('./renderer/package.json', 'utf8')) delete packageJsonViewer.optionalDependencies -fs.writeFileSync('./prismarine-viewer/package.json', JSON.stringify(packageJsonViewer, null, 2), 'utf8') +fs.writeFileSync('./renderer/package.json', JSON.stringify(packageJsonViewer, null, 2), 'utf8') diff --git a/src/botUtils.ts b/src/botUtils.ts index 4e803de2..ac2deb02 100644 --- a/src/botUtils.ts +++ b/src/botUtils.ts @@ -1,4 +1,4 @@ -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import * as nbt from 'prismarine-nbt' export const displayClientChat = (text: string) => { diff --git a/src/chatUtils.ts b/src/chatUtils.ts index e1cd7df2..a5e9e0f8 100644 --- a/src/chatUtils.ts +++ b/src/chatUtils.ts @@ -1,8 +1,8 @@ -// this should actually be moved to mineflayer / prismarine-viewer +// this should actually be moved to mineflayer / renderer import { fromFormattedString, TextComponent } from '@xmcl/text-component' import type { IndexedData } from 'minecraft-data' -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' export type MessageFormatPart = Pick & { text: string diff --git a/src/connect.ts b/src/connect.ts index 0dd6c8fd..9ada9b8a 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -1,6 +1,6 @@ // import { versionsByMinecraftVersion } from 'minecraft-data' // import minecraftInitialDataJson from '../generated/minecraft-initial-data.json' -import { AuthenticatedAccount } from './react/ServersListProvider' +import { AuthenticatedAccount } from './react/serversStorage' import { downloadSoundsIfNeeded } from './sounds/botSoundSystem' import { options } from './optionsStorage' import supportedVersions from './supportedVersions.mjs' diff --git a/src/devReload.ts b/src/devReload.ts index f30624e8..5be5f2f6 100644 --- a/src/devReload.ts +++ b/src/devReload.ts @@ -1,5 +1,5 @@ -import { isMobile } from 'prismarine-viewer/viewer/lib/simpleUtils' -import { WorldRendererThree } from 'prismarine-viewer/viewer/lib/worldrendererThree' +import { isMobile } from 'renderer/viewer/lib/simpleUtils' +import { WorldRendererThree } from 'renderer/viewer/lib/worldrendererThree' if (process.env.NODE_ENV === 'development') { // mobile devtools diff --git a/src/devtools.ts b/src/devtools.ts index 9aec8b77..223c950d 100644 --- a/src/devtools.ts +++ b/src/devtools.ts @@ -1,7 +1,7 @@ // global variables useful for debugging import fs from 'fs' -import { WorldRendererThree } from 'prismarine-viewer/viewer/lib/worldrendererThree' +import { WorldRendererThree } from 'renderer/viewer/lib/worldrendererThree' import { getEntityCursor } from './worldInteractions' window.cursorBlockRel = (x = 0, y = 0, z = 0) => { diff --git a/src/entities.ts b/src/entities.ts index c4713a92..774ce32e 100644 --- a/src/entities.ts +++ b/src/entities.ts @@ -1,5 +1,5 @@ import { Entity } from 'prismarine-entity' -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import tracker from '@nxg-org/mineflayer-tracker' import { loader as autoJumpPlugin } from '@nxg-org/mineflayer-auto-jump' import { subscribeKey } from 'valtio/utils' diff --git a/src/globals.d.ts b/src/globals.d.ts index 10d05fa0..96b32916 100644 --- a/src/globals.d.ts +++ b/src/globals.d.ts @@ -11,8 +11,8 @@ declare const bot: Omit & { } } declare const __type_bot: typeof bot -declare const viewer: import('prismarine-viewer/viewer/lib/viewer').Viewer -declare const worldView: import('prismarine-viewer/viewer/lib/worldDataEmitter').WorldDataEmitter | undefined +declare const viewer: import('renderer/viewer/lib/viewer').Viewer +declare const worldView: import('renderer/viewer/lib/worldDataEmitter').WorldDataEmitter | undefined declare const addStatPerSec: (name: string) => void declare const localServer: import('flying-squid/dist/index').FullServer & { options } | undefined /** all currently loaded mc data */ diff --git a/src/googledrive.ts b/src/googledrive.ts index c1007bd5..76fa1ce2 100644 --- a/src/googledrive.ts +++ b/src/googledrive.ts @@ -1,7 +1,7 @@ import { GoogleOAuthProvider, useGoogleLogin } from '@react-oauth/google' import { proxy, ref, subscribe } from 'valtio' import React from 'react' -import { loadScript } from 'prismarine-viewer/viewer/lib/utils' +import { loadScript } from 'renderer/viewer/lib/utils' import { loadGoogleDriveApi, loadInMemorySave } from './react/SingleplayerProvider' import { setLoadingScreenStatus } from './appStatus' import { mountGoogleDriveFolder } from './browserfs' diff --git a/src/index.ts b/src/index.ts index 437fb15b..99efa5f8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -35,7 +35,7 @@ import downloadAndOpenFile from './downloadAndOpenFile' import fs from 'fs' import net from 'net' import mineflayer from 'mineflayer' -import { WorldDataEmitter, Viewer } from 'prismarine-viewer/viewer' +import { WorldDataEmitter, Viewer } from 'renderer/viewer' import pathfinder from 'mineflayer-pathfinder' import { Vec3 } from 'vec3' @@ -88,14 +88,14 @@ import { possiblyHandleStateVariable } from './googledrive' import flyingSquidEvents from './flyingSquidEvents' import { hideNotification, notificationProxy, showNotification } from './react/NotificationProvider' import { saveToBrowserMemory } from './react/PauseScreen' -import { ViewerWrapper } from 'prismarine-viewer/viewer/lib/viewerWrapper' +import { ViewerWrapper } from 'renderer/viewer/lib/viewerWrapper' import './devReload' import './water' import { ConnectOptions, downloadMcDataOnConnect, getVersionAutoSelect, downloadOtherGameData, downloadAllMinecraftData } from './connect' import { ref, subscribe } from 'valtio' import { signInMessageState } from './react/SignInMessageProvider' -import { updateAuthenticatedAccountData, updateLoadedServerData, updateServerConnectionHistory } from './react/ServersListProvider' -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { updateAuthenticatedAccountData, updateLoadedServerData, updateServerConnectionHistory } from './react/serversStorage' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import packetsPatcher from './packetsPatcher' import { mainMenuState } from './react/MainMenuRenderApp' import { ItemsRenderer } from 'mc-assets/dist/itemsRenderer' @@ -159,7 +159,7 @@ if (isIphone) { } // Create viewer -const viewer: import('prismarine-viewer/viewer/lib/viewer').Viewer = new Viewer(renderer) +const viewer: import('renderer/viewer/lib/viewer').Viewer = new Viewer(renderer) window.viewer = viewer viewer.getMineflayerBot = () => bot // todo unify diff --git a/src/inventoryWindows.ts b/src/inventoryWindows.ts index 931348b5..efda5392 100644 --- a/src/inventoryWindows.ts +++ b/src/inventoryWindows.ts @@ -6,7 +6,7 @@ import { RecipeItem } from 'minecraft-data' import { flat, fromFormattedString } from '@xmcl/text-component' import { splitEvery, equals } from 'rambda' import PItem, { Item } from 'prismarine-item' -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import { getRenamedData } from 'flying-squid/dist/blockRenames' import PrismarineChatLoader from 'prismarine-chat' import { BlockModel } from 'mc-assets' diff --git a/src/loadSave.ts b/src/loadSave.ts index 1f683775..861cc212 100644 --- a/src/loadSave.ts +++ b/src/loadSave.ts @@ -3,7 +3,7 @@ import path from 'path' import * as nbt from 'prismarine-nbt' import { proxy } from 'valtio' import { gzip } from 'node-gzip' -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import { options } from './optionsStorage' import { nameToMcOfflineUUID, disconnect } from './flyingSquidUtils' import { existsViaStats, forceCachedDataPaths, forceRedirectPaths, mkdirRecursive } from './browserfs' diff --git a/src/optimizeJson.ts b/src/optimizeJson.ts index 491c8301..d19d25d5 100644 --- a/src/optimizeJson.ts +++ b/src/optimizeJson.ts @@ -1,4 +1,4 @@ -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' type IdMap = Record diff --git a/src/optionsGuiScheme.tsx b/src/optionsGuiScheme.tsx index a56e5200..9ea25920 100644 --- a/src/optionsGuiScheme.tsx +++ b/src/optionsGuiScheme.tsx @@ -1,6 +1,6 @@ import { useRef, useState } from 'react' import { useSnapshot } from 'valtio' -import { openURL } from 'prismarine-viewer/viewer/lib/simpleUtils' +import { openURL } from 'renderer/viewer/lib/simpleUtils' import { noCase } from 'change-case' import { gameAdditionalState, miscUiState, openOptionsMenu, showModal } from './globalState' import { AppOptions, options } from './optionsStorage' diff --git a/src/panorama.ts b/src/panorama.ts index 226acf4b..efc06e16 100644 --- a/src/panorama.ts +++ b/src/panorama.ts @@ -4,7 +4,7 @@ import { join } from 'path' import fs from 'fs' import * as THREE from 'three' import { subscribeKey } from 'valtio/utils' -import { EntityMesh } from 'prismarine-viewer/viewer/lib/entity/EntityMesh' +import { EntityMesh } from 'renderer/viewer/lib/entity/EntityMesh' import { fromTexturePackPath, resourcePackState } from './resourcePack' import { options, watchValue } from './optionsStorage' import { miscUiState } from './globalState' @@ -105,7 +105,7 @@ export async function addPanoramaCubeMap () { // should be rewritten entirely for (let i = 0; i < 20; i++) { - const m = new EntityMesh('1.16.4', 'squid').mesh! + const m = new EntityMesh('1.16.4', 'squid', viewer.world).mesh m.position.set(Math.random() * 30 - 15, Math.random() * 20 - 10, Math.random() * 10 - 17) m.rotation.set(0, Math.PI + Math.random(), -Math.PI / 4, 'ZYX') const v = Math.random() * 0.01 diff --git a/src/react/AppStatusProvider.tsx b/src/react/AppStatusProvider.tsx index ffbc593c..e0c620a7 100644 --- a/src/react/AppStatusProvider.tsx +++ b/src/react/AppStatusProvider.tsx @@ -1,8 +1,6 @@ import { proxy, useSnapshot } from 'valtio' -import { useEffect, useRef, useState } from 'react' -import { activeModalStack, activeModalStacks, hideModal, insertActiveModalStack, miscUiState, showModal } from '../globalState' -import { resetLocalStorageWorld } from '../browserfs' -import { fsState } from '../loadSave' +import { useEffect, useState } from 'react' +import { activeModalStack, activeModalStacks, hideModal, insertActiveModalStack, miscUiState } from '../globalState' import { guessProblem } from '../errorLoadingScreenHelpers' import type { ConnectOptions } from '../connect' import { downloadPacketsReplay, packetsReplaceSessionState, replayLogger } from '../packetsReplay' @@ -12,10 +10,9 @@ import DiveTransition from './DiveTransition' import { useDidUpdateEffect } from './utils' import { useIsModalActive } from './utilsApp' import Button from './Button' -import { AuthenticatedAccount, updateAuthenticatedAccountData, updateLoadedServerData } from './ServersListProvider' +import { updateAuthenticatedAccountData, updateLoadedServerData, AuthenticatedAccount } from './serversStorage' import { showOptionsModal } from './SelectOption' import LoadingChunks from './LoadingChunks' -import MessageFormatted from './MessageFormatted' import MessageFormattedString from './MessageFormattedString' const initialState = { diff --git a/src/react/BookProvider.tsx b/src/react/BookProvider.tsx index db68d95a..056377cc 100644 --- a/src/react/BookProvider.tsx +++ b/src/react/BookProvider.tsx @@ -1,4 +1,4 @@ -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import nbt from 'prismarine-nbt' import { useEffect, useState } from 'react' import { useSnapshot } from 'valtio' diff --git a/src/react/ChatProvider.tsx b/src/react/ChatProvider.tsx index 7caf6955..85f3b6e0 100644 --- a/src/react/ChatProvider.tsx +++ b/src/react/ChatProvider.tsx @@ -7,7 +7,7 @@ import { options } from '../optionsStorage' import Chat, { Message, fadeMessage } from './Chat' import { useIsModalActive } from './utilsApp' import { hideNotification, showNotification } from './NotificationProvider' -import { updateLoadedServerData } from './ServersListProvider' +import { updateLoadedServerData } from './serversStorage' import { lastConnectOptions } from './AppStatusProvider' export default () => { diff --git a/src/react/DiscordButton.tsx b/src/react/DiscordButton.tsx index 99208c45..3824c4c1 100644 --- a/src/react/DiscordButton.tsx +++ b/src/react/DiscordButton.tsx @@ -1,5 +1,5 @@ import { useFloating, arrow, FloatingArrow, offset as offsetMiddleware, Placement, autoPlacement } from '@floating-ui/react' -import { openURL } from 'prismarine-viewer/viewer/lib/simpleUtils' +import { openURL } from 'renderer/viewer/lib/simpleUtils' import { CSSProperties, useState } from 'react' import Button from './Button' import PixelartIcon, { pixelartIcons } from './PixelartIcon' diff --git a/src/react/Input.tsx b/src/react/Input.tsx index f265eb5f..790d6c8d 100644 --- a/src/react/Input.tsx +++ b/src/react/Input.tsx @@ -1,5 +1,5 @@ import React, { CSSProperties, useEffect, useMemo, useRef, useState } from 'react' -import { isMobile } from 'prismarine-viewer/viewer/lib/simpleUtils' +import { isMobile } from 'renderer/viewer/lib/simpleUtils' import styles from './input.module.css' interface Props extends Omit, 'width'> { diff --git a/src/react/MainMenu.tsx b/src/react/MainMenu.tsx index 349d9a43..ff0ab4bd 100644 --- a/src/react/MainMenu.tsx +++ b/src/react/MainMenu.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { openURL } from 'prismarine-viewer/viewer/lib/simpleUtils' +import { openURL } from 'renderer/viewer/lib/simpleUtils' import { haveDirectoryPicker } from '../utils' import { ConnectOptions } from '../connect' import styles from './mainMenu.module.css' diff --git a/src/react/MessageFormatted.tsx b/src/react/MessageFormatted.tsx index 3b727fc8..95204b26 100644 --- a/src/react/MessageFormatted.tsx +++ b/src/react/MessageFormatted.tsx @@ -2,7 +2,7 @@ import { ComponentProps } from 'react' import { render } from '@xmcl/text-component' import { noCase } from 'change-case' import mojangson from 'mojangson' -import { openURL } from 'prismarine-viewer/viewer/lib/simpleUtils' +import { openURL } from 'renderer/viewer/lib/simpleUtils' import { MessageFormatPart } from '../chatUtils' import { chatInputValueGlobal } from './Chat' import './MessageFormatted.css' diff --git a/src/react/MinimapProvider.tsx b/src/react/MinimapProvider.tsx index 44ee57b8..4d673a2f 100644 --- a/src/react/MinimapProvider.tsx +++ b/src/react/MinimapProvider.tsx @@ -3,16 +3,16 @@ import { versions } from 'minecraft-data' import { simplify } from 'prismarine-nbt' import RegionFile from 'prismarine-provider-anvil/src/region' import { Vec3 } from 'vec3' -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import { WorldWarp } from 'flying-squid/dist/lib/modules/warps' import { TypedEventEmitter } from 'contro-max/build/typedEventEmitter' import { PCChunk } from 'prismarine-chunk' import { Chunk } from 'prismarine-world/types/world' import { Block } from 'prismarine-block' -import { INVISIBLE_BLOCKS } from 'prismarine-viewer/viewer/lib/mesher/worldConstants' +import { INVISIBLE_BLOCKS } from 'renderer/viewer/lib/mesher/worldConstants' import { getRenamedData } from 'flying-squid/dist/blockRenames' import { useSnapshot } from 'valtio' -import BlockData from '../../prismarine-viewer/viewer/lib/moreBlockDataGenerated.json' +import BlockData from '../../renderer/viewer/lib/moreBlockDataGenerated.json' import preflatMap from '../preflatMap.json' import { contro } from '../controls' import { gameAdditionalState, showModal, hideModal, miscUiState, activeModalStack } from '../globalState' diff --git a/src/react/ModuleSignsViewer.tsx b/src/react/ModuleSignsViewer.tsx index 2115c352..70b42ba0 100644 --- a/src/react/ModuleSignsViewer.tsx +++ b/src/react/ModuleSignsViewer.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef, useState } from 'react' -import { WorldRendererThree } from 'prismarine-viewer/viewer/lib/worldrendererThree' +import { WorldRendererThree } from 'renderer/viewer/lib/worldrendererThree' import FullScreenWidget from './FullScreenWidget' export const name = 'loaded world signs' diff --git a/src/react/PauseScreen.tsx b/src/react/PauseScreen.tsx index 5cc0c432..01edaa13 100644 --- a/src/react/PauseScreen.tsx +++ b/src/react/PauseScreen.tsx @@ -3,7 +3,7 @@ import fs from 'fs' import { useEffect } from 'react' import { subscribe, useSnapshot } from 'valtio' import { usedServerPathsV1 } from 'flying-squid/dist/lib/modules/world' -import { openURL } from 'prismarine-viewer/viewer/lib/simpleUtils' +import { openURL } from 'renderer/viewer/lib/simpleUtils' import { Vec3 } from 'vec3' import { generateSpiralMatrix } from 'flying-squid/dist/utils' import { subscribeKey } from 'valtio/utils' diff --git a/src/react/ServersListProvider.tsx b/src/react/ServersListProvider.tsx index 308ee1ff..b7c19936 100644 --- a/src/react/ServersListProvider.tsx +++ b/src/react/ServersListProvider.tsx @@ -1,12 +1,11 @@ import { useEffect, useMemo, useState } from 'react' import { useUtilsEffect } from '@zardoy/react-util' import { useSnapshot } from 'valtio' -import { ConnectOptions, downloadAllMinecraftData, getVersionAutoSelect } from '../connect' +import { ConnectOptions } from '../connect' import { activeModalStack, hideCurrentModal, miscUiState, showModal } from '../globalState' import supportedVersions from '../supportedVersions.mjs' import { appQueryParams } from '../appParams' import { fetchServerStatus, isServerValid } from '../api/mcStatusApi' -import { pingServerVersion } from '../mineflayer/minecraft-protocol-extra' import { getServerInfo } from '../mineflayer/mc-protocol' import { parseServerAddress } from '../utils' import ServersList from './ServersList' @@ -15,14 +14,7 @@ import { useDidUpdateEffect } from './utils' import { useIsModalActive } from './utilsApp' import { showOptionsModal } from './SelectOption' import { useCopyKeybinding } from './simpleHooks' - -export interface StoreServerItem extends BaseServerInfo { - lastJoined?: number - description?: string - optionsOverride?: Record - autoLogin?: Record - numConnects?: number // Track number of connections -} +import { AuthenticatedAccount, getInitialServersList, getServerConnectionHistory, setNewServersList, StoreServerItem } from './serversStorage' type AdditionalDisplayData = { formattedText: string @@ -31,64 +23,9 @@ type AdditionalDisplayData = { offline?: boolean } -export interface AuthenticatedAccount { - // type: 'microsoft' - username: string - cachedTokens?: { - data: any - expiresOn: number - } -} - -const getInitialServersList = () => { - if (localStorage['serversList']) return JSON.parse(localStorage['serversList']) as StoreServerItem[] - - const servers = [] as StoreServerItem[] - - const legacyServersList = localStorage['serverHistory'] ? JSON.parse(localStorage['serverHistory']) as string[] : null - if (legacyServersList) { - for (const server of legacyServersList) { - if (!server || localStorage['server'] === server) continue - servers.push({ ip: server, lastJoined: Date.now() }) - } - } - - if (localStorage['server']) { - const legacyLastJoinedServer: StoreServerItem = { - ip: localStorage['server'], - versionOverride: localStorage['version'], - lastJoined: Date.now() - } - servers.push(legacyLastJoinedServer) - } - - if (servers.length === 0) { // server list is empty, let's suggest some - for (const server of miscUiState.appConfig?.promoteServers ?? []) { - servers.push({ - ip: server.ip, - description: server.description, - versionOverride: server.version, - }) - } - } - - return servers -} - const serversListQs = appQueryParams.serversList const proxyQs = appQueryParams.proxy -const setNewServersList = (serversList: StoreServerItem[], force = false) => { - if (serversListQs && !force) return - localStorage['serversList'] = JSON.stringify(serversList) - - // cleanup legacy - localStorage.removeItem('serverHistory') - localStorage.removeItem('server') - localStorage.removeItem('password') - localStorage.removeItem('version') -} - const getInitialProxies = () => { const proxies = [] as string[] if (miscUiState.appConfig?.defaultProxy) { @@ -101,59 +38,6 @@ const getInitialProxies = () => { return proxies } -export const updateLoadedServerData = (callback: (data: StoreServerItem) => StoreServerItem, index = miscUiState.loadedServerIndex) => { - if (!index) index = miscUiState.loadedServerIndex - if (!index) return - // function assumes component is not mounted to avoid sync issues after save - const servers = getInitialServersList() - const server = servers[index] - servers[index] = callback(server) - setNewServersList(servers) -} - -export const updateAuthenticatedAccountData = (callback: (data: AuthenticatedAccount[]) => AuthenticatedAccount[]) => { - const accounts = JSON.parse(localStorage['authenticatedAccounts'] || '[]') as AuthenticatedAccount[] - const newAccounts = callback(accounts) - localStorage['authenticatedAccounts'] = JSON.stringify(newAccounts) -} - -interface ServerConnectionHistory { - ip: string - numConnects: number - lastConnected: number - version?: string -} - -export function updateServerConnectionHistory (ip: string, version?: string) { - try { - const history: ServerConnectionHistory[] = JSON.parse(localStorage.getItem('serverConnectionHistory') || '[]') - const existingServer = history.find(s => s.ip === ip) - if (existingServer) { - existingServer.numConnects++ - existingServer.lastConnected = Date.now() - if (version) existingServer.version = version - } else { - history.push({ - ip, - numConnects: 1, - lastConnected: Date.now(), - version - }) - } - localStorage.setItem('serverConnectionHistory', JSON.stringify(history)) - } catch (err) { - console.error('Failed to update server connection history:', err) - } -} - -export function getServerConnectionHistory (): ServerConnectionHistory[] { - try { - return JSON.parse(localStorage.getItem('serverConnectionHistory') || '[]') - } catch { - return [] - } -} - // todo move to base const normalizeIp = (ip: string) => ip.replace(/https?:\/\//, '').replace(/\/(:|$)/, '') diff --git a/src/react/SingleplayerProvider.tsx b/src/react/SingleplayerProvider.tsx index c328813e..6672de6e 100644 --- a/src/react/SingleplayerProvider.tsx +++ b/src/react/SingleplayerProvider.tsx @@ -1,7 +1,7 @@ import fs from 'fs' import { proxy, subscribe, useSnapshot } from 'valtio' import { useEffect, useRef, useState } from 'react' -import { loadScript } from 'prismarine-viewer/viewer/lib/utils' +import { loadScript } from 'renderer/viewer/lib/utils' import { fsState, loadSave, longArrayToNumber, readLevelDat } from '../loadSave' import { googleDriveGetFileIdFromPath, mountExportFolder, mountGoogleDriveFolder, removeFileRecursiveAsync } from '../browserfs' import { hideCurrentModal, showModal } from '../globalState' diff --git a/src/react/serversStorage.ts b/src/react/serversStorage.ts new file mode 100644 index 00000000..74f51a8d --- /dev/null +++ b/src/react/serversStorage.ts @@ -0,0 +1,115 @@ +import { appQueryParams } from '../appParams' +import { miscUiState } from '../globalState' +import { BaseServerInfo } from './AddServerOrConnect' + +const serversListQs = appQueryParams.serversList + +export interface StoreServerItem extends BaseServerInfo { + lastJoined?: number + description?: string + optionsOverride?: Record + autoLogin?: Record + numConnects?: number // Track number of connections +} +export interface AuthenticatedAccount { + // type: 'microsoft' + username: string + cachedTokens?: { + data: any + expiresOn: number + } +} +export interface ServerConnectionHistory { + ip: string + numConnects: number + lastConnected: number + version?: string +} + +export function updateServerConnectionHistory (ip: string, version?: string) { + try { + const history: ServerConnectionHistory[] = JSON.parse(localStorage.getItem('serverConnectionHistory') || '[]') + const existingServer = history.find(s => s.ip === ip) + if (existingServer) { + existingServer.numConnects++ + existingServer.lastConnected = Date.now() + if (version) existingServer.version = version + } else { + history.push({ + ip, + numConnects: 1, + lastConnected: Date.now(), + version + }) + } + localStorage.setItem('serverConnectionHistory', JSON.stringify(history)) + } catch (err) { + console.error('Failed to update server connection history:', err) + } +} +export const updateLoadedServerData = (callback: (data: StoreServerItem) => StoreServerItem, index = miscUiState.loadedServerIndex) => { + if (!index) index = miscUiState.loadedServerIndex + if (!index) return + // function assumes component is not mounted to avoid sync issues after save + const servers = getInitialServersList() + const server = servers[index] + servers[index] = callback(server) + setNewServersList(servers) +} +export const setNewServersList = (serversList: StoreServerItem[], force = false) => { + if (serversListQs && !force) return + localStorage['serversList'] = JSON.stringify(serversList) + + // cleanup legacy + localStorage.removeItem('serverHistory') + localStorage.removeItem('server') + localStorage.removeItem('password') + localStorage.removeItem('version') +} +export const getInitialServersList = () => { + if (localStorage['serversList']) return JSON.parse(localStorage['serversList']) as StoreServerItem[] + + const servers = [] as StoreServerItem[] + + const legacyServersList = localStorage['serverHistory'] ? JSON.parse(localStorage['serverHistory']) as string[] : null + if (legacyServersList) { + for (const server of legacyServersList) { + if (!server || localStorage['server'] === server) continue + servers.push({ ip: server, lastJoined: Date.now() }) + } + } + + if (localStorage['server']) { + const legacyLastJoinedServer: StoreServerItem = { + ip: localStorage['server'], + versionOverride: localStorage['version'], + lastJoined: Date.now() + } + servers.push(legacyLastJoinedServer) + } + + if (servers.length === 0) { // server list is empty, let's suggest some + for (const server of miscUiState.appConfig?.promoteServers ?? []) { + servers.push({ + ip: server.ip, + description: server.description, + versionOverride: server.version, + }) + } + } + + return servers +} +export const updateAuthenticatedAccountData = (callback: (data: AuthenticatedAccount[]) => AuthenticatedAccount[]) => { + const accounts = JSON.parse(localStorage['authenticatedAccounts'] || '[]') as AuthenticatedAccount[] + const newAccounts = callback(accounts) + localStorage['authenticatedAccounts'] = JSON.stringify(newAccounts) +} + +export function getServerConnectionHistory (): ServerConnectionHistory[] { + try { + return JSON.parse(localStorage.getItem('serverConnectionHistory') || '[]') + } catch { + return [] + } +} diff --git a/src/resourcePack.ts b/src/resourcePack.ts index 66c8a656..c65f44d6 100644 --- a/src/resourcePack.ts +++ b/src/resourcePack.ts @@ -3,7 +3,7 @@ import { join, dirname, basename } from 'path' import fs from 'fs' import JSZip from 'jszip' import { proxy, subscribe } from 'valtio' -import { WorldRendererThree } from 'prismarine-viewer/viewer/lib/worldrendererThree' +import { WorldRendererThree } from 'renderer/viewer/lib/worldrendererThree' import { collectFilesToCopy, copyFilesAsyncWithProgress, mkdirRecursive, removeFileRecursiveAsync } from './browserfs' import { setLoadingScreenStatus } from './appStatus' import { showNotification } from './react/NotificationProvider' diff --git a/src/shims/minecraftData.ts b/src/shims/minecraftData.ts index 09124771..c25bcfb0 100644 --- a/src/shims/minecraftData.ts +++ b/src/shims/minecraftData.ts @@ -1,4 +1,4 @@ -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' import JsonOptimizer from '../optimizeJson' // import minecraftInitialDataJson from '../../generated/minecraft-initial-data.json' import { toMajorVersion } from '../utils' diff --git a/src/sounds/botSoundSystem.ts b/src/sounds/botSoundSystem.ts index 4bf014ac..01cef0c5 100644 --- a/src/sounds/botSoundSystem.ts +++ b/src/sounds/botSoundSystem.ts @@ -1,6 +1,6 @@ import { Vec3 } from 'vec3' -import { versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' -import { loadScript } from 'prismarine-viewer/viewer/lib/utils' +import { versionToNumber } from 'renderer/viewer/prepare/utils' +import { loadScript } from 'renderer/viewer/lib/utils' import type { Block } from 'prismarine-block' import { subscribeKey } from 'valtio/utils' import { miscUiState } from '../globalState' diff --git a/src/sounds/soundsMap.ts b/src/sounds/soundsMap.ts index 94c5a4d8..c53be871 100644 --- a/src/sounds/soundsMap.ts +++ b/src/sounds/soundsMap.ts @@ -1,6 +1,6 @@ import fs from 'fs' import path from 'path' -import { versionsMapToMajor, versionToMajor, versionToNumber } from 'prismarine-viewer/viewer/prepare/utils' +import { versionsMapToMajor, versionToMajor, versionToNumber } from 'renderer/viewer/prepare/utils' import { stopAllSounds } from '../basicSounds' import { musicSystem } from './musicSystem' diff --git a/src/watchOptions.ts b/src/watchOptions.ts index 84092de2..e248c459 100644 --- a/src/watchOptions.ts +++ b/src/watchOptions.ts @@ -1,8 +1,8 @@ // not all options are watched here import { subscribeKey } from 'valtio/utils' -import { WorldRendererThree } from 'prismarine-viewer/viewer/lib/worldrendererThree' -import { isMobile } from 'prismarine-viewer/viewer/lib/simpleUtils' +import { WorldRendererThree } from 'renderer/viewer/lib/worldrendererThree' +import { isMobile } from 'renderer/viewer/lib/simpleUtils' import { options, watchValue } from './optionsStorage' import { reloadChunks } from './utils' import { miscUiState } from './globalState' diff --git a/tsconfig.json b/tsconfig.json index addc64f1..24926180 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,8 +25,8 @@ "include": [ "src", "cypress", - "prismarine-viewer/viewer", - "prismarine-viewer/examples" + "renderer/viewer", + "renderer/playground" ], "exclude": [ "node_modules" diff --git a/vitest.config.ts b/vitest.config.ts index c27621d5..ea875183 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from 'vitest/config' export default defineConfig({ - root: 'prismarine-viewer/viewer', + root: 'renderer/viewer', test: { include: [ '../../src/botUtils.test.ts',