diff --git a/.github/workflows/gradlew.yaml b/.github/workflows/gradlew.yaml index db5f2439..628be3a8 100644 --- a/.github/workflows/gradlew.yaml +++ b/.github/workflows/gradlew.yaml @@ -2,17 +2,17 @@ name: Gradle Build and Release (Cross-platform) on: push: - branches: [ main, 'dev/*' ] - tags: [ 'v*' ] + branches: [main, "dev/*"] + tags: ["v*"] pull_request: - branches: [ main ] + branches: [main] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 submodules: recursive @@ -25,11 +25,11 @@ jobs: shell: bash - name: Setup JDK 25 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: - java-version: '25' - distribution: 'microsoft' - cache: 'gradle' + java-version: "25" + distribution: "microsoft" + cache: "gradle" - name: Install Zig uses: goto-bus-stop/setup-zig@v2 @@ -37,13 +37,13 @@ jobs: version: 0.13.0 - name: Setup Rust (Nightly) - uses: dtolnay/rust-toolchain@nightly + uses: dtolnay/rust-toolchain@v1 with: toolchain: nightly components: rust-src, rustfmt, clippy - name: Cache Cargo and Rust targets - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.cargo/bin/ @@ -58,12 +58,17 @@ jobs: run: bash ./scripts/action_prepare.sh - name: Install Build Tools (Cached) run: | + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + export PATH="$HOME/.cargo/bin:$PATH" if ! command -v cargo-zigbuild &> /dev/null; then - curl -L https://github.com/rust-cross/cargo-zigbuild/releases/latest/download/cargo-zigbuild-x86_64-unknown-linux-musl.tar.gz | tar xz -C ~/.cargo/bin + echo "cargo-zigbuild not found, installing..." + cargo install cargo-zigbuild + else + echo "cargo-zigbuild is already installed." fi # Create enhanced wrappers for Zig to fix target triple issues mkdir -p ~/.cargo/bin/wrappers - + cat <<'EOF' > ~/.cargo/bin/wrappers/zig-cc #!/bin/bash args=() @@ -82,7 +87,7 @@ jobs: done exec zig cc "${args[@]}" EOF - + cat <<'EOF' > ~/.cargo/bin/wrappers/zig-cpp #!/bin/bash args=() @@ -112,11 +117,11 @@ jobs: AR_aarch64_apple_darwin: /home/runner/.cargo/bin/wrappers/zig-ar CC_aarch64_apple_darwin: /home/runner/.cargo/bin/wrappers/zig-cc CXX_aarch64_apple_darwin: /home/runner/.cargo/bin/wrappers/zig-cpp - + AR_x86_64_apple_darwin: /home/runner/.cargo/bin/wrappers/zig-ar CC_x86_64_apple_darwin: /home/runner/.cargo/bin/wrappers/zig-cc CXX_x86_64_apple_darwin: /home/runner/.cargo/bin/wrappers/zig-cpp - + # jemalloc 等の configure 時に SDK チェックでコケるのを防ぐ SDKROOT: "" run: | @@ -140,7 +145,7 @@ jobs: echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: all-in-one-jar path: dist/ @@ -153,7 +158,7 @@ jobs: contents: write steps: - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: all-in-one-jar path: dist diff --git a/.github/workflows/qodana_code_quality.yml b/.github/workflows/qodana_code_quality.yml index df5be5f0..4955088e 100644 --- a/.github/workflows/qodana_code_quality.yml +++ b/.github/workflows/qodana_code_quality.yml @@ -25,7 +25,7 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 submodules: recursive - - name: 'Qodana Scan' + - name: "Qodana Scan" uses: JetBrains/qodana-action@v2025.3 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} @@ -38,4 +38,4 @@ jobs: # Upload Qodana results (SARIF, other artifacts, logs) as an artifact to the job upload-result: false # quick-fixes available in Ultimate and Ultimate Plus plans - push-fixes: 'none' \ No newline at end of file + push-fixes: "none" diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index b7e21263..00000000 --- a/Cargo.lock +++ /dev/null @@ -1,2016 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[package]] -name = "ash" -version = "0.38.0+1.3.281" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" -dependencies = [ - "libloading", -] - -[[package]] -name = "atomic_enum" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e1aca718ea7b89985790c94aad72d77533063fe00bc497bb79a7c2dae6a661" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitflags" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "bumpalo" -version = "3.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" - -[[package]] -name = "bytemuck" -version = "1.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "bytes" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" - -[[package]] -name = "cc" -version = "1.2.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" -dependencies = [ - "find-msvc-tools", - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chacha20" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" -dependencies = [ - "cfg-if", - "cpufeatures", - "rand_core", -] - -[[package]] -name = "cmake" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" -dependencies = [ - "cc", -] - -[[package]] -name = "codespan-reporting" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" -dependencies = [ - "serde", - "termcolor", - "unicode-width 0.2.2", -] - -[[package]] -name = "const-default" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" - -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core-graphics-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" -dependencies = [ - "bitflags", - "core-foundation", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "document-features" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" -dependencies = [ - "litrs", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "euclid" -version = "0.22.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df61bf483e837f88d5c2291dcf55c67be7e676b3a51acc48db3a7b163b91ed63" -dependencies = [ - "num-traits", -] - -[[package]] -name = "find-msvc-tools" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - -[[package]] -name = "float_next_after" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "futures" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" - -[[package]] -name = "futures-executor" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" - -[[package]] -name = "futures-macro" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "futures-sink" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" - -[[package]] -name = "futures-task" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" - -[[package]] -name = "futures-util" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "slab", -] - -[[package]] -name = "getrandom" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "rand_core", - "wasip2", - "wasip3", -] - -[[package]] -name = "gl_generator" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" -dependencies = [ - "khronos_api", - "log", - "xml-rs", -] - -[[package]] -name = "glam" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34627c5158214743a374170fed714833fdf4e4b0cbcc1ea98417866a4c5d4441" - -[[package]] -name = "glow" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "glutin_wgl_sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" -dependencies = [ - "gl_generator", -] - -[[package]] -name = "gpu-allocator" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51255ea7cfaadb6c5f1528d43e92a82acb2b96c43365989a28b2d44ee38f8795" -dependencies = [ - "ash", - "hashbrown 0.16.1", - "log", - "presser", - "thiserror", - "windows", -] - -[[package]] -name = "gpu-descriptor" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" -dependencies = [ - "bitflags", - "gpu-descriptor-types", - "hashbrown 0.15.5", -] - -[[package]] -name = "gpu-descriptor-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" -dependencies = [ - "bitflags", -] - -[[package]] -name = "half" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" -dependencies = [ - "cfg-if", - "crunchy", - "num-traits", - "zerocopy", -] - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash 0.1.5", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - -[[package]] -name = "indexmap" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", -] - -[[package]] -name = "infinite-client" -version = "2.3.0" -dependencies = [ - "atomic_enum", - "glam", - "lyon", - "minecraft-rs", - "parking_lot", - "rayon", - "rustc-hash 2.1.1", - "xross-core", -] - -[[package]] -name = "itoa" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "jemalloc-sys" -version = "0.5.4+5.3.0-patched" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac6c1946e1cea1788cbfde01c993b52a10e2da07f4bac608228d1bed20bfebf2" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "jemallocator" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0de374a9f8e63150e6f5e8a60cc14c668226d7a347d8aee1a45766e3c4dd3bc" -dependencies = [ - "jemalloc-sys", - "libc", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "js-sys" -version = "0.3.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4eacb0641a310445a4c513f2a5e23e19952e269c6a38887254d5f837a305506" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "khronos-egl" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" -dependencies = [ - "libc", - "libloading", - "pkg-config", -] - -[[package]] -name = "khronos_api" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" - -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - -[[package]] -name = "libc" -version = "0.2.182" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" - -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if", - "windows-link", -] - -[[package]] -name = "libm" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" - -[[package]] -name = "libmimalloc-sys" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "litrs" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - -[[package]] -name = "lyon" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbcb7d54d54c8937364c9d41902d066656817dce1e03a44e5533afebd1ef4352" -dependencies = [ - "lyon_algorithms", - "lyon_tessellation", -] - -[[package]] -name = "lyon_algorithms" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c0829e28c4f336396f250d850c3987e16ce6db057ffe047ce0dd54aab6b647" -dependencies = [ - "lyon_path", - "num-traits", -] - -[[package]] -name = "lyon_geom" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e260b6de923e6e47adfedf6243013a7a874684165a6a277594ee3906021b2343" -dependencies = [ - "arrayvec", - "euclid", - "num-traits", -] - -[[package]] -name = "lyon_path" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aeca86bcfd632a15984ba029b539ffb811e0a70bf55e814ef8b0f54f506fdeb" -dependencies = [ - "lyon_geom", - "num-traits", -] - -[[package]] -name = "lyon_tessellation" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f586142e1280335b1bc89539f7c97dd80f08fc43e9ab1b74ef0a42b04aa353" -dependencies = [ - "float_next_after", - "lyon_path", - "num-traits", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "memchr" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" - -[[package]] -name = "metal" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15" -dependencies = [ - "bitflags", - "block", - "core-graphics-types", - "foreign-types", - "log", - "objc", - "paste", -] - -[[package]] -name = "mimalloc" -version = "0.1.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ee66a4b64c74f4ef288bcbb9192ad9c3feaad75193129ac8509af543894fd8" -dependencies = [ - "libmimalloc-sys", -] - -[[package]] -name = "minecraft-rs" -version = "2.3.0" -dependencies = [ - "parking_lot", - "pollster", - "rayon", - "wgpu", - "xross-core", -] - -[[package]] -name = "mio" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "naga" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "618f667225063219ddfc61251087db8a9aec3c3f0950c916b614e403486f1135" -dependencies = [ - "arrayvec", - "bit-set", - "bitflags", - "cfg-if", - "cfg_aliases", - "codespan-reporting", - "half", - "hashbrown 0.16.1", - "hexf-parse", - "indexmap", - "libm", - "log", - "num-traits", - "once_cell", - "rustc-hash 1.1.0", - "spirv", - "thiserror", - "unicode-ident", -] - -[[package]] -name = "ndk-sys" -version = "0.6.0+11769913" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "ordered-float" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d" -dependencies = [ - "num-traits", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "pollster" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" - -[[package]] -name = "portable-atomic" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" - -[[package]] -name = "portable-atomic-util" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" -dependencies = [ - "portable-atomic", -] - -[[package]] -name = "presser" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.117", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "profiling" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" - -[[package]] -name = "quote" -version = "1.0.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "rand" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" -dependencies = [ - "chacha20", - "getrandom", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" - -[[package]] -name = "range-alloc" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" - -[[package]] -name = "raw-window-handle" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags", -] - -[[package]] -name = "renderdoc-sys" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" - -[[package]] -name = "rlsf" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1646a59a9734b8b7a0ac51689388a60fe1625d4b956348e9de07591a1478457a" -dependencies = [ - "cfg-if", - "const-default", - "libc", - "rustversion", - "svgbobdoc", -] - -[[package]] -name = "rpmalloc" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86179c13cdc0bcedbb60e63c1aebe3bac82162ddfa746320de6dcea31ebe2b06" -dependencies = [ - "rpmalloc-sys", -] - -[[package]] -name = "rpmalloc-sys" -version = "0.2.3+b097fd0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4b7d5e225a53887ee57fcec492eaf114b8e290f7072d035adc6ddd6810b67b" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "slab" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" - -[[package]] -name = "slotmap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "snmalloc-rs" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb317153089fdfa4d8a2eec059d40a5a23c3bde43995ea23b19121c3f621e74a" -dependencies = [ - "snmalloc-sys", -] - -[[package]] -name = "snmalloc-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065fea53d32bb77bc36cca466cb191f2e5216ebfd0ed360b1d64889ee6e559ea" -dependencies = [ - "cmake", -] - -[[package]] -name = "socket2" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "spirv" -version = "0.3.0+sdk-1.3.268.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" -dependencies = [ - "bitflags", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "svgbobdoc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" -dependencies = [ - "base64", - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-width 0.1.14", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tcmalloc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375205113d84a1c5eeed67beaa0ce08e41be1a9d5acc3425ad2381fddd9d819b" - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "thiserror" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tokio" -version = "1.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.2+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d7d0fce354c88b7982aec4400b3e7fcf723c32737cef571bd165f7613557ee" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.62" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee85afca410ac4abba5b584b12e77ea225db6ee5471d0aebaae0861166f9378a" -dependencies = [ - "cfg-if", - "futures-util", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55839b71ba921e4f75b674cb16f843f4b1f3b26ddfcb3454de1cf65cc021ec0f" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf2e969c2d60ff52e7e98b7392ff1588bffdd1ccd4769eba27222fd3d621571" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.117", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0861f0dcdf46ea819407495634953cdcc8a8c7215ab799a7a7ce366be71c7b30" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - -[[package]] -name = "web-sys" -version = "0.3.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10053fbf9a374174094915bbce141e87a6bf32ecd9a002980db4b638405e8962" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "wgpu" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cb534d5ffd109c7d1135f34cdae29e60eab94855a625dcfe1705f8bc7ad79f" -dependencies = [ - "arrayvec", - "bitflags", - "bytemuck", - "cfg-if", - "cfg_aliases", - "document-features", - "hashbrown 0.16.1", - "js-sys", - "log", - "naga", - "parking_lot", - "portable-atomic", - "profiling", - "raw-window-handle", - "smallvec", - "static_assertions", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-core" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb4c8b5db5f00e56f1f08869d870a0dff7c8bc7ebc01091fec140b0cf0211a9" -dependencies = [ - "arrayvec", - "bit-set", - "bit-vec", - "bitflags", - "bytemuck", - "cfg_aliases", - "document-features", - "hashbrown 0.16.1", - "indexmap", - "log", - "naga", - "once_cell", - "parking_lot", - "portable-atomic", - "profiling", - "raw-window-handle", - "rustc-hash 1.1.0", - "smallvec", - "thiserror", - "wgpu-core-deps-apple", - "wgpu-core-deps-emscripten", - "wgpu-core-deps-windows-linux-android", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-core-deps-apple" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87b7b696b918f337c486bf93142454080a32a37832ba8a31e4f48221890047da" -dependencies = [ - "wgpu-hal", -] - -[[package]] -name = "wgpu-core-deps-emscripten" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b251c331f84feac147de3c4aa3aa45112622a95dd7ee1b74384fa0458dbd79" -dependencies = [ - "wgpu-hal", -] - -[[package]] -name = "wgpu-core-deps-windows-linux-android" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca976e72b2c9964eb243e281f6ce7f14a514e409920920dcda12ae40febaae" -dependencies = [ - "wgpu-hal", -] - -[[package]] -name = "wgpu-hal" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293080d77fdd14d6b08a67c5487dfddbf874534bb7921526db56a7b75d7e3bef" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bit-set", - "bitflags", - "block", - "bytemuck", - "cfg-if", - "cfg_aliases", - "core-graphics-types", - "glow", - "glutin_wgl_sys", - "gpu-allocator", - "gpu-descriptor", - "hashbrown 0.16.1", - "js-sys", - "khronos-egl", - "libc", - "libloading", - "log", - "metal", - "naga", - "ndk-sys", - "objc", - "once_cell", - "ordered-float", - "parking_lot", - "portable-atomic", - "portable-atomic-util", - "profiling", - "range-alloc", - "raw-window-handle", - "renderdoc-sys", - "smallvec", - "thiserror", - "wasm-bindgen", - "web-sys", - "wgpu-types", - "windows", - "windows-core", -] - -[[package]] -name = "wgpu-types" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e18308757e594ed2cd27dddbb16a139c42a683819d32a2e0b1b0167552f5840c" -dependencies = [ - "bitflags", - "bytemuck", - "js-sys", - "log", - "web-sys", -] - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "windows" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" -dependencies = [ - "windows-collections", - "windows-core", - "windows-future", - "windows-numerics", -] - -[[package]] -name = "windows-collections" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" -dependencies = [ - "windows-core", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-future" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" -dependencies = [ - "windows-core", - "windows-link", - "windows-threading", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-numerics" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" -dependencies = [ - "windows-core", - "windows-link", -] - -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows-threading" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - -[[package]] -name = "xml-rs" -version = "0.8.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" - -[[package]] -name = "xross-alloc" -version = "2.3.0" -dependencies = [ - "jemallocator", - "mimalloc", - "rand", - "rlsf", - "rpmalloc", - "snmalloc-rs", - "tcmalloc", -] - -[[package]] -name = "xross-core" -version = "2.3.0" -dependencies = [ - "futures", - "tokio", - "xross-alloc", - "xross-macros", -] - -[[package]] -name = "xross-macros" -version = "2.3.0" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.117", - "xross-core", - "xross-metadata", -] - -[[package]] -name = "xross-metadata" -version = "2.3.0" -dependencies = [ - "serde", -] - -[[package]] -name = "zerocopy" -version = "0.8.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "zmij" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index 71cbc2a3..00000000 --- a/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[workspace] -resolver = "3" - -members = [ - "rust/infinite-client", "rust/minecraft-rs", -] - -[workspace.package] -version = "2.3.0" -edition = "2024" -authors = ["The Infinity's"] -license = "MIT" - -[workspace.dependencies] -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -xross-core.path = "project-xross/xross-core" -xross-alloc.path = "project-xross/xross-alloc" -xross-metadata.path = "project-xross/xross-metadata" -xross-macros.path = "project-xross/xross-macros" -parking_lot = "0.12.5" -minecraft-rs.path = "rust/minecraft-rs" -[profile.release] -opt-level = 3 # 最大限の最適化 -lto = "fat" # Link Time Optimization (リンク時最適化) -codegen-units = 1 # コンパイル単位を1に制限して最適化を強化 -panic = "abort" # パニック時のスタックトレースを省きサイズと速度を優先 -strip = true # デバッグシンボルの削除 diff --git a/INSTALLATION.md b/INSTALLATION.md index 3df53f95..770590f8 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -43,6 +43,7 @@ brew install --cask openjdk@25 ``` After installation via Homebrew, create a symlink: + ```bash sudo ln -sfn /opt/homebrew/opt/openjdk@25/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-25.jdk ``` @@ -54,6 +55,7 @@ sudo ln -sfn /opt/homebrew/opt/openjdk@25/libexec/openjdk.jdk /Library/Java/Java ``` You should see output like: + ``` openjdk 25-ea ... ``` @@ -101,20 +103,23 @@ Infinite Client requires **Fabric API** and **Fabric Language Kotlin**: 3. Find the **fabric-loader-1.21.11** installation and click the **⋯** (three dots) → **Edit** 4. Click **More Options** to expand advanced settings 5. In the **Java Executable** field, enter the path to JDK 25: + ``` /Library/Java/JavaVirtualMachines/jdk-25.jdk/Contents/Home/bin/java ``` - + > **Note**: If you installed via Homebrew, use: + > > ``` > /Library/Java/JavaVirtualMachines/openjdk-25.jdk/Contents/Home/bin/java > ``` 6. In the **JVM Arguments** field, add these flags (required for native access): + ``` -Xmx4G --enable-native-access=ALL-UNNAMED -Dforeign.restricted=permit ``` - + > Adjust `-Xmx4G` based on your available RAM (4GB minimum recommended) 7. Click **Save** @@ -132,14 +137,17 @@ Infinite Client requires **Fabric API** and **Fabric Language Kotlin**: ## Troubleshooting ### "Wrong Java Version" Error + - Ensure you've set the correct Java Executable path in the launcher - Verify JDK 25 is installed: run `/Library/Java/JavaVirtualMachines/jdk-25.jdk/Contents/Home/bin/java --version` ### "Access Denied" or Native Library Errors + - Make sure `--enable-native-access=ALL-UNNAMED` is in your JVM arguments - Add `-Dforeign.restricted=permit` if not already present ### Mod Not Loading + - Ensure all dependencies (Fabric API, Fabric Language Kotlin) are in the `mods` folder - Check the Minecraft version matches (1.21.11) - Check Fabric Loader version is 0.18.2 or later @@ -147,11 +155,13 @@ Infinite Client requires **Fabric API** and **Fabric Language Kotlin**: ### Finding Your Java Path To list all installed Java versions: + ```bash /usr/libexec/java_home -V ``` To get the path to a specific version: + ```bash /usr/libexec/java_home -v 25 ``` @@ -160,12 +170,12 @@ To get the path to a specific version: ## File Locations Reference -| Item | Location | -|------|----------| -| Minecraft Folder | `~/Library/Application Support/minecraft` | -| Mods Folder | `~/Library/Application Support/minecraft/mods` | -| JDK 25 (Manual Install) | `/Library/Java/JavaVirtualMachines/jdk-25.jdk` | -| JDK 25 (Homebrew) | `/Library/Java/JavaVirtualMachines/openjdk-25.jdk` | +| Item | Location | +| ----------------------- | -------------------------------------------------- | +| Minecraft Folder | `~/Library/Application Support/minecraft` | +| Mods Folder | `~/Library/Application Support/minecraft/mods` | +| JDK 25 (Manual Install) | `/Library/Java/JavaVirtualMachines/jdk-25.jdk` | +| JDK 25 (Homebrew) | `/Library/Java/JavaVirtualMachines/openjdk-25.jdk` | --- diff --git a/NativeMeshEngine.md b/NativeMeshEngine.md index b0f44990..51d1ee31 100644 --- a/NativeMeshEngine.md +++ b/NativeMeshEngine.md @@ -26,19 +26,20 @@ pub color:Color, Colorは、#aarrggbbのintに変換を行えるcriticalかつno_heap_accessな関数を保有すること。強制変換で問題ない。 また、2つの色を混合したりなどのメソッドも必要に応じて作ること。 - - 現在の中心チャンクをChunkPosで - - 現在の最低の高さをi32で - - 現在のワールドの高さをi32で - - 色(Color)の配列を一次元で大量に。 - NativeMeshEngineは +- 現在の中心チャンクをChunkPosで +- 現在の最低の高さをi32で +- 現在のワールドの高さをi32で +- 色(Color)の配列を一次元で大量に。 - - チャンク座標をアップデートする関数(x,z) - - 座標と高さを初期化する関数(x_chunk,height,z_chunk) - - 範囲を更新する関数(チャンク数) // 例えば3x3にするなら3 - - 色を設定する関数(x,y,z,color)すべてi32 - - 線のメッシュを作成する関数(開始座標、終了座標、色)の配列 - - 面のメッシュを作成する関数(pos0,pos1,pos2,pos3,色)の配列 +NativeMeshEngineは + +- チャンク座標をアップデートする関数(x,z) +- 座標と高さを初期化する関数(x_chunk,height,z_chunk) +- 範囲を更新する関数(チャンク数) // 例えば3x3にするなら3 +- 色を設定する関数(x,y,z,color)すべてi32 +- 線のメッシュを作成する関数(開始座標、終了座標、色)の配列 +- 面のメッシュを作成する関数(pos0,pos1,pos2,pos3,色)の配列 まず、範囲を初期化する関数で、高さと範囲分のColorの配列を一気に取得します。 色を設定する際は、現在のチャンク座標を駆使して、VecDequeと同じ原理を使用して代入を行いましょう。 @@ -49,4 +50,3 @@ Colorは、#aarrggbbのintに変換を行えるcriticalかつno_heap_accessな 線について、ブロックが隣り合って、線が重なる場合は、線を結合し、それぞれのブロックに設定された色の平均値を出力してください。接続できる線はすべて接続してください。 面についても同様にお願いします。 - diff --git a/README.ja.md b/README.ja.md index 8b91dc05..6158dbf1 100644 --- a/README.ja.md +++ b/README.ja.md @@ -26,6 +26,7 @@ Minecraft Anarchy サーバー向けの次世代ユーティリティ mod。 JDK 25 のセットアップやランチャーの設定(特に macOS ユーザー向け)に関する詳細な手順は、[INSTALLATION.md](./INSTALLATION.md) を参照してください。 ### クイックスタート + 1. **JDK 25** (Early Access) をインストール。 2. **Fabric Loader 1.21.11** をインストール。 3. `infinite-client.jar`, `fabric-api.jar`, `fabric-language-kotlin.jar` を `mods` フォルダに配置。 diff --git a/README.md b/README.md index 93dacac5..82414f57 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Next-generation utility mod for Minecraft Anarchy Servers. For detailed instructions on setting up JDK 25 and configuring your launcher (especially for macOS users), please refer to the [INSTALLATION.md](./INSTALLATION.md). ### Quick Start + 1. Install **JDK 25** (Early Access). 2. Download and install **Fabric Loader 1.21.11**. 3. Place `infinite-client.jar`, `fabric-api.jar`, and `fabric-language-kotlin.jar` in your `mods` folder. diff --git a/README/en/ADDON.md b/README/en/ADDON.md index 086eacf2..7a842ee9 100644 --- a/README/en/ADDON.md +++ b/README/en/ADDON.md @@ -41,12 +41,9 @@ Register your entrypoint in `fabric.mod.json`: ```json { "entrypoints": { - "infinite_addon": [ - "com.example.addon.MyAwesomeAddon" - ] + "infinite_addon": ["com.example.addon.MyAwesomeAddon"] } } - ``` ## 3. Core Extension Methods @@ -113,16 +110,16 @@ client.themeManager.register(NeonTheme()) ## 5. API Reference (Core Classes) -| Class Name | Description | -| --- | --- | -| `InfiniteClient` | The core of the MOD. Provides access to all managers. | -| `LocalFeature` | Base class for features with per-server/world settings. | -| `GlobalFeature` | Base class for features with global client settings. | -| `ThemeManager` | Manages UI themes. Use `register()` to add new themes. | +| Class Name | Description | +| ---------------- | ------------------------------------------------------- | +| `InfiniteClient` | The core of the MOD. Provides access to all managers. | +| `LocalFeature` | Base class for features with per-server/world settings. | +| `GlobalFeature` | Base class for features with global client settings. | +| `ThemeManager` | Manages UI themes. Use `register()` to add new themes. | --- **Tips for Addon Developers:** -* By defining a `Property` (e.g., `BooleanProperty`) within a `Feature` class, a corresponding setting item will be **automatically generated in the GUI**. -* Don't forget to add translation keys to your `en_us.json` using the format: `infinite.features...`. +- By defining a `Property` (e.g., `BooleanProperty`) within a `Feature` class, a corresponding setting item will be **automatically generated in the GUI**. +- Don't forget to add translation keys to your `en_us.json` using the format: `infinite.features...`. diff --git a/README/en/README.md b/README/en/README.md index 93dacac5..82414f57 100644 --- a/README/en/README.md +++ b/README/en/README.md @@ -26,6 +26,7 @@ Next-generation utility mod for Minecraft Anarchy Servers. For detailed instructions on setting up JDK 25 and configuring your launcher (especially for macOS users), please refer to the [INSTALLATION.md](./INSTALLATION.md). ### Quick Start + 1. Install **JDK 25** (Early Access). 2. Download and install **Fabric Loader 1.21.11**. 3. Place `infinite-client.jar`, `fabric-api.jar`, and `fabric-language-kotlin.jar` in your `mods` folder. diff --git a/README/ja/ADDON.md b/README/ja/ADDON.md index 98606743..8af96508 100644 --- a/README/ja/ADDON.md +++ b/README/ja/ADDON.md @@ -41,12 +41,9 @@ class MyAwesomeAddon : InfiniteAddon { ```json { "entrypoints": { - "infinite_addon": [ - "com.example.addon.MyAwesomeAddon" - ] + "infinite_addon": ["com.example.addon.MyAwesomeAddon"] } } - ``` ## 3. 主要な拡張方法 @@ -113,17 +110,16 @@ InfiniteClientは以下の順序で初期化されます: ## 5. APIリファレンス (主要クラス) -| クラス名 | 説明 | -| --- | --- | -| `InfiniteClient` | MODの心臓部。各マネージャーへのアクセスを提供します。 | -| `LocalFeature` | サーバー/ワールドごとに設定を保持する機能の基底クラス。 | -| `GlobalFeature` | クライアント全体で共通の設定を保持する機能の基底クラス。 | -| `ThemeManager` | UIのテーマを管理。`register()` で新テーマを追加可能。 | +| クラス名 | 説明 | +| ---------------- | -------------------------------------------------------- | +| `InfiniteClient` | MODの心臓部。各マネージャーへのアクセスを提供します。 | +| `LocalFeature` | サーバー/ワールドごとに設定を保持する機能の基底クラス。 | +| `GlobalFeature` | クライアント全体で共通の設定を保持する機能の基底クラス。 | +| `ThemeManager` | UIのテーマを管理。`register()` で新テーマを追加可能。 | --- **アドオン開発者へのヒント:** -* `Feature` クラス内で `Property`(BooleanPropertyなど)を定義すると、自動的にGUIに設定項目が表示されます。 -* 翻訳ファイル(`en_us.json`など)に `infinite.features...` の形式でキーを追加することを忘れないでください。 - +- `Feature` クラス内で `Property`(BooleanPropertyなど)を定義すると、自動的にGUIに設定項目が表示されます。 +- 翻訳ファイル(`en_us.json`など)に `infinite.features...` の形式でキーを追加することを忘れないでください。 diff --git a/build.gradle.kts b/build.gradle.kts index 2a0770f8..9a1bafa3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { kotlin("jvm") - id("fabric-loom") + id("net.fabricmc.fabric-loom") id("maven-publish") id("eclipse") id("org.jetbrains.kotlin.plugin.serialization") @@ -48,18 +48,12 @@ tasks.named("compileJava") { dependencies { minecraft("com.mojang:minecraft:${property("minecraft_version")}") - @Suppress("UnstableApiUsage") - mappings( - loom.layered { - officialMojangMappings() - }, - ) - modImplementation("net.fabricmc:fabric-loader:${property("loader_version")}") - modImplementation("net.fabricmc:fabric-language-kotlin:${property("fabric_kotlin_version")}") - modImplementation("net.fabricmc.fabric-api:fabric-api:${property("fabric_version")}") - modImplementation("maven.modrinth:modmenu:${property("mod_menu_version")}") + implementation("net.fabricmc:fabric-loader:${property("loader_version")}") + implementation("net.fabricmc:fabric-language-kotlin:${property("fabric_kotlin_version")}") + implementation("net.fabricmc.fabric-api:fabric-api:${property("fabric_api_version")}") + compileOnly("maven.modrinth:modmenu:${property("mod_menu_version")}") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:${property("kotlinx_serialization_json_version")}") - implementation("org.jetbrains.kotlin:kotlin-reflect:${property("kotlin_version")}") + implementation("org.jetbrains.kotlin:kotlin-reflect:${property("kotlinVersion")}") implementation("dev.babbaj:nether-pathfinder:${property("nether_pathfinder_version")}") implementation("com.squareup.okhttp3:okhttp:${property("ok_http_version")}") implementation("org.apache.maven:maven-artifact:${property("maven_artifact_version")}") @@ -70,11 +64,9 @@ dependencies { testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.1") errorprone("com.google.errorprone:error_prone_core:2.45.0") } - xross { - rustProjectDir = project.file("rust/infinite-client").absolutePath - metadataDir = "target/xross" - packageName = "org.infinite.nativebind" + rustProjectDir = project.file("infinite-client").absolutePath + packageName = "org.infinite.native" useUnsignedTypes = true } @@ -84,10 +76,8 @@ val cleanNative = tasks.register("cleanNative") { group = "native" description = "Cleans Rust target directory and generated Xross bindings." doLast { - delete(project.file("rust/infinite-client/target")) + delete(project.file("infinite-client/target")) delete(layout.buildDirectory.dir("generated/xross/kotlin")) - // 検証エラーを避けるためにディレクトリだけ再作成しておく - project.file("rust/infinite-client/target/xross").mkdirs() println("Native build artifacts and generated code cleaned.") } } @@ -118,23 +108,19 @@ rustTargets.forEach { (id, targetTriple) -> tasks.register("rustBuild_$id") { group = "build" description = "Build Rust library for $id ($targetTriple) using zigbuild" - workingDir = project.file("rust/infinite-client") + workingDir = project.file("infinite-client") val useZigbuild = buildAllRustTargets || id != hostRustTargetId || providers.gradleProperty("useZigbuild").orNull == "true" - // メタデータの競合を避けるため、buildディレクトリ内にターゲットごとのディレクトリを作成 - val targetMetadataDir = project.layout.buildDirectory.dir("xross-metadata/$id").get().asFile - environment("XROSS_METADATA_DIR", targetMetadataDir.absolutePath) - if (useZigbuild) { commandLine("cargo", "zigbuild", "--release", "--target", targetTriple) } else { commandLine("cargo", "build", "--release") } val outputDir = if (useZigbuild) { - project.file("rust/infinite-client/target/$targetTriple/release") + project.file("infinite-client/target/$targetTriple/release") } else { - project.file("rust/infinite-client/target/release") + project.file("infinite-client/target/release") } outputs.dir(outputDir) } @@ -143,7 +129,7 @@ rustTargets.forEach { (id, targetTriple) -> val buildRustAll = tasks.register("buildRustAll") { group = "build" description = "Triggers Rust builds for all supported platforms" - inputs.dir(project.file("rust/infinite-client")) + inputs.dir(project.file("infinite-client")) val rustBuildTasks = if (buildAllRustTargets) { rustTargets.keys.map { "rustBuild_$it" } } else { @@ -152,31 +138,9 @@ val buildRustAll = tasks.register("buildRustAll") { dependsOn(rustBuildTasks) } -val mergeXrossMetadata = tasks.register("mergeXrossMetadata") { - group = "native" - description = "Merges Xross metadata from all build targets." - dependsOn(buildRustAll) - doLast { - val mergedDir = project.file("rust/infinite-client/target/xross") - if (!mergedDir.exists()) mergedDir.mkdirs() - - val targetIds = if (buildAllRustTargets) rustTargets.keys else listOf(hostRustTargetId) - targetIds.forEach { id -> - val targetMetadataDir = project.layout.buildDirectory.dir("xross-metadata/$id").get().asFile - if (targetMetadataDir.exists()) { - targetMetadataDir.listFiles()?.forEach { file -> - if (file.extension == "json") { - file.copyTo(File(mergedDir, file.name), overwrite = true) - } - } - } - } - } -} - // Xrossのバインディング生成はRustのビルド(メタデータ生成)に依存する tasks.named("generateXrossBindings") { - dependsOn(mergeXrossMetadata) + dependsOn(buildRustAll) } // --- Rust Formatting --- @@ -184,13 +148,13 @@ tasks.named("generateXrossBindings") { val rustFmt = tasks.register("rustFmt") { group = "formatting" description = "Formats Rust code using cargo fmt" - commandLine("cargo", "fmt", "--all") + commandLine("cargo", "fmt", "--all", "--manifest-path", "infinite-client/Cargo.toml") } val rustFmtCheck = tasks.register("rustFmtCheck") { group = "verification" description = "Checks Rust code formatting using cargo fmt --check" - commandLine("cargo", "fmt", "--all", "--", "--check") + commandLine("cargo", "fmt", "--manifest-path", "infinite-client/Cargo.toml", "--all", "--", "--check") } tasks.named("spotlessApply") { @@ -205,10 +169,16 @@ val refreshNative = tasks.register("refreshNative") { group = "native" description = "Performs a clean rebuild of Rust binaries and regenerates Xross bindings." dependsOn(cleanNative) - // 依存関係の連鎖により、generateXrossBindings を呼べば自動的に buildRustAll も走る + // buildRustAll を実行し、その後に generateXrossBindings を実行するように設定 + dependsOn(buildRustAll) finalizedBy("generateXrossBindings") } +// クリーンアップ後にビルドが走るように順序を制御 +buildRustAll.configure { + mustRunAfter(cleanNative) +} + sourceSets { main { kotlin.srcDir(layout.buildDirectory.dir("generated/xross/kotlin")) @@ -229,9 +199,9 @@ tasks { rustTargets.forEach { (id, target) -> val hostUsesZigbuild = buildAllRustTargets || providers.gradleProperty("useZigbuild").orNull == "true" val sourceDir = if (id == hostRustTargetId && !hostUsesZigbuild) { - "${project.rootDir}/target/release" + project.file("infinite-client/target/release") } else { - "${project.rootDir}/target/$target/release" + project.file("infinite-client/target/$target/release") } from(sourceDir) { include("*.so", "*.dll", "*.dylib") @@ -252,6 +222,9 @@ tasks { vmArg("-Dforeign.restricted=permit") vmArg("-XX:+UnlockDiagnosticVMOptions") vmArg("-XX:+AlwaysCompileLoopMethods") + vmArg("-Dmixin.debug.strict=true") + vmArg("-Dmixin.debug.verbose=true") + vmArg("-Dmixin.debug.countInjections=true") } } splitEnvironmentSourceSets() @@ -381,3 +354,11 @@ tasks.withType().configureEach ) } } + +tasks.register("genDocs") { + description = "Generate Document templates" + group = "application" + classpath = sourceSets["client"].runtimeClasspath + mainClass.set("org.infinite.utils.Document") + args(project.rootDir.absolutePath) +} diff --git a/gradle.properties b/gradle.properties index ef876429..79ea9ee1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,16 +6,16 @@ org.gradle.daemon=true org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.11 -loader_version=0.18.4 -loomVersion=1.15-SNAPSHOT -fabric_kotlin_version=1.13.7+kotlin.2.2.21 +minecraft_version=26.1.2 +loader_version=0.19.2 +loomVersion=1.16-SNAPSHOT +fabric_kotlin_version=1.13.10+kotlin.2.3.20 # Mod Properties -mod_version=2.1.0+1.21.11 +mod_version=2.3.0+26.1.2 maven_group=org.infinite archives_base_name=infinite-client # Dependencies -fabric_version=0.139.5+1.21.11 +fabric_api_version=0.146.0+26.1.2 mod_menu_version=17.0.0-alpha.1 nether_pathfinder_version=1.4.1 baritone_version=1.21.11-SNAPSHOT @@ -23,7 +23,7 @@ lwjgl_version=3.3.6 ok_http_version=5.3.2 snake_yaml_version=2.5 maven_artifact_version=4.0.0-rc-5 -kotlin_version=2.3.10 -kotlinx_serialization_json_version=1.8.0 +kotlinVersion=2.3.20 +kotlinx_serialization_json_version=1.10.0 # Build Dependencies -proguard_version=7.8.2 \ No newline at end of file +proguard_version=7.8.2 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f8e1ee31..d997cfc6 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2b..dbc3ce4a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index adff685a..0262dcbd 100755 --- a/gradlew +++ b/gradlew @@ -57,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/b631911858264c0b6e4d6603d677ff5218766cee/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. diff --git a/rust/infinite-client/.gitignore b/infinite-client/.gitignore similarity index 100% rename from rust/infinite-client/.gitignore rename to infinite-client/.gitignore diff --git a/infinite-client/Cargo.lock b/infinite-client/Cargo.lock new file mode 100644 index 00000000..b116ab3f --- /dev/null +++ b/infinite-client/Cargo.lock @@ -0,0 +1,459 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "atomic_enum" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99e1aca718ea7b89985790c94aad72d77533063fe00bc497bb79a7c2dae6a661" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "const-default" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "euclid" +version = "0.22.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df61bf483e837f88d5c2291dcf55c67be7e676b3a51acc48db3a7b163b91ed63" +dependencies = [ + "num-traits", +] + +[[package]] +name = "float_next_after" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" + +[[package]] +name = "glam" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34627c5158214743a374170fed714833fdf4e4b0cbcc1ea98417866a4c5d4441" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "infinite-client" +version = "2.3.0" +dependencies = [ + "atomic_enum", + "glam", + "lyon", + "parking_lot", + "rayon", + "rustc-hash", + "xross-core", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "lyon" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbcb7d54d54c8937364c9d41902d066656817dce1e03a44e5533afebd1ef4352" +dependencies = [ + "lyon_algorithms", + "lyon_tessellation", +] + +[[package]] +name = "lyon_algorithms" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c0829e28c4f336396f250d850c3987e16ce6db057ffe047ce0dd54aab6b647" +dependencies = [ + "lyon_path", + "num-traits", +] + +[[package]] +name = "lyon_geom" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e260b6de923e6e47adfedf6243013a7a874684165a6a277594ee3906021b2343" +dependencies = [ + "arrayvec", + "euclid", + "num-traits", +] + +[[package]] +name = "lyon_path" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aeca86bcfd632a15984ba029b539ffb811e0a70bf55e814ef8b0f54f506fdeb" +dependencies = [ + "lyon_geom", + "num-traits", +] + +[[package]] +name = "lyon_tessellation" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f586142e1280335b1bc89539f7c97dd80f08fc43e9ab1b74ef0a42b04aa353" +dependencies = [ + "float_next_after", + "lyon_path", + "num-traits", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "rlsf" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1646a59a9734b8b7a0ac51689388a60fe1625d4b956348e9de07591a1478457a" +dependencies = [ + "cfg-if", + "const-default", + "libc", + "rustversion", + "svgbobdoc", +] + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "svgbobdoc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" +dependencies = [ + "base64", + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-width", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "xross-alloc" +version = "3.2.0" +dependencies = [ + "rlsf", +] + +[[package]] +name = "xross-core" +version = "3.2.0" +dependencies = [ + "xross-alloc", + "xross-macros", +] + +[[package]] +name = "xross-macros" +version = "3.2.0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.117", + "xross-metadata", +] + +[[package]] +name = "xross-metadata" +version = "3.2.0" +dependencies = [ + "serde", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/infinite-client/Cargo.toml b/infinite-client/Cargo.toml new file mode 100644 index 00000000..af67d5f5 --- /dev/null +++ b/infinite-client/Cargo.toml @@ -0,0 +1,25 @@ +[workspace] +resolver = "3" + +members = ["crates/infinite-client"] + +[workspace.package] +version = "2.3.0" +edition = "2024" +authors = ["The Infinity's"] +license = "MIT" + +[workspace.dependencies] +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" +xross-core.path = "../project-xross/xross-core" +xross-alloc.path = "../project-xross/xross-alloc" +xross-metadata.path = "../project-xross/xross-metadata" +xross-macros.path = "../project-xross/xross-macros" +parking_lot = "0.12.5" +[profile.release] +opt-level = 3 # 最大限の最適化 +lto = "fat" # Link Time Optimization (リンク時最適化) +codegen-units = 1 # コンパイル単位を1に制限して最適化を強化 +panic = "abort" # パニック時のスタックトレースを省きサイズと速度を優先 +strip = true # デバッグシンボルの削除 diff --git a/rust/minecraft-rs/.gitignore b/infinite-client/crates/infinite-client/.gitignore similarity index 100% rename from rust/minecraft-rs/.gitignore rename to infinite-client/crates/infinite-client/.gitignore diff --git a/rust/infinite-client/Cargo.toml b/infinite-client/crates/infinite-client/Cargo.toml similarity index 92% rename from rust/infinite-client/Cargo.toml rename to infinite-client/crates/infinite-client/Cargo.toml index 9c0c7111..93ef67b3 100644 --- a/rust/infinite-client/Cargo.toml +++ b/infinite-client/crates/infinite-client/Cargo.toml @@ -12,7 +12,6 @@ lyon = "1.0.16" rustc-hash = "2.1.0" rayon = "1.10.0" xross-core = { workspace = true, features = ["xross-alloc"] } -minecraft-rs.workspace = true atomic_enum = "0.3.0" parking_lot.workspace = true glam = "0.32.0" diff --git a/infinite-client/crates/infinite-client/rust-toolchain.toml b/infinite-client/crates/infinite-client/rust-toolchain.toml new file mode 100644 index 00000000..45f1a47f --- /dev/null +++ b/infinite-client/crates/infinite-client/rust-toolchain.toml @@ -0,0 +1,11 @@ +[toolchain] +channel = "nightly" +components = ["rust-src", "rust-analyzer", "rustfmt"] +targets = [ + "x86_64-unknown-linux-gnu", + "aarch64-unknown-linux-gnu", + "x86_64-pc-windows-gnu", + "aarch64-pc-windows-gnullvm", + "x86_64-apple-darwin", + "aarch64-apple-darwin", +] diff --git a/rust/infinite-client/src/graphics2d.rs b/infinite-client/crates/infinite-client/src/graphics2d.rs similarity index 100% rename from rust/infinite-client/src/graphics2d.rs rename to infinite-client/crates/infinite-client/src/graphics2d.rs diff --git a/rust/infinite-client/src/graphics2d/path2d.rs b/infinite-client/crates/infinite-client/src/graphics2d/path2d.rs similarity index 99% rename from rust/infinite-client/src/graphics2d/path2d.rs rename to infinite-client/crates/infinite-client/src/graphics2d/path2d.rs index e82b3bfd..944e27c1 100644 --- a/rust/infinite-client/src/graphics2d/path2d.rs +++ b/infinite-client/crates/infinite-client/src/graphics2d/path2d.rs @@ -1,8 +1,8 @@ +use crate::utils::color::Color; use lyon::lyon_tessellation::{FillVertex, GeometryBuilderError, VertexId}; use lyon::math::point; use lyon::path::{FillRule, LineCap, LineJoin, Path}; use lyon::tessellation::{FillGeometryBuilder, FillOptions, FillTessellator, GeometryBuilder}; -use minecraft_rs::color::Color; use std::f64::consts::PI; use xross_core::{XrossClass, xross_methods}; diff --git a/rust/infinite-client/src/graphics3d.rs b/infinite-client/crates/infinite-client/src/graphics3d.rs similarity index 100% rename from rust/infinite-client/src/graphics3d.rs rename to infinite-client/crates/infinite-client/src/graphics3d.rs diff --git a/rust/infinite-client/src/graphics3d/mesh.rs b/infinite-client/crates/infinite-client/src/graphics3d/mesh.rs similarity index 100% rename from rust/infinite-client/src/graphics3d/mesh.rs rename to infinite-client/crates/infinite-client/src/graphics3d/mesh.rs diff --git a/rust/infinite-client/src/graphics3d/mesh/block_mesh.rs b/infinite-client/crates/infinite-client/src/graphics3d/mesh/block_mesh.rs similarity index 100% rename from rust/infinite-client/src/graphics3d/mesh/block_mesh.rs rename to infinite-client/crates/infinite-client/src/graphics3d/mesh/block_mesh.rs diff --git a/rust/infinite-client/src/graphics3d/mesh/generator.rs b/infinite-client/crates/infinite-client/src/graphics3d/mesh/generator.rs similarity index 100% rename from rust/infinite-client/src/graphics3d/mesh/generator.rs rename to infinite-client/crates/infinite-client/src/graphics3d/mesh/generator.rs diff --git a/rust/infinite-client/src/graphics3d/mesh/infinite_mesh.rs b/infinite-client/crates/infinite-client/src/graphics3d/mesh/infinite_mesh.rs similarity index 100% rename from rust/infinite-client/src/graphics3d/mesh/infinite_mesh.rs rename to infinite-client/crates/infinite-client/src/graphics3d/mesh/infinite_mesh.rs diff --git a/rust/infinite-client/src/graphics3d/mesh/types.rs b/infinite-client/crates/infinite-client/src/graphics3d/mesh/types.rs similarity index 100% rename from rust/infinite-client/src/graphics3d/mesh/types.rs rename to infinite-client/crates/infinite-client/src/graphics3d/mesh/types.rs diff --git a/rust/infinite-client/src/infinite.rs b/infinite-client/crates/infinite-client/src/infinite.rs similarity index 100% rename from rust/infinite-client/src/infinite.rs rename to infinite-client/crates/infinite-client/src/infinite.rs diff --git a/rust/infinite-client/src/infinite/feature.rs b/infinite-client/crates/infinite-client/src/infinite/feature.rs similarity index 100% rename from rust/infinite-client/src/infinite/feature.rs rename to infinite-client/crates/infinite-client/src/infinite/feature.rs diff --git a/rust/infinite-client/src/infinite/feature/global.rs b/infinite-client/crates/infinite-client/src/infinite/feature/global.rs similarity index 100% rename from rust/infinite-client/src/infinite/feature/global.rs rename to infinite-client/crates/infinite-client/src/infinite/feature/global.rs diff --git a/rust/infinite-client/src/infinite/feature/local.rs b/infinite-client/crates/infinite-client/src/infinite/feature/local.rs similarity index 100% rename from rust/infinite-client/src/infinite/feature/local.rs rename to infinite-client/crates/infinite-client/src/infinite/feature/local.rs diff --git a/rust/infinite-client/src/infinite/feature/local/level.rs b/infinite-client/crates/infinite-client/src/infinite/feature/local/level.rs similarity index 100% rename from rust/infinite-client/src/infinite/feature/local/level.rs rename to infinite-client/crates/infinite-client/src/infinite/feature/local/level.rs diff --git a/rust/infinite-client/src/infinite/feature/local/level/block_highlight.rs b/infinite-client/crates/infinite-client/src/infinite/feature/local/level/block_highlight.rs similarity index 100% rename from rust/infinite-client/src/infinite/feature/local/level/block_highlight.rs rename to infinite-client/crates/infinite-client/src/infinite/feature/local/level/block_highlight.rs diff --git a/rust/infinite-client/src/infinite/feature/local/level/block_highlight/settings.rs b/infinite-client/crates/infinite-client/src/infinite/feature/local/level/block_highlight/settings.rs similarity index 100% rename from rust/infinite-client/src/infinite/feature/local/level/block_highlight/settings.rs rename to infinite-client/crates/infinite-client/src/infinite/feature/local/level/block_highlight/settings.rs diff --git a/rust/infinite-client/src/infinite/feature/local/level/cave_highlight.rs b/infinite-client/crates/infinite-client/src/infinite/feature/local/level/cave_highlight.rs similarity index 91% rename from rust/infinite-client/src/infinite/feature/local/level/cave_highlight.rs rename to infinite-client/crates/infinite-client/src/infinite/feature/local/level/cave_highlight.rs index 2590acd3..af0d8aed 100644 --- a/rust/infinite-client/src/infinite/feature/local/level/cave_highlight.rs +++ b/infinite-client/crates/infinite-client/src/infinite/feature/local/level/cave_highlight.rs @@ -13,7 +13,7 @@ impl CaveHighlightFeature { pub fn new() -> Self { Self {} } - fn instance() -> &'static Self { + pub fn instance() -> &'static Self { &INFINITE_CLIENT.features.local.level_features.cave_highlight } } diff --git a/rust/infinite-client/src/infinite/property.rs b/infinite-client/crates/infinite-client/src/infinite/property.rs similarity index 94% rename from rust/infinite-client/src/infinite/property.rs rename to infinite-client/crates/infinite-client/src/infinite/property.rs index 06ddce68..63f31539 100644 --- a/rust/infinite-client/src/infinite/property.rs +++ b/infinite-client/crates/infinite-client/src/infinite/property.rs @@ -1,4 +1,4 @@ -use minecraft_rs::color::Color; +use crate::utils::color::Color; #[derive(Debug, Clone)] pub struct BlockAndColor { diff --git a/rust/infinite-client/src/lib.rs b/infinite-client/crates/infinite-client/src/lib.rs similarity index 64% rename from rust/infinite-client/src/lib.rs rename to infinite-client/crates/infinite-client/src/lib.rs index ba121457..52bb88a8 100644 --- a/rust/infinite-client/src/lib.rs +++ b/infinite-client/crates/infinite-client/src/lib.rs @@ -1,8 +1,5 @@ -#![feature(offset_of_enum)] - pub mod graphics2d; pub mod graphics3d; pub mod infinite; pub mod projectile; pub mod utils; -pub use minecraft_rs; diff --git a/rust/infinite-client/src/projectile.rs b/infinite-client/crates/infinite-client/src/projectile.rs similarity index 100% rename from rust/infinite-client/src/projectile.rs rename to infinite-client/crates/infinite-client/src/projectile.rs diff --git a/rust/infinite-client/src/utils.rs b/infinite-client/crates/infinite-client/src/utils.rs similarity index 51% rename from rust/infinite-client/src/utils.rs rename to infinite-client/crates/infinite-client/src/utils.rs index 652223fd..e7f1c412 100644 --- a/rust/infinite-client/src/utils.rs +++ b/infinite-client/crates/infinite-client/src/utils.rs @@ -1 +1,2 @@ pub mod atomic; +pub mod color; diff --git a/rust/infinite-client/src/utils/atomic.rs b/infinite-client/crates/infinite-client/src/utils/atomic.rs similarity index 100% rename from rust/infinite-client/src/utils/atomic.rs rename to infinite-client/crates/infinite-client/src/utils/atomic.rs diff --git a/rust/minecraft-rs/src/color.rs b/infinite-client/crates/infinite-client/src/utils/color.rs similarity index 100% rename from rust/minecraft-rs/src/color.rs rename to infinite-client/crates/infinite-client/src/utils/color.rs diff --git a/project-xross b/project-xross index b1ca829e..bc8845dc 160000 --- a/project-xross +++ b/project-xross @@ -1 +1 @@ -Subproject commit b1ca829e0bb46a958327152270ca02d1f553364e +Subproject commit bc8845dca6c834748b5d1c0036f947f96f899429 diff --git a/qodana.yaml b/qodana.yaml index 5e7b3298..b76724e2 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -43,12 +43,11 @@ projectJDK: "25" #(Applied in CI/CD pipeline) # testCoverageThresholds: # fresh: 70 # total: 50 - + #Qodana supports other languages, for example, Python, JavaScript, TypeScript, Go, C#, PHP #For all supported languages see https://www.jetbrains.com/help/qodana/linters.html linter: jetbrains/qodana-jvm-community:2025.3 - exclude: # "Condition is always false" (LocalPlayerへのinstanceof等) を抑制 - name: ConstantValue diff --git a/rust-toolchain.toml b/rust-toolchain.toml index e4a99db4..45f1a47f 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -2,10 +2,10 @@ channel = "nightly" components = ["rust-src", "rust-analyzer", "rustfmt"] targets = [ - "x86_64-unknown-linux-gnu", - "aarch64-unknown-linux-gnu", - "x86_64-pc-windows-gnu", - "aarch64-pc-windows-gnullvm", - "x86_64-apple-darwin", - "aarch64-apple-darwin" + "x86_64-unknown-linux-gnu", + "aarch64-unknown-linux-gnu", + "x86_64-pc-windows-gnu", + "aarch64-pc-windows-gnullvm", + "x86_64-apple-darwin", + "aarch64-apple-darwin", ] diff --git a/rust/infinite-client/rust-toolchain.toml b/rust/infinite-client/rust-toolchain.toml deleted file mode 100644 index e4a99db4..00000000 --- a/rust/infinite-client/rust-toolchain.toml +++ /dev/null @@ -1,11 +0,0 @@ -[toolchain] -channel = "nightly" -components = ["rust-src", "rust-analyzer", "rustfmt"] -targets = [ - "x86_64-unknown-linux-gnu", - "aarch64-unknown-linux-gnu", - "x86_64-pc-windows-gnu", - "aarch64-pc-windows-gnullvm", - "x86_64-apple-darwin", - "aarch64-apple-darwin" -] diff --git a/rust/minecraft-rs/Cargo.toml b/rust/minecraft-rs/Cargo.toml deleted file mode 100644 index d7e4b1b0..00000000 --- a/rust/minecraft-rs/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "minecraft-rs" -version.workspace = true -edition.workspace = true -authors.workspace = true -license.workspace = true - -[dependencies] -xross-core.workspace = true -rayon = "1.11.0" -parking_lot.workspace = true -wgpu = "28.0.0" -pollster = "0.4.0" diff --git a/rust/minecraft-rs/src/lib.rs b/rust/minecraft-rs/src/lib.rs deleted file mode 100644 index 81164f8b..00000000 --- a/rust/minecraft-rs/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod color; -pub mod mgpu3d; diff --git a/rust/minecraft-rs/src/mgpu3d.rs b/rust/minecraft-rs/src/mgpu3d.rs deleted file mode 100644 index 98f05ecf..00000000 --- a/rust/minecraft-rs/src/mgpu3d.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod child; -mod parent; diff --git a/rust/minecraft-rs/src/mgpu3d/child.rs b/rust/minecraft-rs/src/mgpu3d/child.rs deleted file mode 100644 index a2d5fb0d..00000000 --- a/rust/minecraft-rs/src/mgpu3d/child.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub struct MinecraftGpu3dChild { - width: u32, - height: u32, -} - -impl MinecraftGpu3dChild { - pub fn new(width: u32, height: u32) -> Self { - Self { width, height } - } -} diff --git a/rust/minecraft-rs/src/mgpu3d/parent.rs b/rust/minecraft-rs/src/mgpu3d/parent.rs deleted file mode 100644 index d46d881e..00000000 --- a/rust/minecraft-rs/src/mgpu3d/parent.rs +++ /dev/null @@ -1,117 +0,0 @@ -mod handle_manager; -use handle_manager::MGpu3dHandleManager; -pub use handle_manager::MinecraftGpu3dHandle; -use std::{ - ffi::c_void, - ptr::null_mut, - sync::{ - LazyLock, - atomic::{self, AtomicPtr, AtomicU32}, - }, -}; -use xross_core::{XrossClass, xross_methods}; - -use super::child::MinecraftGpu3dChild; -#[derive(XrossClass)] -pub struct MGpu3dSystem { - buffer_address: AtomicPtr, - width: AtomicU32, - height: AtomicU32, - device: wgpu::Device, - queue: wgpu::Queue, - handle_manager: MGpu3dHandleManager, -} -impl Default for MGpu3dSystem { - fn default() -> Self { - // wgpuの初期化フローを同期的に実行 - let (device, queue) = pollster::block_on(async { - let instance = wgpu::Instance::default(); - - let adapter = instance - .request_adapter(&wgpu::RequestAdapterOptions { - power_preference: wgpu::PowerPreference::HighPerformance, - force_fallback_adapter: false, - compatible_surface: None, // 外部バッファ書き込みならNoneでOK - }) - .await - .expect("Failed to find an appropriate wgpu adapter"); - - adapter - .request_device(&wgpu::DeviceDescriptor { - label: Some("MinecraftGpu3d Device"), - required_features: wgpu::Features::empty(), - experimental_features: wgpu::ExperimentalFeatures::disabled(), - trace: wgpu::Trace::default(), - required_limits: wgpu::Limits::default(), - memory_hints: wgpu::MemoryHints::default(), - }) - .await - .expect("Failed to create wgpu device") - }); - - Self { - buffer_address: AtomicPtr::new(null_mut::()), - width: AtomicU32::new(0), - height: AtomicU32::new(0), - device, - queue, - handle_manager: MGpu3dHandleManager::new(), - } - } -} - -static M_GPU_3D_SYSTEM: LazyLock = LazyLock::new(MGpu3dSystem::default); - -#[xross_methods] -impl MGpu3dSystem { - fn this() -> &'static Self { - &M_GPU_3D_SYSTEM - } - #[xross_raw_method{ - args = (buf: *mut std::ffi::c_void,width:u32,height:u32); - import = |buf,width,height|{(buf,width,height)}; - export = ||{}; - }] - pub fn init(buf: *mut c_void, width: u32, height: u32) { - let buf = buf as usize; - let _ = std::thread::spawn(move || { - let buf = buf as *mut c_void; - Self::this().on_init(buf, width, height); - }); - } - fn on_init(&self, buf: *mut c_void, width: u32, height: u32) { - self.buffer_address.store(buf, atomic::Ordering::Relaxed); - self.width.store(width, atomic::Ordering::Relaxed); - self.height.store(height, atomic::Ordering::Relaxed); - } - #[xross_method(critical)] - pub fn resize_window(width: u32, height: u32) { - Self::this().on_resize_window(width, height); - } - fn on_resize_window(&self, width: u32, height: u32) { - self.width.store(width, atomic::Ordering::Relaxed); - self.height.store(height, atomic::Ordering::Relaxed); - } - #[xross_method(critical)] - pub fn start() { - Self::this().on_start(); - } - fn on_start(&self) {} - #[xross_method(critical)] - pub fn stop() { - Self::this().on_stop(); - } - fn on_stop(&self) {} - pub fn add_handle(handle: Box) -> usize { - Self::this().on_add_handle(handle) - } - fn on_add_handle(&self, handle: Box) -> usize { - self.handle_manager.add_handle(handle) - } - pub(crate) fn child(&self) -> MinecraftGpu3dChild { - MinecraftGpu3dChild::new( - self.width.load(atomic::Ordering::Relaxed), - self.height.load(atomic::Ordering::Relaxed), - ) - } -} diff --git a/rust/minecraft-rs/src/mgpu3d/parent/handle_manager.rs b/rust/minecraft-rs/src/mgpu3d/parent/handle_manager.rs deleted file mode 100644 index 1884bfe2..00000000 --- a/rust/minecraft-rs/src/mgpu3d/parent/handle_manager.rs +++ /dev/null @@ -1,67 +0,0 @@ -use parking_lot::RwLock; -use std::collections::VecDeque; - -type OptionalHandle = Option>; - -pub trait MinecraftGpu3dHandle: Send + Sync { - // マルチスレッドで扱うならSend+Syncが必要 - fn render(&self); -} - -pub struct MGpu3dHandleManager { - handles: RwLock>, - free_ids: RwLock>, -} -impl Default for MGpu3dHandleManager { - fn default() -> Self { - Self { - handles: RwLock::new(Vec::new()), - free_ids: RwLock::new(VecDeque::new()), - } - } -} - -impl MGpu3dHandleManager { - pub const INVALID_ID: usize = usize::MAX; - - pub fn new() -> Self { - Self { - handles: RwLock::new(Vec::new()), - free_ids: RwLock::new(VecDeque::new()), - } - } - - pub fn add_handle(&self, handle: Box) -> usize { - // 空きスロットがあるか確認 - if let Some(id) = self.free_ids.write().pop_front() { - self.handles.write()[id] = Some(handle); - id - } else { - let mut handles = self.handles.write(); - let id = handles.len(); - handles.push(Some(handle)); - id - } - } - - pub fn remove_handle(&self, id: usize) -> Option> { - let mut handles = self.handles.write(); - if id >= handles.len() { - return None; - } - - let handle = handles[id].take(); - if handle.is_some() { - // 削除に成功したら空きIDリストに追加 - self.free_ids.write().push_back(id); - } - handle - } - - pub fn render_all(&self) { - let handles = self.handles.read(); - for handle in handles.iter().flatten() { - handle.render(); - } - } -} diff --git a/settings.gradle.kts b/settings.gradle.kts index d89f3a47..12c52364 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,10 +19,11 @@ pluginManagement { } val loomVersion: String by settings + val kotlinVersion: String by settings plugins { - id("fabric-loom") version loomVersion - id("org.jetbrains.kotlin.jvm") version "2.3.10" - id("org.jetbrains.kotlin.plugin.serialization") version "2.3.10" + id("net.fabricmc.fabric-loom") version loomVersion + id("org.jetbrains.kotlin.jvm") version kotlinVersion + id("org.jetbrains.kotlin.plugin.serialization") version kotlinVersion } } diff --git a/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredQuadRenderState.java b/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredQuadRenderState.java index 4b01f1cf..c45ca827 100644 --- a/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredQuadRenderState.java +++ b/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredQuadRenderState.java @@ -6,7 +6,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.gui.navigation.ScreenRectangle; import net.minecraft.client.gui.render.TextureSetup; -import net.minecraft.client.gui.render.state.GuiElementRenderState; +import net.minecraft.client.renderer.state.gui.GuiElementRenderState; import org.joml.Matrix3x2fc; import org.jspecify.annotations.Nullable; diff --git a/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredRectangleRenderState.java b/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredRectangleRenderState.java index 8c7517fe..dfa7496a 100644 --- a/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredRectangleRenderState.java +++ b/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredRectangleRenderState.java @@ -6,7 +6,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.gui.navigation.ScreenRectangle; import net.minecraft.client.gui.render.TextureSetup; -import net.minecraft.client.gui.render.state.GuiElementRenderState; +import net.minecraft.client.renderer.state.gui.GuiElementRenderState; import org.joml.Matrix3x2fc; import org.jspecify.annotations.Nullable; diff --git a/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredTriangleRenderState.java b/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredTriangleRenderState.java index ce3e74c7..a6a5f2e0 100644 --- a/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredTriangleRenderState.java +++ b/src/client/java/org/infinite/libs/graphics/graphics2d/elements/ColoredTriangleRenderState.java @@ -6,7 +6,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.gui.navigation.ScreenRectangle; import net.minecraft.client.gui.render.TextureSetup; -import net.minecraft.client.gui.render.state.GuiElementRenderState; +import net.minecraft.client.renderer.state.gui.GuiElementRenderState; import org.joml.Matrix3x2fc; import org.jspecify.annotations.Nullable; diff --git a/src/client/java/org/infinite/mixin/graphics/GuiGraphicsAccessor.java b/src/client/java/org/infinite/mixin/graphics/GuiGraphicsAccessor.java index a5e2e5ec..2a7edfac 100644 --- a/src/client/java/org/infinite/mixin/graphics/GuiGraphicsAccessor.java +++ b/src/client/java/org/infinite/mixin/graphics/GuiGraphicsAccessor.java @@ -1,12 +1,12 @@ package org.infinite.mixin.graphics; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.render.state.GuiRenderState; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.client.renderer.state.gui.GuiRenderState; import net.minecraft.network.chat.Style; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(GuiGraphics.class) +@Mixin(GuiGraphicsExtractor.class) public interface GuiGraphicsAccessor { @Accessor("hoveredTextStyle") diff --git a/src/client/java/org/infinite/mixin/graphics/GuiGraphicsMixin.java b/src/client/java/org/infinite/mixin/graphics/GuiGraphicsExtractorMixin.java similarity index 66% rename from src/client/java/org/infinite/mixin/graphics/GuiGraphicsMixin.java rename to src/client/java/org/infinite/mixin/graphics/GuiGraphicsExtractorMixin.java index 27d86198..e33c70bf 100644 --- a/src/client/java/org/infinite/mixin/graphics/GuiGraphicsMixin.java +++ b/src/client/java/org/infinite/mixin/graphics/GuiGraphicsExtractorMixin.java @@ -4,11 +4,11 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ActiveTextCollector; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.font.FontSet; -import net.minecraft.client.gui.render.state.GuiRenderState; -import net.minecraft.client.gui.render.state.GuiTextRenderState; +import net.minecraft.client.renderer.state.gui.GuiRenderState; +import net.minecraft.client.renderer.state.gui.GuiTextRenderState; import net.minecraft.network.chat.Style; import net.minecraft.util.ARGB; import net.minecraft.util.FormattedCharSequence; @@ -29,46 +29,44 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -@Mixin(GuiGraphics.class) -public class GuiGraphicsMixin { - @Shadow @Final Minecraft minecraft; +@Mixin(GuiGraphicsExtractor.class) +public class GuiGraphicsExtractorMixin { + @Shadow @Final private Minecraft minecraft; @Shadow @Final public GuiRenderState guiRenderState; - @Shadow @Final public GuiGraphics.ScissorStack scissorStack; @Shadow @Final private Matrix3x2fStack pose; + @Shadow @Final public GuiGraphicsExtractor.ScissorStack scissorStack; + @Unique @SuppressWarnings("DataFlowIssue") - private GuiGraphics self() { - return (GuiGraphics) (Object) this; + private GuiGraphicsExtractor self() { + return (GuiGraphicsExtractor) (Object) this; } // 1. 標準の textRenderer: 常に不透明 (1.0F) @Inject( method = - "textRenderer(Lnet/minecraft/client/gui/GuiGraphics$HoveredTextEffects;Ljava/util/function/Consumer;)Lnet/minecraft/client/gui/ActiveTextCollector;", + "textRenderer(Lnet/minecraft/client/gui/GuiGraphicsExtractor$HoveredTextEffects;Ljava/util/function/Consumer;)Lnet/minecraft/client/gui/ActiveTextCollector;", at = @At("HEAD"), cancellable = true) public void onTextRenderer( - GuiGraphics.HoveredTextEffects hoveredTextEffects, - @Nullable Consumer