Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
ff62d67
fix(critical): fix support for all versions above 1.20.2 in mineflaye…
zardoy Jul 3, 2025
52b99ca
remove renderer
zardoy Dec 6, 2025
d14a888
almost there
zardoy Dec 9, 2025
61db0c1
a working offthread!
zardoy Dec 11, 2025
1e18081
Update package.json
zardoy Dec 11, 2025
b61ccb9
[deploy] fix prod build
zardoy Dec 12, 2025
10c69aa
fix: player state initialization on bot creation
Valery-a Dec 26, 2025
a0ee255
Merge branch 'next' into renderer-remove
zardoy Dec 26, 2025
a8cf4db
update: minecraft-renderer to version 0.1.12 to fix correct cpu dispo…
Valery-a Dec 26, 2025
a7c08f1
Add: watchOptionsAfterWorldViewInit with appViewer
Valery-a Dec 26, 2025
0ac9a45
up renderer
zardoy Dec 26, 2025
d1fbe00
up
zardoy Dec 28, 2025
ca672a0
fix lint
zardoy Dec 28, 2025
9dad872
Update package.json
zardoy Dec 28, 2025
8d784ba
Merge branch 'next' into renderer-remove
zardoy Jan 21, 2026
9971aa8
fix gui textuds
zardoy Jan 21, 2026
087bdac
up r
zardoy Jan 21, 2026
8f62009
fix(proxy): serve .wasm with application/wasm mime
Feb 7, 2026
2527467
fix(renderer): serve wasm mesher assets from minecraft-renderer package
Feb 7, 2026
4c2077e
wasm mesher
zardoy Feb 8, 2026
8db3790
Add loadChunk for chunkColumnLoad
Valery-a Mar 5, 2026
ae9adb1
Merge remote-tracking branch 'upstream/next' into fix-conflicts
Mar 12, 2026
5153142
fix: regenerate pnpm-lock.yaml after merge
Mar 12, 2026
ae8964f
ignore not used code
zardoy Mar 12, 2026
fa423b4
fix tsc, up
zardoy Mar 12, 2026
d19ffa6
Update ci.yml
zardoy Mar 12, 2026
4974bac
Update preview.yml
zardoy Mar 12, 2026
d25fc93
up new pr parsing + json config! rain support!
zardoy Mar 13, 2026
b76eea8
rain tst
zardoy Mar 21, 2026
3d1d8d6
Merge remote-tracking branch 'origin/next' into renderer-remove
zardoy Mar 21, 2026
7eb8e4a
feat: add walkDist/bob player state tracking for camera bobbing (#528)
sandexzx Mar 23, 2026
667055e
Merge remote-tracking branch 'origin/next' into renderer-remove
zardoy Mar 30, 2026
ba4c82b
Update package.json
zardoy Mar 31, 2026
d905c30
feat: Break particles (#533)
sandexzx Apr 2, 2026
f1921d8
Update package.json
zardoy Apr 3, 2026
9b90009
fix: pass bot instance to worldView init for sign text rendering
Apr 20, 2026
89efd7b
Merge branch 'next' into renderer-remove
zardoy Apr 21, 2026
66594b7
merge up
zardoy Apr 21, 2026
3383d54
fix lint
zardoy Apr 21, 2026
d93dce6
up ver
zardoy Apr 21, 2026
3071803
feat: add wasm column mesher option
Apr 27, 2026
c23e37a
fix: map chain collision shape for older versions
Apr 27, 2026
6d4ca9c
chore: remove wasm column mesher option
Apr 28, 2026
bc74243
feat: enable WASM mesher by default
Apr 29, 2026
d65944e
fix: restore F3+A reload chunks shortcut
Apr 29, 2026
40f957d
fix(safari): disable wasm mesher conversion cache to prevent OOM
Apr 29, 2026
a7d897a
Merge branch 'next' into renderer-remove
zardoy May 2, 2026
c07c75d
add futuristic reveal option
zardoy May 3, 2026
2c46e8f
NEW add chunk tempalte format for preview
zardoy May 3, 2026
13e2d96
feat(mineflayer): forward raw map_chunk packets to renderer worker
May 5, 2026
7108fe8
chore(map-chunk): drop stale type cast on worldView.emit
May 5, 2026
e26ac45
feat(mineflayer): forward 1.17 parsed map_chunk to renderer worker
May 5, 2026
29f27e7
feat: forward raw.update_light for 1.17 to WASM mesher
May 6, 2026
c066826
feat(mineflayer): forward 1.16 map_chunk + update_light to renderer w…
May 6, 2026
62dbf8d
Merge branch 'wasm-mesher-1.16' into wasm-mesher-raw-map-chunk
May 6, 2026
ce03875
feat(mineflayer): forward map_chunk + update_light packets to rendere…
zardoy May 7, 2026
7d0b085
refactor(mineflayer): forward map_chunk packets via backend.feedChunk…
May 7, 2026
605e226
refactor(mineflayer): forward map_chunk packets via backend.feedChunk…
zardoy May 8, 2026
168d6ae
feat: replace lowMemoryMode with worldPerformance (low-energy / norma…
May 9, 2026
8df8253
cleanup impl, add override option for testing
zardoy May 9, 2026
422fef5
Feat: world performance (#551)
zardoy May 9, 2026
af4beca
chore(deps): update mesher import paths after renderer refactor
May 12, 2026
6d00680
chore(deps): update mesher import paths after renderer refactor (#553)
zardoy May 13, 2026
bee44e4
Merge remote-tracking branch 'origin/main' into renderer-remove
zardoy May 14, 2026
130bf7a
Merge remote-tracking branch 'origin/next' into renderer-remove
zardoy May 14, 2026
5e74793
fix extremely criitcal issue
zardoy May 14, 2026
4dd6c2f
final cleanup
zardoy May 31, 2026
ae63559
Merge origin/next into renderer-remove.
zardoy Jun 1, 2026
8e509db
clean options
zardoy Jun 1, 2026
62a0195
cleanup fov
zardoy Jun 1, 2026
648f701
busim
zardoy Jun 1, 2026
70369e2
lints
zardoy Jun 1, 2026
4565503
[pick] better err format
zardoy Jun 1, 2026
ded3163
fix build
zardoy Jun 1, 2026
4db77a0
better up items opt
zardoy Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,4 @@ jobs:
run: |
for alias in $(echo ${{ steps.alias.outputs.alias }} | tr "," "\n"); do
vercel alias set ${{ steps.deploy.outputs.stdout }} $alias --token=${{ secrets.VERCEL_TOKEN }} --scope=zaro
done
done
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ config.local.json
logs/

src/react/npmReactComponents.ts
.env*.local
28 changes: 1 addition & 27 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,32 +33,6 @@ 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 (`renderer`)

- Playground Scripts:
- Start: `pnpm run-playground` (playground, mesher + server) or `pnpm watch-playground`
- Build: `pnpm build-playground` or `node renderer/esbuild.mjs`

- Mesher Scripts:
- Start: `pnpm watch-mesher`
- Build: `pnpm build-mesher`

Paths:

- `renderer` - Improved and refactored version of <https://github.com/PrismarineJS/prismarine-viewer>. 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 <mcraft.fun/playground.html>) Use this for testing any rendering changes. You can also modify the playground code.

### Storybook (`.storybook`)

Storybook is a tool for easier developing and testing React components.
Path of all Storybook stories is `src/react/**/*.stories.tsx`.

- Scripts:
- Start: `pnpm storybook`
- Build: `pnpm build-storybook`

## Core-related

How different modules are used:
Expand All @@ -69,7 +43,7 @@ How different modules are used:

To start the main web app and playground, run `pnpm run-all`. Note is doesn't start storybook and tests.

## Cypress Tests (E2E)
## Cypress Tests (Browser Integration)

Cypress tests are located in `cypress` folder. To run them, run `pnpm test-mc-server` and then `pnpm test:cypress` when the `pnpm prod-start` is running (or change the port to 3000 to test with the dev server). Usually you don't need to run these until you get issues on the CI.

Expand Down
2 changes: 1 addition & 1 deletion config.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
}
],
"rightSideText": "A Minecraft client clone in the browser!",
"splashText": "Thanks for testing my chaos!",
"splashText": "Mind the bugs and have fun!",
"splashTextFallback": "Welcome!",
"pauseLinks": [
[
Expand Down
12 changes: 6 additions & 6 deletions cypress/plugins/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
const { cypressEsbuildPreprocessor } = require('cypress-esbuild-preprocessor')
const { initPlugin } = require('cypress-plugin-snapshots/plugin')
const polyfill = require('esbuild-plugin-polyfill-node')
const { startMinecraftServer } = require('./startServer')
// const { startMinecraftServer } = require('./startServer')

module.exports = (on, config) => {
initPlugin(on, config)
Expand All @@ -24,10 +24,10 @@ module.exports = (on, config) => {
return null
},
})
on('task', {
async startServer([version, port]) {
return startMinecraftServer(version, port)
}
})
// on('task', {
// async startServer([version, port]) {
// return startMinecraftServer(version, port)
// }
// })
return config
}
File renamed without changes.
2 changes: 1 addition & 1 deletion experiments/state.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SmoothSwitcher } from '../renderer/viewer/lib/smoothSwitcher'
import { SmoothSwitcher } from 'minecraft-renderer/src/lib/smoothSwitcher'

const div = document.createElement('div')
div.style.width = '100px'
Expand Down
2 changes: 1 addition & 1 deletion experiments/three-fireworks.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as THREE from 'three'
import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js'
import { FireworksManager } from '../renderer/viewer/three/fireworks'
import { FireworksManager } from 'minecraft-renderer/src/three/fireworks'

// Create scene, camera and renderer
const scene = new THREE.Scene()
Expand Down
2 changes: 1 addition & 1 deletion experiments/three-item.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
import itemsAtlas from 'mc-assets/dist/itemsAtlasLegacy.png'
import { createItemMeshFromCanvas, createItemMesh } from '../renderer/viewer/three/itemMesh'
import { createItemMeshFromCanvas, createItemMesh } from 'minecraft-renderer/src/three/itemMesh'

// Create scene, camera and renderer
const scene = new THREE.Scene()
Expand Down
2 changes: 1 addition & 1 deletion experiments/three-labels.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as THREE from 'three'
import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js'
import { createWaypointSprite, WAYPOINT_CONFIG } from '../renderer/viewer/three/waypointSprite'
import { createWaypointSprite, WAYPOINT_CONFIG } from 'minecraft-renderer/src/three/waypointSprite'

// Create scene, camera and renderer
const scene = new THREE.Scene()
Expand Down
24 changes: 10 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
"scripts": {
"dev-rsbuild": "rsbuild dev",
"dev-proxy": "node server.js",
"start": "run-p dev-proxy dev-rsbuild watch-mesher",
"start2": "run-p dev-rsbuild watch-mesher",
"start": "run-p dev-proxy dev-rsbuild",
"start2": "run-p dev-rsbuild",
Comment thread
zardoy marked this conversation as resolved.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Lint script references removed renderer folder

The lint script includes renderer in its glob pattern {src,cypress,renderer}/**/*.{ts,js,jsx,tsx}, but the renderer folder and its link:renderer devDependency were removed in this commit. Running pnpm lint may fail or behave unexpectedly when trying to lint a non-existent directory.

Fix in Cursor Fix in Web

"start-metrics": "ENABLE_METRICS=true rsbuild dev",
"build": "pnpm build-other-workers && rsbuild build",
"build": "rsbuild build",
"build-analyze": "BUNDLE_ANALYZE=true rsbuild build && pnpm build-other-workers",
Comment thread
zardoy marked this conversation as resolved.
"build-single-file": "SINGLE_FILE_BUILD=true rsbuild build",
"prepare-project": "tsx scripts/genShims.ts && tsx scripts/makeOptimizedMcData.mjs && tsx scripts/genLargeDataAliases.ts",
Expand All @@ -20,20 +20,14 @@
"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,renderer}/**/*.{ts,js,jsx,tsx}\"",
"lint": "eslint \"{src,cypress}/**/*.{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 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",
"watch-playground": "rsbuild dev --config renderer/rsbuild.config.ts",
"update-git-deps": "tsx scripts/updateGitDeps.ts",
"request-data": "tsx scripts/requestData.ts"
"request-data": "tsx scripts/requestData.ts",
"check-bundled-duplicates": "node scripts/findBundledDuplicateDeps.mjs"
},
"keywords": [
"prismarine",
Expand Down Expand Up @@ -90,6 +84,7 @@
"minecraft-data": "0.0.0",
"minecraft-inventory": "^0.1.45",
"minecraft-protocol": "github:PrismarineJS/node-minecraft-protocol#master",
"minecraft-renderer": "^0.1.52",
"mineflayer-item-map-downloader": "github:zardoy/mineflayer-item-map-downloader",
"mojangson": "^2.0.4",
"net-browserify": "github:zardoy/prismarinejs-net-browserify",
Expand Down Expand Up @@ -163,7 +158,6 @@
"path-browserify": "^1.0.1",
"path-exists-cli": "^2.0.0",
"process": "github:PrismarineJS/node-process",
"renderer": "link:renderer",
"rimraf": "^5.0.1",
"storybook": "^7.4.6",
"stream-browserify": "^3.0.0",
Expand Down Expand Up @@ -202,6 +196,7 @@
"buffer": "^6.0.3",
"vec3": "0.1.10",
"three": "0.154.0",
"@types/three": "0.154.0",
"diamond-square": "github:zardoy/diamond-square",
"prismarine-block": "github:zardoy/prismarine-block#next-era",
"prismarine-world": "github:zardoy/prismarine-world#next-era",
Expand All @@ -211,7 +206,8 @@
"minecraft-protocol": "github:PrismarineJS/node-minecraft-protocol#master",
"react": "^18.2.0",
"prismarine-chunk": "github:zardoy/prismarine-chunk#master",
"prismarine-item": "latest"
"prismarine-item": "latest",
"valtio": "1.13.2"
},
"updateConfig": {
"ignoreDependencies": [
Expand Down
Loading
Loading